[英]Forcing { } to indent and be on their own line
由於我無法控制的原因,我必須使用 C 編碼風格來處理{
和}
if (lisa())
{
while (mary())
{
john();
anna();
}
}
else if (bart())
{
do
{
jack();
}
while (paul());
}
那是
{
和}
對齊(我在任何標准樣式中都沒有發現這一點)。{
和}
分隔代碼塊是一行中的單個非空白字符(可能不包括注釋){
和}
也會在for (…)
、 do
、 while (…)
不匹配較早的do
、 if (…)
和else
之后強制執行,除非緊接着是if
. 我應該在我的最小.clang-format
文件中添加/更改哪些廣泛支持的屬性以獲得此行為?
---
BasedOnStyle: Microsoft
ColumnLimit: '120'
TabWidth: '4'
UseTab: Never
...
我嘗試創建自定義行為,即BreakBeforeBraces: Custom
以滿足您的需求,但我非常有信心使用 clang-format-14 無法實現(根據我一直在使用的文檔,也無法使用 clang-format-16像查找表一樣使用)。
如果它設置為使用: BreakBeforeBraces: Whitesmiths
代碼看起來幾乎與 Kamil 在評論中所寫的您的需求相同,但在 do-while 中不在新行中。
如果它設置為使用: BreakBeforeBraces: GNU
while 出現在一個新行但是還有很多其他問題。 例如,代碼沒有與大括號水平對齊。
似乎最接近的是在.clang-format
文件中使用這些選項:
Language: Cpp
BreakBeforeBraces: Whitesmiths
IndentWidth: 4
UseTab: Never
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.