如何更改预处理器条件的颜色,例如 Visual Studio 中的#if?
How to change the color of Preprocessor Conditionals such as #if in Vistual Studio?
有没有一种方法可以改变预处理器条件的颜色,例如,
#if
#ifdef
#ifndef
#endif
我确实在使用大量预处理器条件的大型 C 库上工作,正如您在下面的示例中看到的那样,这确实限制了代码的可读性,因为 C 程序员通常不会缩进这些条件。
使用 Keywork Highlighting 将这些行变灰将有助于避免将这些未缩进的行混淆为长 if
语句等的结尾。
示例代码,
...
if( ... )
{
for( uint8_t i = 0, k = 0; i < FOO; i += 16, k++ )
{
for( uint8_t j = 0; j < 16; j++ )
{
#if defined( BAZ ) || defined( BAR )
if( ... )
#else
if( ... )
#endif
{
if( ... )
{
continue;
}
#if defined( BAZ_ ) || defined( BAR_ ) || defined( FOO_ )
if( ... )
{
if( ... )
{
continue;
}
}
#endif
if( ... )
{
continue;
}
if( ... )
{
foo++;
continue;
}
}
}
}
}
...
注意:我已经为 Visual Studio 提出了问题,但是,我将使用 Atmel Studio 中的解决方案 这基本上是同一软件的重新标记版本。我过去已经成功地将大部分 VS 附加组件安装到 Atmel Studio,但如果你的解决方案要包含它,我还没有尝试过 R#。
更新:
发布问题后,我实际上注意到 Whosebug 上的语法高亮功能非常出色,完全符合我的想法。 #
条件变灰,其余代码读起来很漂亮。我希望能够在 VS/AS.
上做同样的事情
在 Visual Studio 中转到 Tools/Options/Fonts 和颜色并修改项目 预处理器关键字 和 预处理器文本 。
一两年前我运行 跨越了解决方案:Naggy。在其他几个功能(我觉得很有用)中,它会像您期望和想要的那样将预处理器条件变灰。
在 Atmel Studio 7.0 中,它位于内置扩展库中。从那里安装,重新启动 AS,你就可以开始了。没有选项或配置设置;非常简单,效果很好。
我也在 Atmel Studio 6.2 中使用它,但似乎我必须手动安装它或进行其他操作。 This AVR Freaks thread 应该有帮助。
Visual Studio 中的相关功能称为 Show Inactive Blocks.
您可以在以下位置找到该选项:
Tools -> Options -> Text Editor -> C/C++ -> View
.. 或者如果使用 Visual Studio 2015 或更新版本,您可以使用 Quick Launch
搜索栏 (Ctrl+Q
) 并输入单词 "Inactive" 到达那里。 =14=]
至少自 VS 2010 以来,这一直是 Visual Studio 的核心功能。默认设置是以 65% 的不透明度使非活动代码块变暗,这可能不足以真正从其他块中脱颖而出一些显示器上的代码
(如果使用深色主题尤其如此)。我将我的设置为 45%。
有没有一种方法可以改变预处理器条件的颜色,例如,
#if
#ifdef
#ifndef
#endif
我确实在使用大量预处理器条件的大型 C 库上工作,正如您在下面的示例中看到的那样,这确实限制了代码的可读性,因为 C 程序员通常不会缩进这些条件。
使用 Keywork Highlighting 将这些行变灰将有助于避免将这些未缩进的行混淆为长 if
语句等的结尾。
示例代码,
...
if( ... )
{
for( uint8_t i = 0, k = 0; i < FOO; i += 16, k++ )
{
for( uint8_t j = 0; j < 16; j++ )
{
#if defined( BAZ ) || defined( BAR )
if( ... )
#else
if( ... )
#endif
{
if( ... )
{
continue;
}
#if defined( BAZ_ ) || defined( BAR_ ) || defined( FOO_ )
if( ... )
{
if( ... )
{
continue;
}
}
#endif
if( ... )
{
continue;
}
if( ... )
{
foo++;
continue;
}
}
}
}
}
...
注意:我已经为 Visual Studio 提出了问题,但是,我将使用 Atmel Studio 中的解决方案 这基本上是同一软件的重新标记版本。我过去已经成功地将大部分 VS 附加组件安装到 Atmel Studio,但如果你的解决方案要包含它,我还没有尝试过 R#。
更新:
发布问题后,我实际上注意到 Whosebug 上的语法高亮功能非常出色,完全符合我的想法。 #
条件变灰,其余代码读起来很漂亮。我希望能够在 VS/AS.
在 Visual Studio 中转到 Tools/Options/Fonts 和颜色并修改项目 预处理器关键字 和 预处理器文本 。
一两年前我运行 跨越了解决方案:Naggy。在其他几个功能(我觉得很有用)中,它会像您期望和想要的那样将预处理器条件变灰。
在 Atmel Studio 7.0 中,它位于内置扩展库中。从那里安装,重新启动 AS,你就可以开始了。没有选项或配置设置;非常简单,效果很好。
我也在 Atmel Studio 6.2 中使用它,但似乎我必须手动安装它或进行其他操作。 This AVR Freaks thread 应该有帮助。
Visual Studio 中的相关功能称为 Show Inactive Blocks.
您可以在以下位置找到该选项:
Tools -> Options -> Text Editor -> C/C++ -> View
.. 或者如果使用 Visual Studio 2015 或更新版本,您可以使用 Quick Launch
搜索栏 (Ctrl+Q
) 并输入单词 "Inactive" 到达那里。 =14=]
至少自 VS 2010 以来,这一直是 Visual Studio 的核心功能。默认设置是以 65% 的不透明度使非活动代码块变暗,这可能不足以真正从其他块中脱颖而出一些显示器上的代码 (如果使用深色主题尤其如此)。我将我的设置为 45%。