今天发现vs中编写py首行代码无法改变注释颜色,但其他地方可以,比如:c,json等,这肯定是better comments扩展的问题,在网上搜索无果后,便查询一下扩展配置
找到 "C:\Users\用户名\.vscode\extensions\aaron-bond.better-comments-3.0.2\out\parser.js",就是这个parser.js文件让我找到了解决问题的办法,在该文件中的第86行有
// Required to ignore the first line of .py files (#61)
所以便找到了问题所在,第87行代码:
if (this.ignoreFirstLine && startPos.line === 0 && startPos.character === 0) { continue; }:如果设置了忽略第一行,并且当前匹配的注释位于文件首行,则跳过该注释。
终于发现了原因:
Better Comments扩展在处理Python文件时,默认会忽略第一行的注释。这是因为某些Python文件(如shebang行)的首行可能不是真正的注释,而是一个特殊的指令。
解释shebang行请自行查询获取知识。
下面进行简略说明:
Shebang(也称Hashbang)是一个字符串行(#!),出现在文本文件的第一行的前两个字符。
举例:在linux中如果第一行为:#!/urs/bin/python3.9
表示调用其后指定的/usr/bin/python3.9程序来执行以下的这个脚本(这是一个命令,而非注释)
在默认情况下:
"#!"在better comments中是红色注释,为了避免将其注释,所以会在处理Python文件时,默认忽略第一行的注释。
解释完毕,下面是解决办法:
目前我已经在parser.js文件中注释掉了第86-第90行的代码,这样就能解决问题了
但是为了日后需要,我也将better comments的红色注释由原先的”!“修改为”@“避免了与其的混淆
在原来的vscode设置中的setting.json中有
"better-comments.tags": [
{better commentsvs
"tag": "!",
"color": "#FF2D00",
"strikethrough": false,
"backgroundColor": "transparent"
},
// ... 其他标签配置
],
,目前我已将将 "tag": "!", 修改为 "tag": "@",