如何在Visual Studio中自动缩进#pragma指令

时间:2015-12-21 16:51:41

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

有没有人知道如何确保Visual Studio 2013(C ++项目)中的#pragma指令正确缩进?

我很恼火,因为Visual Studio总是消除了我对这些指令的缩进。这使我很难折叠我的源代码部分。下面的示例是没有缩进的示例。如果缩进,则更容易阅读。

void func()
{
#pragma region section 1
#pragma endregion
}

3 个答案:

答案 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开始,此方法就起作用。