dart format
dart format
Dart 소스 코드를 공식 포맷팅 가이드라인에 맞춰 정리해 주는 커맨드라인 도구예요. IDE나 Dart를 지원하는 편집기에서 얻을 수 있는 것과 동일한 포맷팅 결과를 제공해 드릴게요.
출처: dart format
본문
코드가 Dart 포맷팅 가이드라인을 따르도록 업데이트하려면 dart format 명령을 사용해요. 이 포맷팅은 Dart를 지원하는 IDE나 편집기를 쓸 때 얻는 결과와 동일해요.
팁: 이 명령과 다른
dart명령에 대한 자세한 내용은 Dart 커맨드라인 도구 페이지를 확인해 주세요.
포맷할 파일 지정하기
하나 이상의 Dart 파일을 다시 포맷하려면 원하는 파일 또는 디렉터리의 경로 목록을 제공해요.
경로 하나 지정하기
파일이나 디렉터리 하나의 경로를 제공해요. 디렉터리 경로를 전달하면 dart format이 그 하위 디렉터리까지 재귀적으로 찾아요.
예시: 현재 디렉터리와 그 아래의 모든 Dart 파일을 포맷하려면 다음과 같이 해요.
$ dart format .
여러 경로 지정하기
여러 파일이나 디렉터리를 지정하려면 공백으로 구분된 목록을 사용해요.
예시: lib 디렉터리 아래의 모든 Dart 파일에 더해 bin 디렉터리 아래의 Dart 파일 하나를 포맷하려면 다음과 같이 해요.
$ dart format lib bin/updater.dart
Dart 파일 덮어쓰지 않기
기본적으로 dart format은 Dart 파일을 덮어써요.
- 파일을 덮어쓰지 않으려면
--output또는-o플래그를 추가해요. - 포맷된 파일의 내용을 얻으려면
-o show또는-o json을 추가해요. - 어떤 파일이 변경될지만 보려면
-o none을 추가해요.
$ dart format -o show bin/my_app.dart
변경이 생길 때 알림 받기
포맷팅 변경이 발생할 때 dart format이 종료 코드를 반환하게 하려면 --set-exit-if-changed 플래그를 추가해요.
- 변경이 발생하면
dart format명령은 종료 코드1을 반환해요. - 변경이 발생하지 않으면
dart format명령은 종료 코드0을 반환해요.
종료 코드는 지속적 통합(CI) 시스템과 함께 사용해서, 종료 코드에 응답해 또 다른 동작을 트리거할 수 있어요.
$ dart format -o none --set-exit-if-changed bin/my_app.dart
저장 시 포맷하기
Dart를 지원하는 많은 편집기는 파일을 저장할 때 코드를 자동으로 포맷할 수 있어요.
VS Code
VS Code에서 저장 시 포맷팅을 활성화하려면 settings.json 파일에 다음 항목을 추가해요.
{
"[dart]": {
"editor.formatOnSave": true
}
}
IntelliJ와 Android Studio
IntelliJ IDEA와 Android Studio를 포함한 JetBrains IDE에서 저장 시 포맷팅을 활성화하려면, 저장 시 코드 자동 재포맷에 대한 IDE의 안내를 따라 주세요.
무엇이 바뀌나요?
dart format은 다음과 같은 포맷팅 변경을 적용해요.
- 공백을 제거해요.
- 모든 줄을 80자 이하로 감싸요.
- 여러 줄로 나뉘는 인자 또는 매개변수 목록에는 trailing comma를 추가하고, 나뉘지 않는 목록에서는 제거해요.
- 쉼표 앞이나 뒤로 주석을 옮길 수 있어요.
Dart 코드 작성과 스타일링에 대한 모범 사례를 더 배우고 싶다면 Dart 스타일 가이드를 확인해 주세요.
포맷터 구성하기
dart format을 실행하면 포맷터는 기본적으로 80자 이하의 줄 길이를 사용해요. analysis_options.yaml 파일에 최상위 formatter 섹션을 추가하면 포맷터의 동작을 구성할 수 있어요.
페이지 너비
프로젝트의 줄 길이를 구성해요.
formatter:
page_width: 123
분석 옵션 파일이 보통 루트에 있으므로, 구성한 줄 길이는 패키지의 모든 것에 적용돼요.
trailing comma 보존하기
기본적으로 dart format은 구성이 여러 줄로 나뉘는지에 따라 trailing comma를 추가하거나 제거해요. 한 줄에 들어갈 수 있더라도 구성이 항상 나뉘도록 강제하려면, 다음처럼 포맷터가 trailing comma를 보존하도록 구성해요.
formatter:
trailing_commas: preserve
이 옵션을 활성화하면 인자 목록, 매개변수 목록 또는 다른 구성에 trailing comma를 추가하는 것만으로도, 한 줄에 들어갈 수 있어도 여러 줄로 나뉘도록 포맷터가 강제해요. 이렇게 하면 특정 구성의 줄 바꿈을 수동으로 제어할 수 있어요.
파일 최상단, 다른 코드보다 앞에 마커 주석을 추가하면 분석 옵션을 무시하고 개별 파일의 줄 길이를 구성할 수 있어요.
// dart format width=123
버전 참고: 구성 가능한 포맷터 옵션은 언어 버전이 최소 3.7이어야 해요.
trailing_commas옵션은 최소 3.8이 필요해요.
더 알아보기
추가 커맨드라인 옵션을 배우려면 dart help 명령을 사용하거나 dart_style 패키지 문서를 확인해 주세요.
$ dart help format
포맷팅 결정 배경에 대한 더 많은 맥락은 포맷터 FAQ를 확인해 주세요.
더 알아보기
- Dart 커맨드라인 도구:
dartCLI 전체 개요 - Dart 스타일 가이드: Dart 코드 스타일링 규칙
- dart_style 패키지: 포맷터의 기반이 되는 구현