问题如下:代码库有许多文件,其中包含使用#if defined(...) 指令为每个目标平台有条件地编译的多个块。由于典型的程序员主要在其中一个平台上工作,因此即使代码块在 Visual Studio 2005 编辑器中显示为灰色,使用这些大块的非活动代码块也很难阅读和导航代码。
让某人知道仅折叠未编译但仍存在于源文件中的代码块的功能。
问题如下:代码库有许多文件,其中包含使用#if defined(...) 指令为每个目标平台有条件地编译的多个块。由于典型的程序员主要在其中一个平台上工作,因此即使代码块在 Visual Studio 2005 编辑器中显示为灰色,使用这些大块的非活动代码块也很难阅读和导航代码。
让某人知道仅折叠未编译但仍存在于源文件中的代码块的功能。
据我所知,默认情况下您不能折叠不活动的预处理器区域,并且似乎没有提供该功能的扩展。
也就是说,您可以做的是更改非活动预处理器文本的呈现方式(至少在 VS2012 上),因此它不会分散注意力,并且实际编译的代码更易于阅读。
试试这些设置:
Tools > Options > Text Editor > C/C++ > Formatting:
Show Inactive Blocks : true
Disable Inactive Code Opacity : false
Inactive Code Opacity Percent: 30
默认值为 65,但如果您使用深色主题,我发现 30 效果更好。
您还可以使用Visual Studio 2012 Color Theme Editor进一步调整颜色,以进一步提高可读性(例如,如果您更喜欢 Sublime Text 呈现代码的方式)