Visual Studio 2012“智能”缩进定制

时间:2013-02-26 20:27:25

标签: c++ visual-studio visual-studio-2012

我正在使用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()
{
}

除了冒号引入初始化列表,初始化列表中的第一项以及构造函数体的缩进级别之外,大部分都是我想要的。我希望这些格式化为这样,我希望Visual Studio自动为我完成:

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

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


1 :通过工具&gt; 选项&gt; 文字编辑器&gt; C / C ++ &gt; 标签&gt;的缩进

2 :我也有tabstops设置为4,插入了空格。

2 个答案:

答案 0 :(得分: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键,就会调用此方法。不幸的是,它并不像在配置对话框中更改某些规则那么容易。

答案 1 :(得分:0)

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

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

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

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

相关问题