7

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

如何自定义智能缩进行为的所有细节?

例如,当我输入此代码时,智能缩进将其格式化为:

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

如何自定义智能缩进的行为?我宁愿不使用任何外部工具,如 Visual Assist X。


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 回答
0

一个丑陋的解决方案是这样的:

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

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

出于某种可恶的原因,这是我见过的让 VS 正确缩进该混乱的唯一方法。

于 2014-02-25T15:15:29.367 回答