gofumpt- gofmt보다 더 엄격한 Go 코드 포매터

7 hours ago 2

(github.com/mvdan)

1P by xguru 1시간전 | ★ favorite | 댓글과 토론

  • 기존 gofmt와 하위 호환되면서 더 엄격한 규칙을 강제하는 포매터
  • gofmt가 허용하는 포맷의 부분집합으로 드롭인 교체가 가능해, gofumpt 실행 후 gofmt를 돌려도 변경 사항 없음
  • gofmt만으로는 안 잡히는 스타일 편차를 자동으로 통일
    • 불필요한 빈 줄, 공백, 괄호 등을 자동 제거
    • import에서 표준 라이브러리를 별도 그룹으로 분리
    • var s = "x" → s := "x", 0755 → 0o755, //Foo → // Foo
    • 복합 리터럴 줄바꿈 일관화 등 다수의 추가 포매팅 규칙 적용
  • vendor, testdata 디렉터리는 명시적 인자가 아니면 건너뜀, 생성된 Go 파일에도 추가 규칙 미적용
  • go.mod의 ignore 디렉티브 준수
  • "gofmt 위에 만들지 않고 대체하려는 이유?"
    • 설계 자체가 gofmt 위에 구축하는 것이며, gofmt 포매팅과 충돌하는 규칙은 추가하지 않음 — 경쟁이 아닌 확장
    • 에디터/스크립트에서 드롭인 교체로 쓰기 위해 gofmt의 수정 복사본 형태를 취함
Read Entire Article