Visual C++不断破坏我的代码格式对齐

Dan*_*olf 5 code-formatting autoformatting visual-studio visual-c++ visual-studio-2013

我正在开发一个在源代码中使用水平对齐的开源项目.代码是用C++编写的,我使用的是Visual Studio 2013.Visual Studio尝试在间距方面很聪明,但最终会破坏我的手动对齐.

典型的代码如下所示:

bool  ?   ?   ? GetFieldWithType  ?   ? ( int idx, cc8* name, int type );
bool  ?   ?   ? GetFieldWithType  ?   ? ( int idx, int key, int type );
static cc8*   ? GetLuaTypeName    ?   ? ( int type );
void* ?   ?   ? GetPtrUserData    ?   ? ( int idx );
Run Code Online (Sandbox Code Playgroud)

现在,如果我像这样添加另一行,只要我输入左括号(在两个选项卡之后),Visual Studio就会删除我刚刚输入的两个选项卡并用一个空格替换它们.我试着耐心点击Ctrl + Z来撤消自动格式化.但是一旦我输入分号,它就会再次杀死标签.

我在工具>选项>文本编辑器> C/C++>格式设置>间距>间距中找到了一个选项,用于切换是否在参数列表的左括号之前插入空格的函数括号.如果我取消激活此选项,VS仍然坚持在左括号之前删除选项卡,它只是不添加空格.我如何摆脱这种行为?

要明确:我很好用VS自动插入空格(根据我的配置).我不想完全停用自动格式化.我只是不希望它删除我手动输入的间距.

kjh*_*jhf 4

Tools > Options > Text Editor > C/C++

在下面,Tabs您可以将“插入空格”更改为“保留制表符”。如果你不想让 VS 搞乱你的缩进,你也可以在这里关闭缩进。

在下面,Formatting > Spacing您可以取消选中(几乎)所有“删除空间...”选项。

希望有帮助!