问题:我的语法高亮和 IntelliSense 坏了。我有一个像这样的 C++ 源文件:
#include "stdafx.hpp"
#ifdef SOMETHING
do_some_stuff;
#endif
在哪里
stdafx.hpp
(项目的预编译头文件)包括 .h
文件说:#ifdef DEFINE_SOMETHING
#define SOMETHING
#endif
和
DEFINE_SOMETHING
在项目的项目属性中定义(在 C++/预处理器下)。Visual Studio 正在丢失轨道,并显示
do_some_stuff;
(实际上是很多行代码)纯灰色 - 我既没有语法着色也没有 IntelliSense。问题:我怎样才能让 Visual Studio 正确(不太可能)或关闭它认为是
#ifdef
的灰色代码这一事实出来了吗?(重新排列代码不是一种选择——它是一个庞大而复杂的系统,其文件构建在各种环境中,Visual Studio 只是其中之一。我使用的是 Visual Studio 2005,但我很想知道这是否是在更高版本中已修复或可解决。)
最佳答案
按照之前 aousov 的回答,我检查了我的 VSCode 并找到了这个设置:
C_Cpp:暗淡非事件区域
控制非事件预处理器 block 的颜色是否与事件代码不同。如果禁用 IntelliSense 或使用默认高对比度主题,则此设置无效。
在扩展/C/C++
这可能与您使用的版本有关(在我的情况下为 1.46.1)。
最好的,
杰弗里
关于visual-studio - 在 Visual Studio 中禁用或修复 #ifdef-sensitive 着色和智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14586672/