5

clang-format構造体メンバーと関数パラメーター名を列にフォーマットするために使用することは可能ですか?

例えば:

struct
{
   int           alpha; //aligned to 'b' of "beta"
   unsigned int  beta;
   MyObject     *gamma; //aligned with 'g' not '*'
};

void foobar (int           alpha, //aligned to 'b' of "beta"
             unsigned int  beta
             MyObject     *gamma) //aligned with 'g' not '*'
{
}

それが不可能な場合、clang-format を拡張してこれを達成できますか?

4

3 に答える 3

2

まあ、あなたは近づくことができます。

関数宣言の場合:

を設定BinPackParameters=falseすると、関数宣言のすべてのパラメーターが 1 つの行またはそれぞれ別の行に配置され、示されているように配置されます。

(ただし、タイプと識別子の間にタブ ストップがあるわけではありません。現時点では、clang 形式では不可能です。)

また、オプションを参照してくださいAllowAllParametersOfDeclarationOnNextLine

BinPackParameters が false であっても、関数宣言のすべてのパラメーターを次の行に配置できるようになりました。

構造体の場合、これを達成できるとは思いません。

過去に自分自身で clang-format のパッチを書いたことがあるので、あなたが提案しているような調整を行うのは大変な作業になると思います。これをサポートするには、かなりの量の C++ を自分で clang lib 形式に記述する必要があります。

于 2015-09-20T17:52:05.627 に答える