2013-02-26 21 views
7

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

スマートインデントがどのように動作するかについて、すべての面をカスタマイズするにはどうすればよいですか?例えば

、私はこのコードを入力し、それはまさにこのようにスマートインデント形式:

#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() 
{ 
} 

これのほとんどは、初期化リスト内の最初の項目を導入するコロンを除いて、私が欲しいものです初期化子リスト、およびコンストラクタのボディのインデントレベルが含まれます。私は、これらのは次のようにフォーマットしたい、と私は、Visual Studioが自動的に私のためにそれをしたい:

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

にはどうすればスマートインデントの動作をカスタマイズすることができますか?私はX.


アシストビジュアルなどの任意の外部ツールを使用しないことを好むだろう:経由ツール>オプション>テキストエディタ>>タブC/C++>インデント

:私はスペースを挿入して4に設定しました。

答えて

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キーを押します。残念ながら、設定ダイアログでいくつかのルールを変更するだけでは簡単ではありません。

0

醜い解決策はこれです:いくつかの忌まわしい理由で、私が今までVSが適切にその混乱をインデントするために取得するために見てきた唯一の方法である、

Foo(const string& a, 
    const int b, 
    const string& c) 

    : mA(a) 
    , mB(b) 
    , mC(c) 
{ 
} 

関連する問題