2016-07-15 3 views
7

과 포인터 선언의 별표 (*)를 정렬합니다그 소리 포맷 : 내 <code>.clang-format</code> 파일에서 나는 다음과 같은 옵션을 사용하고 변수 이름

char *   var1; 
SomeOtherType *var2; 
int   var3; 
:

AlignConsecutiveDeclarations: true 
PointerAlignment: Right 

현재 포맷 결과는 다음과 같다

내가 기대 한 결과는 다음과 같습니다

char   *var1; //note the changed position of * 
SomeOtherType *var2; 
int   var3; 

가 어떻게를 구성 할 수 있습니다 0을 입력하면 일 때 유형이 아닌 변수 이름으로 별표 (*)를 정렬하려면 AlignConsecutiveDeclarations 옵션을 사용 하시겠습니까?

답변

7

PointerAlignment: Right은 아직 구현되지 않았습니다.

https://github.com/llvm-mirror/clang/blob/release_39/lib/Format/WhitespaceManager.cpp#L327-L340

void WhitespaceManager::alignConsecutiveDeclarations() { 
    if (!Style.AlignConsecutiveDeclarations) 
    return; 

    // FIXME: Currently we don't handle properly the PointerAlignment: Right 
    // The * and & are not aligned and are left dangling. Something has to be done 
    // about it, but it raises the question of alignment of code like: 
    // const char* const* v1; 
    // float const* v2; 
    // SomeVeryLongType const& v3; 

    AlignTokens(Style, [](Change const &C) { return C.IsStartOfDeclName; }, 
       Changes); 
} 
를 참조하십시오