2017-05-17 13 views
6

Tôi có một hàm lambda được định dạng như thế này:kêu vang định dạng: Phá vỡ trước khi niềng răng cho hàm lambda và khối extern

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

Tôi muốn giữ cho cú đúp mở trên một dòng mới, nhưng clang-format luôn đặt nó ở cuối dòng đầu tiên. Có thể định cấu hình clang-format để theo dõi kiểu trên không?

Phần liên quan của cấu hình hiện tại của tôi trông như thế này:

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

Tôi cũng muốn làm tương tự cho extern khối:

extern "C" 
{ 
    // ... 
} 
+0

Bạn đang sử dụng phiên bản 'định dạng clang' nào? Đây có thể là lỗi: https://www.mail-archive.com/[email protected]/msg05471.html – syntagma

+0

Tôi đang sử dụng phiên bản 5.0.0 (thẻ/google/stable/2017-03- 17) –

+0

Tôi vừa tìm thấy báo cáo lỗi theo dõi vấn đề với lambdas https://bugs.llvm.org//show_bug.cgi?id=32151 và các khối bên ngoài https://bugs.llvm.org//show_bug.cgi?id = 26689 –

Trả lời

0

Tôi không nghĩ rằng có là một lựa chọn cho trường hợp cụ thể này. Tôi xin lỗi nếu bạn không coi đây là câu trả lời, nhưng khi tôi có những vấn đề "tinh chỉnh" này với định dạng clang, tôi chỉ định dạng đoạn trích như tôi muốn và nhận xét clang-format off ngay trước đoạn trích thú vị và clang-format on ngay sau đó. Tôi thường làm điều đó để duy trì một số chuỗi ký tự trống được sử dụng để căn chỉnh mã để đọc tốt hơn. Tất nhiên, hiệu quả là CF sẽ không thay đổi đoạn mã đó. Vì vậy, mã của bạn có thể là

// clang-format off 
auto cb = [](std::string const& _param) 
{ 
    std::cout << _param; 
}; 
// clang-format on 
Các vấn đề liên quan