使用 VSCode 对某些 YAML 字段进行自定义语法突出显示

Aar*_*n V 8 yaml visual-studio-code vscode-extensions

我们的基础设施使用 YML 文件来配置各种流程。例如,(非常简化的)配置块可能如下所示:

process:
   my-process:
      requires: "@other-process::parameter"
      dockerfile: |
         FROM alpine
         RUN apk add git
      script: |
        #!/bin/bash
        if [ ! -f $file ]; then echo header > $file; fi
Run Code Online (Sandbox Code Playgroud)

我们使用 Visual Studio 代码来创建/编辑这些文件,并且非常希望自定义语法突出显示来帮助阅读它们。例如,在上面的示例中,如果 VSCode 能够自动执行以下操作,那就太好了:

  • 突出显示字符串“@other-processrequires突出显示字段中的
  • 将 bash 脚本语法突出显示应用于该script字段
  • 将 Dockerfile 突出显示应用于dockerfile字段

我知道 VSCode 使用 TextMate 语法定义进行语法突出显示,但自己编写一个远远超出了我的专业水平。有没有更简单的方法来为特定字段注入自定义语法突出显示?

虽然 VSCode 是我们的默认编辑器,但涉及不同文本编辑器的解决方案就可以了。

Mat*_*ner 3

两种方法:

  • 使用装饰器。这些允许您动态更改文档中特定范围的颜色和样式。这是一个装饰器扩展示例

  • 编写 textmate 注入语法。(请参阅此评论)。这是更高级的,因为它需要大量的文本语法知识。它的灵活性也较差,但性能会更高。