선 요소 사이에 공백을 삽입하는 C Beautifier 찾기 [닫기]
-
06-07-2019 - |
문제
나는 C 코드의 거의 모든 의미 요소 사이에 공백을 두는 것을 좋아합니다.
그러므로 나는 선호한다
if ( ( foo = bar ( arg1, arg2, arg3 ) ) == NULL ) {
printf ( "Error 42" );
}
에게
if((foo=bar(arg1,arg2,arg3))==NULL){
printf("Error 42");
}
이 작업을 수행할 수 있는 C 미화 도구(유닉스 플랫폼)가 있습니까?
기능 매크로 를만 두어야하는 것은 심각하게 똑똑한 미용사가 필요합니다.
해결책
indent -prs -br -i 4 file
이것을 돌립니다 :
#define f(x) ((x)+(x))
if((foo=bar(arg1,arg2,arg3))==NULL){
printf("Error 42");
f(42);
}
이것으로 :
#define f(x) ((x)+(x))
if ( ( foo = bar ( arg1, arg2, arg3 ) ) == NULL ) {
printf ( "Error 42" );
f ( 42 );
}
그만큼 -prs
옵션은 괄호 주위에 공백, 연산자 주변의 공간 및 쉼표가 표준 이후에 배치합니다. 그만큼 -br
옵션은 브레이싱 스타일을 시행합니다 -i 4
4 개의 공간을 사용하여 들여 쓰기. 매크로 정의는 수정되지 않았지만 코드에서 기능과 같은 매크로로의 호출은 (아마도 원하는 것)입니다.
다른 팁
당신은보고 싶을 수도 있습니다 GNU의 계약. 나는 그것이 당신이 찾고있는 모든 것을 할 수 있다고 생각합니다.
Gnu 들여쓰기는 아마도 그렇게 할 수 있을 것입니다.불행하게도 들여쓰기에는 엄청나게 많은 옵션이 있는데, 그 중 많은 옵션이 전혀 직관적이지 않고 매우 이상한 방식으로 상호 작용합니다.나는 들어가는 것보다 나오는 것이 더 추악하지 않은 방식으로 코드 형식을 지정하지 못했습니다.어떤 경우에는 더 균일했습니다.다른 경우에는 정말 균일했을 것 같지만, 따르는 규칙은 여전히 이상해서 결과가 종종 이상해 보였습니다.
한동안 들여쓰기 문제로 어려움을 겪은 후, 한 형식만 지원하는 훨씬 간단한 프로그램을 작성하고 형식을 변경하려면 코드를 편집하는 것이 더 쉽다고 결정했습니다.
나는 옵션과 함께 VIM을 사용하여 만족스러운 효과에 대한 형식을 사용했습니다. 당신은 전체 파일을 들여 쓰기를 할 수 있습니다
gg=G
gg -- go to 1st line
=G -- indent upto lastline
FormateXPR (VIM7)을 작성하고 싶거나 s /// g 명령으로 사용자 정의 함수를 작성하고 키에 매핑 할 수 있습니다.
Follwing은 #define 라인을 제외하고는 Parantheses 다음에 공간을 배치합니다.
v/#define/s/[()]/ 1/g
예, 당신은 regexes를 배우게 될 것입니다 :)