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

How to automatically indent #pragma directive in Visual Studio

本文关键字:缩进 #pragma 指令 Visual Studio      更新时间:2023-10-16

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

Visual Studio总是消除我对这些指令的缩进,这让我很恼火。这使得折叠我的源代码部分变得困难。下面的例子是一个没有缩进的例子。如果它是缩进的,那么它会更容易阅读。

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

我不同意#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之后才有效。

如果缩进,则会产生误导。#pragma预处理器指令,不遵守作用域。您正试图告诉代码的读者相反的情况。

Visual Studio是明智的,这一次,我不知道如何改变这种行为。

我同意Lightness Races in Orbit的答案。不管有没有缩进,都会执行预处理器命令,并且使它们具有0个缩进有助于调用由它们包装的代码块。

也就是说,如果你想阻止MSVS更改缩进,你可以转到

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

并将其从Smart更改为Block。这将阻止自动缩进在其他一切上发生,所以你可能不想要它。