2017-05-17 34 views
6

extern blokların önce kırın:clang formatlı: lambda işlevleri için parantez ve böyle biçimlendirilmiş bir lambda fonksiyonu var

auto cb = [](std::string const& _param) 
{ 
    std::cout << _param; 
}; 

Ben yeni bir satırda açılış ayracı tutmak istiyorum, ama clang-format hep yerleştirir ilk satırın sonunda. Yukarıdaki stili takip etmek için clang-format'u yapılandırmak mümkün mü?

BraceWrapping:       
    AfterClass:  true 
    AfterControlStatement: true 
    AfterEnum:  true 
    AfterFunction: true   
    AfterNamespace: true     
    AfterStruct:  true 
    AfterUnion:  true 
    BeforeCatch:  true 
    BeforeElse:  true 
    IndentBraces: true 
BreakBeforeBraces: Allman 

Ben de extern bloklar için aynı şeyi istiyoruz:

sanmıyorum
extern "C" 
{ 
    // ... 
} 
+0

Bu bir hata olabilir: https://www.mail-archive.com/[email protected]/msg05471.html – syntagma

+0

Sürüm 5.0.0 kullanıyorum (tags/google/stable/2017-03- 17) –

+0

Sadece lambdas https://bugs.llvm.org//show_bug.cgi?id=32151 ve extern blokları ile sorunu izleyen hata raporlarını buldum https://bugs.llvm.org//show_bug.cgi?id = 26689 –

cevap

0

seçeneği vardır

benim geçerli yapılandırma ilgili kısmı aşağıdaki gibidir Bu özel durum için. Yanıt olarak düşünmüyorsanız özür dilerim, ancak ben bu "ince ayar" problemlerini clang-format ile aldığımda, snippet'i istediğim gibi biçimlendiriyorum ve clang-format off 'u hemen önce ilginç snippet'ten ve clang-format on dan hemen sonra yorumladım. Bunu genellikle daha iyi okuma için kodları hizalamak için kullanılan boş karakter sırasını korumak için yapıyorum. Etkisi elbette CF'nin bu pasajı değiştirmeyeceği yönündedir. Bu nedenle kodunuz hangi versiyonda "clang-format" kullanıyorsunuzdur?