2017-12-29 20 views
0

clang-format을 사용하여 코드를 포맷합니다.clang-format : 문/메소드 참조를 포함하는 공백을 추가하지 마십시오.

나는 문장과 완전한 메소드 참조를 포함하기 위해 공백을 추가하는 것으로 나타났습니다.

다음 코드 ("올바른 형식") 조각을 감안할 때 :

#include bli/bla/blub/_foo; 

fun() { bli/bla/blub/_foo::bar(); } 

난에 공백을 원하지 않는이로

#include bli/bla/blub/_foo; 

fun() 
{ 
    bli/bla/blub/_foo::bar(); 
} 

clang-format를 통해 실행, 그것을집니다 / 앞뒤에 경로를 수정할 수 없기 때문에 추가해야합니다. 중괄호 배치는 중요하지 않습니다.

이 작업을 수행하는 방법을 잘 모르겠습니다. 문서 here을 살펴 보았지만 각각 style 옵션이 표시되지 않았습니다. 이 문제를 해결하기위한 아이디어/도움?

+0

나의 무지를 용서, 어떤 프로그래밍 언어 코드가 작성된 것입니다? :-) – Palo

답변

1

그 코드는 C++이 아닙니다. 그래서 clang-format은 여러분이 기대할 수있는 방식으로 행동하지 않습니다. (저는 C++이 당신이하는 일이라고 가정합니다).

  • #include bli/bla/blub/_foo; 이전과 헤더 경로 후 큰 따옴표를해야하고, 세미콜론은 생략.

  • C++에서 완전한 한정 기호를 사용하려면 ::을 분리 자로 사용해야하므로 bli/bla/blub/_foo::bar();은 C++에도 유효하지 않습니다. 그냥 C/C++ 컴파일러처럼 - - 사이에 추가 공간을 큰 따옴표는, 연타 형식의 누락되기 때문에 "을 bli_foo::bar()로 나눈 blub로 나눈 bla으로 나누어"로 bli/bla/blub/_foo을 보는 include 문에서

, /과 피연산자가 있습니다.

당신은 예를 들어, 적절한 C++ 코드로 연타 포맷을 공급하는 경우 :

#include "bli/bla/blub/_foo" 

void fun() 
{ 
    bli::bla::blub::_foo::bar(); 
} 

당신은 얻을 것이다 :

#include "bli/bla/blub/_foo" 

void fun() { 
    bli::bla::blub::_foo::bar(); 
} 
+0

예, 알 수 있습니다. 나는 C++ 방언으로 작업하고 있었기 때문에'clang-format'을 사용하면 잘 작동하지 않을 것이라고 생각합니다. 그러나 구문은 정확합니다. – BullyWiiPlaza

+0

@BullyWiiPlaza가 가져 왔습니다. 'clang-format' 자동으로 그 문법을 C++로 탐지하지만 사용자의 필요에 맞는 방식으로 사용자 정의 할 수 있습니다. 불행히도 바이너리 연산자와 피연산자 사이에 공백을 넣지 않도록 옵션을 찾을 수 없습니다. 즉 'a/b'는 항상'a/b'로 변환됩니다. – valiano