2016-08-25 1 views
0

で配列定義内の新しい行削除します。打ち鳴らすフォーマットは、私は可能な場合、指示と私の配列の値を定義したいと指示子

enum Mode { 
    NONE, 
    SPLIT_FILES, 
    SINGLE_FILE, 
    INVALID 
}; 

const std::string ModeName[] = { 
    [NONE] = "NONE", 
    [SPLIT_FILES] = "SPLIT_FILES", 
    [SINGLE_FILE] = "SINGLE_FILE", 
    [INVALID] = "INVALID" 
}; 

clang-format(3.5)を介してこれを実行し、新しい行を狂わせる、それが少なくなります

enum RecorderMode { REC_NONE, REC_SPLIT_FILES, REC_SINGLE_FILE, REC_INVALID }; 

const std::string RecorderModeName[] 
    = {[REC_NONE] = "NONE", [REC_SPLIT_FILES] = "SPLIT_FILES", [REC_SINGLE_FILE] = "SINGLE_FILE", 
     [REC_INVALID] = "INVALID" }; 

アレイ定義にはいくつかの問題があります。= {は次の行に移動します。最後の配列エントリの後にカンマを追加すると、行は2回インデントされます。

新しい行と字下げを維持する方法はありますか?clang形式のコメントをオフにすることはできませんか?

Thisは、enum(最後の定数の後にカンマを追加するか、コンマの後に後続のコメントを追加する)の回避策を示しますが、配列には適用されないようです。

+1

私は非常に多くの方法で欲しいclang形式を見つけた後、[uncrustify](https://github.com/uncrustify/uncrustify)のファンになりました。それは完璧ではありませんが、少なくともそれは絶えず進歩しています。入力がなければ、uncrustifyはレイアウトを変更しません。しかし、[9つのマイナーなデフォルト](https://github.com/uncrustify/uncrustify/blob/master/documentation/htdocs/configuration.txt)(25行目)があります。すべての列挙型があなたの望むように見えるようにするには、 'nl_enum_own_lines = force'を使うことができます。私はまだ学んでいるので、あなたがまだ好きな方法を配列defを整理することについてはわかりません。しかし、やはりデフォルトではそれをそのまま残します。 –

+0

@NoviceC:1年以上後、GNUインデントとclang形式で激怒した後にuncrustifyをスタブしました。私はそれが大好きです、それはずっと良いです!私はあなたが1年前にそれを提案したときに試してみたいです。あなたはおそらくそれをもっと良くしているかもしれませんが、もし私に[universalindentgui](http://universalindent.sourceforge.net/)を提案させないならば。すべてのオプションとその効果をリアルタイムで表示します。 – Gauthier

答えて

0

This answerは許容回避策を私に与えた:

設定ColumnLimit 0にトレードオフにはラインが自動的にラップされていないということですが、これはそれだけの価値があります。作業中のプログラマーは、とにかく過去の列120を書き込まない傾向があります。

関連する問題