我正在使用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,插入了空格。
答案 0 :(得分:4)
查看MS Visual Studio SDK,可在此处找到:
http://msdn.microsoft.com/en-us/library/bb139565.aspx
特别要在VewFilter类中覆盖HandleSmartIndent:
只要在编辑器中按Enter键,就会调用此方法。不幸的是,它并不像在配置对话框中更改某些规则那么容易。
答案 1 :(得分:0)
这是一个丑陋的解决方案:
Foo(const string& a,
const int b,
const string& c)
: mA(a)
, mB(b)
, mC(c)
{
}
出于某些可恶的原因,这是我见过让VS正确地缩进这个混乱的唯一方法。