VSCode용 Google Java Format 확장 개발
에 기능을 덧붙여,
마켓플레이스에 올리지 않고 로컬에서만 설치해 사용하고 있었다.
그런데 원본 확장의 업데이트가 끊긴 지 5년이 넘었고, 내가 수정한 버전을 로컬에서만 쓰는 것도 점점 불편해졌다.
그래서 아예 새로 만들기로 했다.
아래는 그렇게 만든 확장이다.
GitHub 리포지토리
👇확장 설명서 (README.md)
Google Java Format for VSCode
VSCode에서 을 Java 포매터로 사용할 수 있게 해주는 확장입니다.
기능
Java 파일을 google-java-format 규칙으로 포맷합니다.
Native 실행 파일과 JAR 실행 방식을 모두 지원합니다.
설정 화면에서 실행 방식과 실행 파일 경로를 지정할 수 있습니다.
설정 화면
요구사항
VSCode 1.120.0 이상
google-java-format 실행 파일
Native 방식: OS에 맞는 native image 실행 파일
JAR 방식:
google-java-format-<version>-all-deps.jar
JAR 방식 사용 시 Java 실행 환경
google-java-format 파일은 에서 받을 수 있습니다.
확장 설정
실행 방식
gjfe.executionType: google-java-format 실행 방식을 선택합니다.
선택 가능한 값은 다음과 같습니다.
native: native image 실행 파일을 사용합니다.jar: JAR 파일을 Java로 실행합니다.
google-java-format 1.20.0부터 native image가 제공됩니다. 일반적으로 JAR 방식보다 실행 속도가 빠르므로, 사용할 수 있는 환경이라면 native 방식을 권장합니다.
Native 실행 방식
gjfe.nativeImagePath: native image 실행 파일의 전체 경로입니다.
예:
C:\google-java-format\google-java-format_windows-x86-64.exeJAR 실행 방식
gjfe.jarPath: google-java-format JAR 파일의 전체 경로입니다.gjfe.javaHome: JAR 파일을 실행할 때 사용할JAVA_HOME경로입니다.gjfe.jvmOptions: JAR 파일 실행 시 추가할 JVM 옵션 목록입니다.
설정값 예시:
gjfe.jarPath
C:\git-other\google-java-format\core\target\google-java-format-1.35.0-all-deps.jar
gjfe.javaHome
C:\JDK\21
Java 17 이상에서 google-java-format을 JAR 방식으로 실행할 때 JDK 내부 API 접근이 제한될 수 있습니다. 이 확장은 다음 --add-exports 옵션을 기본값으로 제공합니다.
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED--add-exports 옵션에 대해서 등호 없이 입력한 값도 실행 가능한 형태로 처리하지만, 등호(=
알려진 이슈
현재 등록된 알려진 이슈가 없습니다.
릴리스 노트
0.0.1
최초 릴리스
Native 실행 방식 지원
JAR 실행 방식 지원
후기
직접 만들어 보니 생각보다 꽤 만족스럽다.
로컬에서 VSCode 확장을 개발하는 흐름도 전보다 훨씬 잘 이해하게 됐다.
조금 더 사용해 보고 문제가 없으면 마켓플레이스에도 배포해 보자. 😊
그리고,
지금은 Google Java Format GitHub 사이트에서 native 실행 파일을 수동으로 내려받아 설정하고 있지만,

댓글
댓글 쓰기