Skip to content

chore: add IDE Dart library generator - #18

Merged
Seungpyo1007 merged 1 commit into
developfrom
chore/idea-dart-libs
Aug 7, 2026
Merged

chore: add IDE Dart library generator#18
Seungpyo1007 merged 1 commit into
developfrom
chore/idea-dart-libs

Conversation

@Seungpyo1007

Copy link
Copy Markdown
Owner

Android Studio에서 lib/main.dart를 포함한 모든 파일의 import가 빨간 줄로 떴다. 처음엔 분석 서버 캐시 문제로 보고 재시작을 안내했는데 아니었다.

실제 원인은 .idea/libraries/ 디렉터리가 통째로 없어진 것이었다. .idea/TechPicks.imlDart SDK, Dart Packages, Flutter Plugins 세 라이브러리를 참조하는데 정의 파일이 하나도 없으니 전부 미해결로 남았다. 모듈 콘텐츠 루트가 .idea/ 자신을 가리키던 문제까지 겹쳐 있었다.

이 스크립트가 세 파일을 다시 만든다.

  • Dart_SDK.xmlwhich flutter로 번들 SDK 경로를 역산해 공개 라이브러리만 등록한다. 밑줄로 시작하는 내부 디렉터리와 dev_compiler는 뺀다.
  • Dart_Packages.xml.dart_tool/package_config.json이 유일한 근거다. 실제로 존재하는 디렉터리만 넣는다.
  • Flutter_Plugins.xml.flutter-plugins-dependencies에서 네이티브 플러그인 경로를 모은다.

package: 임포트 없이 dart:iodart:convert만 쓴다. 패키지 해석이 깨진 상태에서도 dart tool/gen_idea_libs.dart로 돌아가야 하는데, 정작 이걸 쓸 상황이 바로 그 상황이라서다.

로컬 확인 결과 SDK 하나, 패키지 156개, 네이티브 플러그인 62개가 등록됐고 XML 유효성도 통과했다.

.idea/ 자체는 gitignore 대상이라 스크립트만 커밋되고 결과물은 각자 로컬에 남는다. 실행 전 flutter pub get으로 package_config.json이 현재 브랜치 pubspec과 맞는지 확인해야 하고, 실행 후엔 IDE를 완전히 닫았다 열어야 한다. 열려 있으면 종료할 때 IntelliJ가 .idea를 덮어쓴다.

Android Studio에서 lib/main.dart를 비롯한 모든 파일의 import가 빨간 줄로
뜨는 문제가 있었다. 원인은 .idea/libraries/ 디렉터리가 통째로 사라진 것.
.idea/TechPicks.iml은 Dart SDK, Dart Packages, Flutter Plugins 세 라이브러리를
참조하는데 정의 파일이 없으니 전부 미해결로 남았다.

원래 Dart·Flutter 플러그인이 자동 생성하는 파일이지만, 손상되거나 브랜치를
옮겨 다니는 사이 사라지면 IDE가 스스로 복구하지 못하는 경우가 있다.

이 스크립트가 세 파일을 다시 만든다.
- Dart_SDK.xml: flutter 실행 파일 위치에서 번들 SDK 경로를 역산해 등록
- Dart_Packages.xml: .dart_tool/package_config.json 이 유일한 근거
- Flutter_Plugins.xml: .flutter-plugins-dependencies 의 네이티브 플러그인

package: 임포트 없이 dart:io 와 dart:convert 만 쓰므로 패키지 해석이
깨진 상태에서도 `dart tool/gen_idea_libs.dart` 로 실행된다. 정작 고쳐야 할
상황이 그 상황이라서 그렇게 만들었다.

.idea/ 자체는 gitignore 대상이라 스크립트만 커밋된다.
@Seungpyo1007 Seungpyo1007 added build 빌드 시스템·툴체인 변경 tech-debt 기술 부채 정리 labels Aug 7, 2026
@Seungpyo1007 Seungpyo1007 self-assigned this Aug 7, 2026
@Seungpyo1007
Seungpyo1007 merged commit d452db6 into develop Aug 7, 2026
2 checks passed
@Seungpyo1007 Seungpyo1007 mentioned this pull request Aug 7, 2026
15 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build 빌드 시스템·툴체인 변경 tech-debt 기술 부채 정리

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant