有没有办法阻止"关键字"在MS Visual Studio中高级语法

rob*_*.14 10 c++ visual-c++

MS Visual Studio编辑器将一些非关键字标识符作为C++文件中的关键字突出显示.特别是"事件"和"数组"被视为关键字.这对我来说非常烦人,因为它们不是C++关键字.我知道如何将自己的关键字添加到语法突出显示的标识符列表中,但是如何删除现有的内置关键字?我知道这可能需要修补一些可执行文件.那么有谁知道如何做到这一点?

rob*_*.14 6

感谢Steve Guidi提到的文章,我能够找到包含Colorizer和IScanner类的可执行文件.它名为vcpkg.dll,位于/ Microsoft Visual Studio 8/VC/vcpackages中.(我使用的是Visual C++ 2005 Express Edition,其他版本可能会有所不同.)

vcpkg.dll包含以null结尾的UTF-16编码字符串.我用十六进制编辑器打开它,搜索"数组".文件中只有一个这样的字符串,所以我用"arrry"替换它.(保持相对于其他关键字的相对字母顺序很重要.)然后我搜索了"事件",它出现在几个地方,但只有一个不是一些较长字符串的一部分,所以我用"evvvt"替换了这个.启动Visual Studio后,结果发现"数组"和"事件"不再突出显示,但是"arrry"和"evvvt"都是!

当然这是一个丑陋的黑客,它将使你的保修失效,并可能违反微软EULA,但这对眼睛有什么好处!无论如何,如果你想这样做,要小心并记住备份文件.


Ste*_*idi 2

它看起来不像以用户友好的方式公开禁用语法着色功能。

我能想到有选择地禁用语法着色的唯一方法是为 IDE 创建一个新的语法着色插件,并列出您想要着色的所有关键字。Microsoft 在本文中提供了有关如何完成此任务的信息。

这种方法的缺点是,您的 IDE 现在将有两种 C++ 语言,我不确定加载 .h 或 .cpp 文件后它将如何选择要选择的插件。不过,本文建议您可以通过重写一些注册表项来覆盖现有的 C++ 插件。