自定义VSCode的LGC语言TextMate语法没有高亮效果是什么原因?
问题原因
你遇到的高亮失效问题完全来自syntaxes/lgc.tmLanguage.json文件里的两处拼写错误:
- 第一处:
repository.keywords下的数组键名拼写错误,你写的是paterns,正确拼写为patterns,VSCode无法识别拼写错误的键,自然不会加载对应的匹配规则 - 第二处:匹配规则的属性名拼写错误,你写的是
"name:",末尾多了一个冒号,正确属性名为"name",这会导致即使字符匹配成功,VSCode也不知道应该给该字符应用什么作用域的高亮样式
修正后的配置
将syntaxes/lgc.tmLanguage.json替换为以下内容即可生效:
{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "Lgc", "patterns": [ { "include": "#keywords" } ], "repository": { "keywords": { "patterns": [ { "name": "keyword.gate.lgc", "match": "a" } ] } }, "scopeName": "source.lgc" }
可选校验步骤
如果修正后仍然没有高亮,可以按以下步骤排查:
- 重启VSCode确保扩展加载生效
- 按
Ctrl+Shift+P(Mac系统为Cmd+Shift+P),执行命令Developer: Inspect Editor Tokens and Scopes,将光标移到字符a上,查看是否出现keyword.gate.lgc的作用域标识 - 如果作用域匹配正常但仍然没有高亮,说明你当前使用的主题未适配
keyword.gate.lgc作用域,可以切换到VSCode默认的Dark+主题测试,或者在VSCode配置中自定义该作用域的高亮样式
内容的提问来源于stack exchange,提问作者AwesomeCronk
相关产品推荐
相关产品推荐

