如何更改预处理器条件的颜色,例如 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%。