Introduction

vscode编辑器在出现#ifdef代码块的时候,会默认认为这部分代码没有开启,从而不对这部分代码进行语法渲染。如果你代码里这部分内容比较多,那么代码阅读将变得非常困难。

本文介绍了在官方github issues里别人提出的解决方案。

修改插件

语法渲染插件是:

cpptools

1. 找到插件的文件路径

0.15.0是版本号。

  • Ubuntu: /home/<user>/.vscode/extensions/ms-vscode.cpptools-0.15.0/out/src/LanguageServer/client.js
  • Mac: /Users/<user>/.vscode/extensions/ms-vscode.cpptools-0.15.0/out/src/LanguageServer/client.js
  • Windows: C:\Users\<user>\.vscode\extensions\ms-vscode-cpptools-0.15.0\out\src\LanguageServer\client.js

2. 修改client.js

注释掉client.js文件中的下面一行:

this.languageClient.onNotification(InactiveRegionNotification, (e) => this.updateInactiveRegions(e));

3. 重启窗口

按下ctrl+alt+p,输入reload window来找到重启窗口的操作并点击。

可以看到ifdef块已经可以正常进行语法高亮渲染。

Reference

Do colorization of inactive preprocessor blocks

highlight the code, based on preprocessor definitions


文章版权归 FindHao 所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明作者 FindHao 和本文原始地址:
https://findhao.net/res/2399.html

Comments