migrate-intellij-util

작성자: flutter

표준 Java/Kotlin 클래스를 IntelliJ의 특수한 com.intellij.util 구현으로 마이그레이션하여 메모리 사용량, 일관성 및 성능을 최적화합니다.

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]").

flutter의 다른 스킬

dart-modern-features
flutter
현대화를 위한 후보를 찾으려면:
flutter-fix-layout-issues
flutter
Flutter 레이아웃 오류(오버플로우, 무제한 제약 조건)를 Dart 및 Flutter MCP 도구를 사용하여 수정합니다. "RenderFlex overflowed", "Vertical…" 문제를 해결할 때 사용하세요.
adding-release-notes
flutter
사용자 대상 변경 사항 설명을 DevTools 릴리스 노트에 추가합니다. NEXT_RELEASE_NOTES.md 파일에 개선 사항, 수정 사항 또는 새로운 기능을 문서화할 때 사용하세요.
reviewing-devtools-prs
flutter
DevTools 저장소 전용 PR 리뷰 워크플로로, DevTools 스타일 가이드라인과 일반적인 리뷰 패턴을 적용합니다. 풀 리퀘스트를 리뷰할 때 사용하세요…
dart-use-primary-constructors
flutter
사용자가 Dart에서 구문 및 의미적으로 올바른 primary constructor를 작성하고, 새로운 생성자 구문, 빈 본문 세미콜론 구문 등으로 마이그레이션/사용할 수 있도록 지원합니다.
code-documentation
flutter
효과적인 코드 문서 작성 가이드로, docstrings, JSDoc, dartdoc 및 구현 주석을 포함합니다. 새 코드를 작성하거나 추가할 때 이 스킬을 사용하세요…
api-review
flutter
지정된 코드를 표준 API 설계 지침에 맞춰 검토합니다. 사용자가 API 리뷰를 요청하거나 API 설계에 따라 코드를 확인할 때 이 스킬을 사용하세요…
flutter-accessibility
flutter
Flutter 앱에서 WCAG 2 및 EN 301 549 접근성 표준과 적응형 레이아웃을 구현합니다. 모바일, 웹, 데스크톱 플랫폼에서 시맨틱 주석, 탭 대상 크기(최소 48x48 dp), 텍스트 대비 비율(작은 텍스트 4.5:1, 큰 텍스트 3:1)을 적용합니다. 웹 시맨틱 초기화, 대화형 위젯 래핑, 화면 크기 기반 레이아웃 전환, 키보드/마우스 입력 처리를 위한 결정 로직을 제공합니다. FocusTraversalGroup을 통한 포커스 이동 관리를 포함합니다...