我很难扩展shell脚本语法,因为它仅突出显示bash-builtin命令。我想主要强调外壳命令,而不仅仅是内置命令。为此,我尝试通过注入来扩展语法,但这没有得到很好的记录,因此无论我在做什么,我都会一遍又一遍地遇到相同的问题。如果我将某些命令识别为功能(并因此突出显示),它们就是它们,但是在注释中它们也会突出显示,这非常令人讨厌。无论我尝试哪种组合,我都不会摆脱它。由于support.function.extended.shell令牌由于注入而始终是最高值,因此它始终是彩色的。有什么解决办法吗???
如您在图片中看到的那样,内置命令如“ echo”在注释中没有变色,应该如此
{ "scopeName": "shellcommand.injection", "injectionSelector": "L:source.shell -support.function.builtin.shell", "patterns": [{ "include": "#shell-commands" }], "repository": { "shell-commands": { "patterns": [{ "match": "(?<=^|;|&|\\s)(systemctl|cp|sed|awk)(?=\\s|;|&|$)", "name": "support.function.extended.shell" }] } } }
然后输出看起来像这样...
我很难扩展shell脚本语法,因为它仅突出显示bash-builtin命令。我想主要强调外壳命令,而不仅仅是内置命令。为此,我试图...
您可能需要一个更具体的进样选择器。尝试针对更具体的范围(不包含注释的范围)或从选择器中排除注释。我认为第二个示例将更适合您的示例。只需为此使用-
否定选择器: