programing

#정의 블록을 클랜 형식으로 정렬할 수 있습니까?

sourcejob 2023. 10. 11. 20:40
반응형

#정의 블록을 클랜 형식으로 정렬할 수 있습니까?

이런 행이 포함된 소스 파일이 있습니다.

#define ARC_V2_LP_START         0x002
#define ARC_V2_LP_END           0x003
#define ARC_V2_STATUS32         0x00a

모든 가치관들이 잘 정렬되어 있습니다.유감스럽게도 clang-format은 이렇게 합니다.

#define ARC_V2_LP_START 0x002
#define ARC_V2_LP_END 0x003
#define ARC_V2_STATUS32 0x00a

AlignConsecutiveDeclarations 및 AlignConsecutiveAssignments 옵션을 찾았지만 연속된 #정의를 정렬하는 것은 없습니다.이것도 가능한가요?

[업데이트]

op의 pull request가 최종적으로 완료되었고 clang 버전 9.0.0은 라이브입니다.기능은 에 의해 활성화됩니다.AlignConsecutiveMacros: true선택.

[Original]

이상하게도 이 기능은 아직 cl에서 구현되지 않았습니다. 연속 매크로에 대한 포맷 옵션이 현재 없습니다.

많은 개발자들이 관심을 가지고 있으며 수년간 승인을 기다려온 워킹풀 요청이 있습니다. https://reviews.llvm.org/D28462?id=93341

통합할 수도 있고, 공식 지점에서 추가할지 그냥 기다릴 수도 있지만, 이 시점에서 그럴지는 의문입니다.

스타일 옵션을 한눈에 봐도 현재로서는 선택할 수 없는 것 같습니다.내가 보는 전처리를 다루는 유일한 옵션은IndentPPDirectives다음과 같은 내용을 다루고 있습니다.#if토막토막

저도 이것에 대한 대안을 찾을 수 없었습니다.클랑이 이메일로 자동 정렬된 내 정의를 모두 폐기했습니다.

clang-format-9 이상에는 다음 옵션이 있습니다.AlignConsecutiveMacros: true당신에게 도움이 될 수 있을 겁니다

ubuntu/Debian에 clang-format-9를 설치하려면 확인해야 합니다.http://apt.llvm.org/.

예를 들어 Ubuntu 16.04/xenial이 있는 경우 다음을 수행해야 합니다.

sudo sh -c 'echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" >> /etc/apt/sources.list'
sudo sh -c 'echo "deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main" >> /etc/apt/sources.list'
sudo apt update
sudo apt install clang-format-9

Trusty/Ubuntu 14.04를 동일하게 처리할 수 있습니다.

언급URL : https://stackoverflow.com/questions/38620019/can-clang-format-align-a-block-of-defines-for-me

반응형