Visual Studio 2012"智能"缩进定制

Joh*_*ing 7 c++ visual-studio visual-studio-2012

我正在使用Visual Studio 2012,并为C++文件打开1智能缩进.2 我想自定义Smart缩进的行为,以便格式化我输入的代码,使其符合我公司的编码风格.

如何定制智能缩进行为的所有细微方面?

例如,当我输入此代码时,智能缩进格式就像这样:

#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()
{
}
Run Code Online (Sandbox Code Playgroud)

大多数这是我想要的,除了冒号引入初始化列表,初始化列表中的第一项,以及构造函数体的缩进级别.我希望这些格式化,我希望Visual Studio自动为我做这些:

Foo(const string& a,
    const int b,
    const string& c)
:
    mA(a),
    mB(b),
    mC(c)
{
}
Run Code Online (Sandbox Code Playgroud)

如何自定义智能缩进的行为?我宁愿不使用像Visual Assist X这样的外部工具.


1:通过工具 > 选项 > 文本编辑器 > C/C++ > 选项卡 > 缩进

2:我也有tabstops设置为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 键时都会调用此函数。不幸的是,这并不像在配置对话框中更改一些规则那么简单。