migrate-intellij-util

Optimize memory usage, consistency, and performance by migrating standard Java/Kotlin classes to IntelliJ's specialized com.intellij.util implementations.

npx skills add https://github.com/flutter/flutter-intellij --skill migrate-intellij-util

Skill: API Migration to use com.intellij.util.* classes and methods

You are tasked with optimizing memory usage, consistency, and performance by migrating standard Java/Kotlin classes to IntelliJ's specialized com.intellij.util implementations.

Objective

Go read https://javadoc.jetbrains.net/teamcity/openapi/current/com/intellij/util/package-summary.html, and then optimize memory usage, consistency, and performance by migrating standard Java/Kotlin classes to IntelliJ's specialized com.intellij.util implementations.

Candidates for Migration

  • ArrayList -> SmartList (for potentially empty/small lists)
  • HashMap / ConcurrentHashMap -> ContainerUtil maps
  • String manipulation -> StringUtil (e.g., isEmpty, join, notNullize)
  • Path / File string manipulation -> PathUtil
  • javax.swing.Timer -> Alarm (for UI-related callbacks/debouncing)
  • Null checks -> ObjectUtils (e.g., doIfNotNull, coalesce)
  • Array resizing/merging -> ArrayUtil

Workflow Instructions

1. Baseline

  • Run ./gradlew testClasses, ./gradlew test, and ./gradlew verifyPlugin to ensure project is in a good state.

2. Select Target

  • Identify a single migration opportunity within a single package.

3. Constraint

  • Keep the change extremely small (max 50 lines of code change).

4. Migrate

  • Replace standard API with the com.intellij.util equivalent.

5. Verify

  • Run ./gradlew testClasses to ensure migration didn't break test compilation.
  • Run ./gradlew test and ./gradlew verifyPlugin to ensure no regressions.
  • Suggest manual test steps: Check code changes made and write test steps for a user to execute that will trigger changed code paths. If needed, add logging statements to verify code paths have successfully run.

6. Report & Review

  • Summarize the migration.
  • Test Location: Explicitly state where in the IDE user should go to test changed functionality (e.g., "Go to Preferences > Languages & Frameworks > Flutter").
  • Action: Ask user to review changes closely.
  • Do not commit or push.
  • Provide a suggested Git commit message (e.g., "Migrate code to use StringUtil in [Class Name]").

Mehr Skills von flutter

adding-release-notes
flutter
Fügt benutzerseitige Änderungsbeschreibungen zu den DevTools-Versionshinweisen hinzu. Verwenden Sie dies, wenn Sie Verbesserungen, Fehlerbehebungen oder neue Funktionen in der Datei NEXT_RELEASE_NOTES.md dokumentieren.
official
dart-modern-features
flutter
Um Kandidaten für die Modernisierung zu finden:
official
api-review
flutter
Überprüft den angegebenen Code gegen die kanonischen API-Design-Richtlinien. Verwenden Sie dieses Skill, wenn der Benutzer eine API-Überprüfung anfordert oder Code gegen API-Design…
official
code-documentation
flutter
Leitfaden für das Schreiben effektiver Code-Dokumentation, einschließlich Docstrings, JSDoc, dartdoc und Implementierungskommentaren. Verwenden Sie diese Fähigkeit beim Schreiben von neuem Code, beim Hinzufügen…
official
dart-add-unit-test
flutter
Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains…
official
dart-build-cli-app
flutter
Einstiegspunkt-Struktur, Exit-Codes, plattformübergreifende Skripte. Verwenden beim Erstellen von Befehlszeilenprogrammen, Skripten oder Anwendungen.
official
dart-collect-coverage
flutter
Collect coverage mit dem coverage-Paket und erstellen Sie einen LCOV-Bericht
official
dart-fix-runtime-errors
flutter
Nutzt get_runtime_errors und lsp, um einen aktiven Stack-Trace abzurufen, die fehlerhafte Zeile zu lokalisieren, einen Fix anzuwenden und die Lösung über hot_reload zu verifizieren.
official