Ch8. 포매터 자동화
파일 변경 후 포매팅 자동 실행, 언어별 설정
OpenCode는 파일 변경 시 포매터를 자동 실행할 수 있습니다. 팀 코드 스타일을 강제하려면 포매터 설정을 필수로 포함하세요.
포매터 설정
opencode.json에서 파일 확장자별 포매터를 지정합니다.
{
"format": {
"*.ts": "prettier --write",
"*.tsx": "prettier --write",
"*.py": "black",
"*.go": "gofmt -w",
"*.rs": "rustfmt",
"*.d": "dfmt",
"*.clj": "cljfmt fix"
}
}v1.2.6 추가
D 언어(dfmt)와 Clojure(cljfmt) 포매터가 v1.2.6에서 추가되었습니다.
동작 방식
- OpenCode가 파일을 수정하면 변경 감지
- 파일 확장자에 매칭되는 포매터를 조회
- 해당 포매터를 자동 실행
- 포매팅 결과를 파일에 반영
팀 표준 포매터 설정
{
"format": {
"*.ts": "prettier --write",
"*.tsx": "prettier --write",
"*.css": "prettier --write",
"*.json": "prettier --write"
}
}{
"format": {
"*.py": "black",
"*.go": "gofmt -w",
"*.rs": "rustfmt"
}
}{
"format": {
"*.ts": "prettier --write",
"*.tsx": "prettier --write",
"*.py": "black",
"*.go": "gofmt -w",
"*.rs": "rustfmt"
}
}고급 팁
- 프로젝트 표준 포매터 고정: 포매터 옵션을
opencode.json에 팀 단위로 고정 - 파일 유형별 분리: 언어별 포매터를 분리해 충돌 최소화
- 포매터 비활성화: 대규모 리팩토링 시 포매터 설정을 임시로 제거
- Glob 패턴 활용:
*.{ts,tsx}처럼 여러 확장자를 묶어 관리