2

Ich habe vor kurzem beschlossen, eine .clang-format Datei in einem C++ - Projekt von mir, um den Code einheitlicher und leicht zu lesen. Ich mag hauptsächlich die Google-Standardeinstellungen, außer dass ich 4 Leerzeichen anstelle von zwei verwenden möchte.Klammer auf neue Zeile nur, wenn die aktuelle Zeile Überlauf Format

Das Problem dabei ist, dass bestimmte Anweisungen schwerer zu lesen sind, wenn die aktuelle Zeile die 80-Zeichen-Spaltengrenze überschreitet. Zum Beispiel in einer if-Anweisung, die überläuft:

if (some_condition || some_other_condition || 
    yet_another_condition) { 
    // block starts here 
} 

Die Ausrichtung der yet_another_condition entspricht dem Beginn des if-Block, der es schwer, ohne irgendeine Art von Pause zu lesen macht. Idealerweise ist so etwas wie das, was ich möchte in dieser Situation passieren:

if (some_condition || some_other_condition || 
    yet_another_condition) 
{ 
    // block starts here 
} 

Allerdings habe ich nur die öffnende Klammer auf einer neuen Zeile wenn die aktuelle Zeile läuft über in den nächsten, wie in der oben wünschen Beispiel. In allen anderen Fällen möchte ich die öffnende Klammer auf der gleichen Linie (das gilt für if/for/while/switch usw. Anweisungen und Funktionen).

Ist es möglich, dieses Verhalten in meiner .clang-format-Datei anzugeben, während der Rest der Google-Standardeinstellungen intakt bleibt?

Antwort

0

Das Werkzeug clang-format ermöglicht die benutzerdefinierte Klammerumhüllung mit BraceWrapping: Custom, aber es ist nicht flexibel genug, um den Kontext zu kennen, den Sie benötigen.

Die alternative Lösung zur Verbesserung der Lesbarkeit besteht darin, eine Fortsetzungseinkerbung von mehr als 4, z. ContinuationIndentWidth: 8.

+0

Ich hatte Angst, das könnte der Fall sein. Danke für Ihre Hilfe, dass 'ContinuationIndentWidth' die nächstbeste Lösung zu sein scheint. –

Verwandte Themen