2017-09-05 2 views
0

uncrustifyを使用しているときに、whileループで問題が発生しました。 whileループにボディがない場合、末尾のセミコロンは次の行にプッシュされます。 githubとこのウェブサイトで私はこれについて何も言及しなかった。問題は、異なる行に1つのライナーを強制することに関連していますか?uncrustifyでループ中のボディレスとセミコロンの改行

私はそれを試してみましたコードは次のようになります(これは、それが最終的にどのように見えるかもある)

int main() 
{ 
    int i = 20000; 
    while(i--); 
    return 0; 
} 

しかしuncrustify何リターンは次のとおりです。

int main() 
{ 
    int i = 20000; 
    while (i--) 
     ; 
    return 0; 
} 

誰もが識別手伝ってくれるこれを引き起こすオプション? 設定ファイル:https://pastebin.com/3FUqHmp8

ありがとうございます!

答えて

0

空の設定ファイルでは、これは発生しません。この動作は、使用している設定ファイル(おそらくnl_*オプションの1つ)に追加したオプションによって発生します。

あなたのファイルへのリンクを掲載してください。


このオプションの両方がこの行動を引き起こしている:

# Add or remove newline between 'while' and '{'. 
nl_while_brace     = force # ignore/add/remove/force 

# Change a one-liner while statement into simple unbraced while 
# 'while (i<5) foo(i++);' => 'while (i<5)\n foo(i++);'. 
nl_split_while_one_liner  = true  # false/true 

はUncrustifyもかっこ(nl_while_brace)であることを中括弧(仮想括弧)を欠落していると考えていることに注意してください。

Uncrustifyにはスペーシングオプションのためのvbraceの処理を無効にするオプションがありますが、改行オプションでそれが欠落しているようです。必要な場合は、githubリポジトリサイトの機能またはプルリクエストを開きます:https://github.com/uncrustify/uncrustify

+0

私はこのvbraceのことについて強く思っていましたが、改行ではなくスペースにのみ適用されると考えました。私は、そのために機能要求を開く必要があると思います。私は残念ながらあなたの答えはまだ(十分な評判ではない)アップアップすることはできません。あなたの努力に感謝! – InfoMathze

関連する問題