7

Visual Studio 2012を使用していて、C++ファイルのスマートインデントを1にしています。2 スマートインデントの動作をカスタマイズして、入力したコードを会社のコーディングスタイルに準拠するようにフォーマットしたいと思います。

スマートインデントの動作の細部をすべてカスタマイズするにはどうすればよいですか?

たとえば、このコードを入力すると、スマートインデントは次のように正確にフォーマットします。

#include <cstdlib>
#include <string>
using namespace std;

struct Foo
{
    const string mA;
    const int mB;
    const string mC;

    Foo(const string& a,
        const int b,
        const string& c)
        :
    mA(a),
        mB(b),
        mC(c)
        {
        }
};

int main()
{
}

初期化子リストを導入するコロン、初期化子リストの最初の項目、およびコンストラクターの本体のインデント・レベルを除いて、これのほとんどは私が望むものです。これらを次のようにフォーマットし、VisualStudioで自動的に実行してもらいたいです。

Foo(const string& a,
    const int b,
    const string& c)
:
    mA(a),
    mB(b),
    mC(c)
{
}

スマートインデントの動作をカスタマイズするにはどうすればよいですか?VisualAssistXのような外部ツールは使用したくない。


1: [ツール] >[オプション] >[テキストエディタ] >[ C /C++ ] >[タブ] >[インデント]を使用

2:スペースを挿入してタブストップを4に設定しています。

4

2 に答える 2

4

次の場所にある MS Visual Studio SDK を調べます。

http://msdn.microsoft.com/en-us/library/bb139565.aspx

特に、VewFilter クラスで HandleSmartIndent をオーバーライドする必要があります。

http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.package.viewfilter.handlesmartindent.aspx

これは、エディターで Enter キーを押すたびに呼び出されます。残念ながら、構成ダイアログでいくつかのルールを変更するだけでは簡単ではありません。

于 2013-02-27T03:10:08.667 に答える