migrate-intellij-util
作者: flutter
通过将标准Java/Kotlin类迁移到IntelliJ专门的com.intellij.util实现,优化内存使用、一致性和性能。
npx skills add https://github.com/flutter/flutter-intellij --skill migrate-intellij-utilSkill: 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->ContainerUtilmapsStringmanipulation ->StringUtil(e.g.,isEmpty,join,notNullize)Path/Filestring manipulation ->PathUtiljavax.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 verifyPluginto 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.utilequivalent.
5. Verify
- Run
./gradlew testClassesto ensure migration didn't break test compilation. - Run
./gradlew testand./gradlew verifyPluginto 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]").