如何在 Visual Studio 中自动缩进 #pragma 指令
Posted
技术标签:
【中文标题】如何在 Visual Studio 中自动缩进 #pragma 指令【英文标题】:How to automatically indent #pragma directive in Visual Studio 【发布时间】:2015-12-21 16:51:40 【问题描述】:有人知道如何确保 Visual Studio 2013(C++ 项目)中的 #pragma
指令正确缩进吗?
Visual Studio 总是消除我对这些指令所做的缩进,这让我很恼火。这让我很难折叠我的源代码部分。下面的例子是一个没有缩进的例子。如果它是缩进的,那么它会更容易阅读。
void func()
#pragma region section 1
#pragma endregion
【问题讨论】:
【参考方案1】:我不同意 #pragma
表达式不应该缩进以显示它们是无范围的。因为在这个特殊的问题中#pragma region MyName
什么都不是,那将改变代码路径或它的任何含义。区域编译指示只是 IDE 的元信息。我很想说,微软误用了#pragma
关键字来启用可以折叠区域的IDE功能。
在我的日常代码库中,预处理器指令很少,但有很多 region
指令。因此,我不会冒险通过缩进 pragma 来误解文本。
如果你喜欢缩进 #pragma
表达式,你可以在下面启用它:
Tools > Options > Text Editor > C/C++ > Formatting > Indentation > Position of preprocessor directives > Leave indented
这至少从安装了 Productivity Power Tools 的 Visual Studio 2017 开始有效。
【讨论】:
我经常使用region
来隐藏不重要的代码部分。缩进看起来真的很棒。 +1【参考方案2】:
如果它是缩进的,那么它会产生误导。 #pragma
s 是预处理器指令,不遵守范围。您正试图告诉读者您的代码相反。
Visual Studio 是明智的,这一次,我不知道如何改变这种行为。
【讨论】:
【参考方案3】:我同意Lightness Races in Orbit 的answer。无论缩进如何,预处理器命令都会被执行,并且让它们具有 0 缩进有助于调出代码块被它们包装。
也就是说,如果您想阻止 MSVS 更改缩进,您可以转到
Tools -> Options -> Text Editor -> C/C++ -> Tabs
并将其从 Smart 更改为 Block。这也将阻止自动缩进在其他所有内容上发生,因此您可能不想要它。
【讨论】:
以上是关于如何在 Visual Studio 中自动缩进 #pragma 指令的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Python 的 Visual Studio Code 缩进
在 Visual Studio Code 中保存时避免自动缩进
使用 Visual Studio 2015 禁用注释的自动缩进