2025. 9. 12. 06:55ㆍLanguages/C++

I. VSCode 상에서의 디폴트 포매터 확인
만약 C/C++ 포매터를 설정한 적이 없는 상태에서 "Ctrl + Shift + P"를 눌러 커맨드 프롬프트(Command Prompt)를 실행해 "포맷 도큐먼트(Format Document)" 명령을 실행하는 경우,

다음과 같이 해당 언어나 파일 확장자에 대한 "디폴트 포매터(Default Formatter)"를 지정하게 된다. 이는 이와 같은 "포맷 도큐먼트" 명령에서 적용할 포매터에 해당한다.

기존에는 "C/C++ ms-vscode.cpptols" 포매터밖에 없는 것을 확인할 수 있다.

해당 포매터를 "디폴트 포매터"로 지정하면 해당 포매터는 VSCode에서 다음 경로에 저장되게 된다.
C:\Users\<USERNAME>\AppData\Roaming\Code\User\settings.json
그리고 해당 변경 내역은 다음과 같이 JSON 객체로 저장되게 된다.

II. clang-format 설치 방법
이때, 디폴트로 제공되는 포매터 대신 "clang-format"을 설치하려면 먼저 다음 페이지로 이동한다: https://releases.llvm.org/download.html
이후 운영체제에 맞는 LLVM 설치 파일을 다운로드한 뒤 설치한다. 이때, "LLVM을 시스템 경로(PATH)에 추가" 체크박스를 활성화해서 수동으로 환경 변수를 설정하는 일이 없도록 한다.


만약 설치가 완료되고 나서 다음 명령으로 clang-format의 버전을 확인하는 명령을 실행했을 때 에러가 발생한다면,
clang-format --version
아래의 디폴트 설치 경로(해당 경로에 LLVM을 설치한 경우)를 시스템 환경 변수의 PATH 항목에 추가하도록 한다.
C:\Program Files\LLVM\bin
III. clang-format 적용 방법
이제 Visual Studio 프로젝트의 루트 폴더로 이동한 다음, 다음 명령을 실행해 해당 프로젝트의 포매팅 규칙을 명시할 ".clang-format" 파일을 생성한다.
clang-format -style=llvm -dump-config > .clang-format
IV. clang-format이 적용되었는지 테스트하는 방법
이제 .clang-format 파일을 열어 내부의 규칙이 실제로 프로젝트에 적용되는지 다음과 같이 확인하도록 한다.
1. 다음과 같이 "AllowShortFunctionsOnASingleLine" 항목의 값이 디폴트로 "All"로 설정된 것을 확인할 수 있다.

2. VSCode 또는 Visual Studio로 돌아와서 .clang-format 파일의 포매팅을 적용하면 다음과 같이 main 함수가 printf 함수 한 줄만을 포함하는 짧은 함수인 경우 한 줄로 포매팅해주는 것을 확인할 수 있다.

3. 하지만 다시 .clang-format 파일로 돌아와서 다음과 같이 해당 값을 "None"으로 설정하면,

4. 다음과 같이 코드가 한 줄로 포매팅되지 않고 {, } 블록과 구분된 줄로 포매팅된 것을 확인할 수 있다.

5. 이처럼 .clang-format 파일의 원하는 항목의 값을 바꿨을 때, 해당 항목이 포매팅 결과에 항상 영향을 주므로 해당 파일이 포매터로서 기능하고 있다는 명제가 참임을 테스트 결과 알 수 있다.
6. 참고로 만약에 다음과 같이 ') (Braces)' 이후에 줄바꿈(line break)를 넣고 싶다면,

7. 아래와 같이 "BreakBeforeBraces"와 "BraceWrapping.AfterFunction" 항목을 각각 "Custom"과 "true"로 설정하면 원하는대로 소괄호로 함수 시그니처(signature)를 종료시킨 뒤 새 줄을 시작할 수 있다.
BreakBeforeBraces: Custom
BraceWrapping:
AfterFunction: true
참고 자료
ClangFormat — Clang 22.0.0git documentation
ClangFormat ClangFormat describes a set of tools that are built on top of LibFormat. It can support your workflow in a variety of ways including a standalone tool and editor integrations. Standalone Tool clang-format is located in clang/tools/clang-format
clang.llvm.org
'Languages > C++' 카테고리의 다른 글
| [C++] Visual Studio에서 Address Sanitizer를 활성화해 배열 범위 외 참조 예외를 발생시키는 방법 (0) | 2025.09.14 |
|---|---|
| [C++][윈도우] C++ 개발을 위한 MinGW 설치와 VSCode 설정 방법 (0) | 2025.09.07 |
| [C++] VSCode 필수 확장(Extensions) 패키지 목록 (0) | 2025.09.05 |
| [C++] Visual Studio Code 설치 방법 (0) | 2025.09.05 |