有没有人知道如何确保Visual Studio 2013(C ++项目)中的#pragma
指令正确缩进?
我很恼火,因为Visual Studio总是消除了我对这些指令的缩进。这使我很难折叠我的源代码部分。下面的示例是没有缩进的示例。如果缩进,则更容易阅读。
void func()
{
#pragma region section 1
#pragma endregion
}
答案 0 :(得分:3)
如果缩进,则会产生误导。 #pragma
是预处理程序指令,并且不遵守范围。您试图告诉读者您的代码正好相反。
Visual Studio一次是明智的,我不知道如何改变这种行为。
答案 1 :(得分:2)
我同意answer Lightness Races in Orbit。无论是否存在缩进,预处理器命令都会被执行,并且使用0缩进有助于调用由它们包装的代码块。
如果您想阻止MSVS更改缩进,您可以转到
Tools -> Options -> Text Editor -> C/C++ -> Tabs
并将其从智能更改为阻止。这将阻止其他所有内容发生自动缩进,因此您可能不需要它。
答案 2 :(得分:1)
我不同意任何#pragma
表达式都不应缩进以表明它们是无范围的。因为在这个特殊问题#pragma region MyName
中什么都不是,所以这将更改代码路径或其任何含义。区域编译指示仅是IDE的元信息。我很想说一句,微软滥用#pragma
关键字来启用可折叠区域的IDE功能。
在我的日常代码库中,预处理器指令很少,但是有许多region
指令。因此,我不冒险通过缩进语法来误解文本。
如果您希望缩进#pragma
表达式,可以在以下位置启用它:
Tools > Options > Text Editor > C/C++ > Formatting > Indentation > Position of preprocessor directives > Leave indented
至少从安装了 Productivity Power Tools 的Visual Studio 2017开始,此方法就起作用。