{
  "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
  "name": "cue",
  "fileTypes": ["cue"],
  "scopeName": "source.cue",
  "patterns": [
    {
      "include": "#whitespace"
    },
    {
      "include": "#comment"
    },
    {
      "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(package)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(?![\\p{L}\\p{Nd}_\\$\\#])",
      "captures": {
        "1": {
          "name": "keyword.other.package"
        },
        "2": {
          "name": "entity.name.namespace"
        }
      }
    },
    {
      "patterns": [
        {
          "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(\\()",
          "beginCaptures": {
            "1": {
              "name": "keyword.other.import"
            },
            "2": {
              "name": "punctuation.section.parens.begin"
            }
          },
          "end": "\\)",
          "endCaptures": {
            "0": {
              "name": "punctuation.section.parens.end"
            }
          },
          "patterns": [
            {
              "include": "#whitespace"
            },
            {
              "include": "#comment"
            },
            {
              "match": "(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")",
              "captures": {
                "1": {
                  "name": "entity.name.namespace"
                },
                "2": {
                  "name": "punctuation.definition.string.begin"
                },
                "3": {
                  "name": "string.quoted.double-import"
                },
                "4": {
                  "name": "punctuation.colon"
                },
                "5": {
                  "name": "entity.name"
                },
                "6": {
                  "name": "punctuation.definition.string.end"
                }
              },
              "name": "meta.import-spec"
            },
            {
              "match": ";",
              "name": "punctuation.separator"
            },
            {
              "include": "#invalid_in_parens"
            }
          ],
          "name": "meta.imports"
        },
        {
          "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")",
          "captures": {
            "1": {
              "name": "keyword.other.import"
            },
            "2": {
              "name": "entity.name.namespace"
            },
            "3": {
              "name": "punctuation.definition.string.begin"
            },
            "4": {
              "name": "string.quoted.double-import"
            },
            "5": {
              "name": "punctuation.colon"
            },
            "6": {
              "name": "entity.name"
            },
            "7": {
              "name": "punctuation.definition.string.end"
            }
          },
          "name": "meta.import"
        }
      ]
    },
    {
      "include": "#punctuation_comma"
    },
    {
      "include": "#declaration"
    },
    {
      "include": "#invalid_in_braces"
    }
  ],
  "repository": {
    "attribute_element": {
      "patterns": [
        {
          "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(=)",
          "beginCaptures": {
            "1": {
              "name": "variable.other"
            },
            "2": {
              "name": "punctuation.bind"
            }
          },
          "end": "(?=[,\\)])",
          "patterns": [
            {
              "include": "#attribute_string"
            }
          ]
        },
        {
          "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()",
          "beginCaptures": {
            "1": {
              "name": "variable.other"
            },
            "2": {
              "name": "punctuation.attribute-elements.begin"
            }
          },
          "end": "\\)",
          "endCaptures": {
            "0": {
              "name": "punctuation.attribute-elements.end"
            }
          },
          "patterns": [
            {
              "include": "#punctuation_comma"
            },
            {
              "include": "#attribute_element"
            }
          ]
        },
        {
          "include": "#attribute_string"
        }
      ]
    },
    "attribute_string": {
      "patterns": [
        {
          "include": "#string"
        },
        {
          "match": "[^\\n,\"'#=\\(\\)]+",
          "name": "string.unquoted"
        },
        {
          "match": "[^,\\)]+",
          "name": "invalid"
        }
      ]
    },
    "comment": {
      "patterns": [
        {
          "match": "(//).*$\\n?",
          "captures": {
            "1": {
              "name": "punctuation.definition.comment"
            }
          },
          "name": "comment.line"
        },
        {
          "captures": {
            "0": {
              "name": "punctuation.definition.comment"
            }
          },
          "begin": "/\\*",
          "end": "\\*/",
          "name": "comment.block"
        }
      ]
    },
    "declaration": {
      "patterns": [
        {
          "begin": "(@)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()",
          "beginCaptures": {
            "1": {
              "name": "punctuation.definition.annotation"
            },
            "2": {
              "name": "variable.annotation"
            },
            "3": {
              "name": "punctuation.attribute-elements.begin"
            }
          },
          "end": "\\)",
          "endCaptures": {
            "0": {
              "name": "punctuation.attribute-elements.end"
            }
          },
          "patterns": [
            {
              "include": "#punctuation_comma"
            },
            {
              "include": "#attribute_element"
            }
          ],
          "name": "meta.annotation"
        },
        {
          "match": "(?<!:)::(?!:)",
          "name": "punctuation.isa"
        },
        {
          "include": "#punctuation_colon"
        },
        {
          "match": "\\?",
          "name": "punctuation.option"
        },
        {
          "match": "(?<![=!><])=(?![=~])",
          "name": "punctuation.bind"
        },
        {
          "match": "<-",
          "name": "punctuation.arrow"
        },
        {
          "include": "#expression"
        }
      ]
    },
    "expression": {
      "patterns": [
        {
          "patterns": [
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(for)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?:[ \\t]*(,)[ \\t]*([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+))?[ \\t]+(in)(?![\\p{L}\\p{Nd}_\\$\\#])",
              "captures": {
                "1": {
                  "name": "keyword.control.for"
                },
                "2": {
                  "name": "variable.other"
                },
                "3": {
                  "name": "punctuation.separator"
                },
                "4": {
                  "name": "variable.other"
                },
                "5": {
                  "name": "keyword.control.in"
                }
              }
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])if(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "keyword.control.conditional"
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(let)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)(?![=])",
              "captures": {
                "1": {
                  "name": "keyword.control.let"
                },
                "2": {
                  "name": "variable.other"
                },
                "3": {
                  "name": "punctuation.bind"
                }
              }
            }
          ]
        },
        {
          "patterns": [
            {
              "match": "[\\+\\-\\*]|/(?![/*])",
              "name": "keyword.operator"
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:div|mod|quo|rem)(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "keyword.operator.word"
            },
            {
              "match": "=[=~]|![=~]|<=|>=|[<](?![-=])|[>](?![=])",
              "name": "keyword.operator.comparison"
            },
            {
              "match": "&{2}|\\|{2}|!(?![=~])",
              "name": "keyword.operator.logical"
            },
            {
              "match": "&(?!&)|\\|(?!\\|)",
              "name": "keyword.operator.set"
            }
          ]
        },
        {
          "match": "(?<!\\.)(\\.)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])",
          "captures": {
            "1": {
              "name": "punctuation.accessor"
            },
            "2": {
              "name": "variable.other.member"
            }
          }
        },
        {
          "patterns": [
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_(?!\\|)(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "constant.language.top"
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_\\|_(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "constant.language.bottom"
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])null(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "constant.language.null"
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:true|false)(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "constant.language.bool"
            },
            {
              "patterns": [
                {
                  "patterns": [
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.float.decimal"
                    },
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*[eE][\\+\\-]?[0-9](?:_?[0-9])*(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.float.decimal"
                    },
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.float.decimal"
                    }
                  ]
                },
                {
                  "patterns": [
                    {
                      "patterns": [
                        {
                          "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?:\\.[0-9](?:_?[0-9])*)?(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])",
                          "name": "constant.numeric.integer.other"
                        },
                        {
                          "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])",
                          "name": "constant.numeric.integer.other"
                        }
                      ]
                    },
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.integer.decimal"
                    },
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])0b[0-1](?:_?[0-1])*(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.integer.binary"
                    },
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])0[xX][0-9a-fA-F](?:_?[0-9a-fA-F])*(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.integer.hexadecimal"
                    },
                    {
                      "match": "(?<![\\p{L}\\p{Nd}_\\.])0o?[0-7](?:_?[0-7])*(?![\\p{L}\\p{Nd}_\\.])",
                      "name": "constant.numeric.integer.octal"
                    }
                  ]
                }
              ]
            },
            {
              "include": "#string"
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:bool|u?int(?:8|16|32|64|128)?|float(?:32|64)?|string|bytes|number|rune)(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "support.type"
            },
            {
              "patterns": [
                {
                  "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(len|close|and|or)(\\()",
                  "beginCaptures": {
                    "1": {
                      "name": "support.function"
                    },
                    "2": {
                      "name": "punctuation.section.parens.begin"
                    }
                  },
                  "end": "\\)",
                  "endCaptures": {
                    "0": {
                      "name": "punctuation.section.parens.end"
                    }
                  },
                  "patterns": [
                    {
                      "include": "#whitespace"
                    },
                    {
                      "include": "#comment"
                    },
                    {
                      "include": "#punctuation_comma"
                    },
                    {
                      "include": "#expression"
                    },
                    {
                      "include": "#invalid_in_parens"
                    }
                  ],
                  "name": "meta.function-call"
                },
                {
                  "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(\\.)(\\p{Lu}[\\p{L}\\p{Nd}_\\$\\#]*)(\\()",
                  "beginCaptures": {
                    "1": {
                      "name": "support.module"
                    },
                    "2": {
                      "name": "punctuation"
                    },
                    "3": {
                      "name": "support.function"
                    },
                    "4": {
                      "name": "punctuation.section.parens.begin"
                    }
                  },
                  "end": "\\)",
                  "endCaptures": {
                    "0": {
                      "name": "punctuation.section.parens.end"
                    }
                  },
                  "patterns": [
                    {
                      "include": "#whitespace"
                    },
                    {
                      "include": "#comment"
                    },
                    {
                      "include": "#punctuation_comma"
                    },
                    {
                      "include": "#expression"
                    },
                    {
                      "include": "#invalid_in_parens"
                    }
                  ],
                  "name": "meta.function-call"
                }
              ]
            },
            {
              "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:[\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])",
              "name": "variable.other"
            },
            {
              "begin": "\\{",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.definition.struct.begin"
                }
              },
              "end": "\\}",
              "endCaptures": {
                "0": {
                  "name": "punctuation.definition.struct.end"
                }
              },
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#comment"
                },
                {
                  "include": "#punctuation_comma"
                },
                {
                  "include": "#punctuation_ellipsis"
                },
                {
                  "include": "#declaration"
                },
                {
                  "include": "#invalid_in_braces"
                }
              ],
              "name": "meta.struct"
            },
            {
              "begin": "\\[",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.brackets.begin"
                }
              },
              "end": "\\]",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.brackets.end"
                }
              },
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#comment"
                },
                {
                  "include": "#punctuation_colon"
                },
                {
                  "include": "#punctuation_comma"
                },
                {
                  "include": "#punctuation_ellipsis"
                },
                {
                  "match": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)",
                  "captures": {
                    "1": {
                      "name": "variable.other"
                    },
                    "2": {
                      "name": "punctuation.alias"
                    }
                  }
                },
                {
                  "include": "#expression"
                },
                {
                  "match": "[^\\]]+",
                  "name": "invalid"
                }
              ],
              "name": "meta.brackets"
            },
            {
              "begin": "\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.parens.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.parens.end"
                }
              },
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#comment"
                },
                {
                  "include": "#punctuation_comma"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.parens"
            }
          ]
        }
      ]
    },
    "invalid_in_braces": {
      "match": "[^\\}]+",
      "name": "invalid"
    },
    "invalid_in_parens": {
      "match": "[^\\)]+",
      "name": "invalid"
    },
    "punctuation_colon": {
      "match": "(?<!:):(?!:)",
      "name": "punctuation.colon"
    },
    "punctuation_comma": {
      "match": ",",
      "name": "punctuation.separator"
    },
    "punctuation_ellipsis": {
      "match": "(?<!\\.)\\.{3}(?!\\.)",
      "name": "punctuation.ellipsis"
    },
    "string": {
      "patterns": [
        {
          "begin": "#\"\"\"",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "\"\"\"#",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.double-multiline",
          "patterns": [
            {
              "match": "\\\\#(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "invalid.illegal"
            },
            {
              "begin": "\\\\#\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\#.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "#\"",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "\"#",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.double",
          "patterns": [
            {
              "match": "\\\\#(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "invalid.illegal"
            },
            {
              "begin": "\\\\#\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\#.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "#'''",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "'''#",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.single-multiline",
          "patterns": [
            {
              "match": "\\\\#(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "constant.character.escape"
            },
            {
              "begin": "\\\\#\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\#.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "#'",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "'#",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.single",
          "patterns": [
            {
              "match": "\\\\#(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "constant.character.escape"
            },
            {
              "begin": "\\\\#\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\#.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "\"\"\"",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "\"\"\"",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.double-multiline",
          "patterns": [
            {
              "match": "\\\\(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "invalid.illegal"
            },
            {
              "begin": "\\\\\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "\"",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "\"",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.double",
          "patterns": [
            {
              "match": "\\\\(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "invalid.illegal"
            },
            {
              "begin": "\\\\\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "'''",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "'''",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.single-multiline",
          "patterns": [
            {
              "match": "\\\\(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "constant.character.escape"
            },
            {
              "begin": "\\\\\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "'",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "'",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.single",
          "patterns": [
            {
              "match": "\\\\(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
              "name": "constant.character.escape"
            },
            {
              "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
              "name": "constant.character.escape"
            },
            {
              "begin": "\\\\\\(",
              "beginCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.begin"
                }
              },
              "end": "\\)",
              "endCaptures": {
                "0": {
                  "name": "punctuation.section.interpolation.end"
                }
              },
              "contentName": "source.cue.embedded",
              "patterns": [
                {
                  "include": "#whitespace"
                },
                {
                  "include": "#expression"
                },
                {
                  "include": "#invalid_in_parens"
                }
              ],
              "name": "meta.interpolation"
            },
            {
              "match": "\\\\.",
              "name": "invalid.illegal"
            }
          ],
          "name": "meta.string"
        },
        {
          "begin": "`",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.string.begin"
            }
          },
          "end": "`",
          "endCaptures": {
            "0": {
              "name": "punctuation.definition.string.end"
            }
          },
          "contentName": "string.quoted.backtick",
          "name": "meta.string"
        }
      ]
    },
    "whitespace": {
      "match": "[ \\t\\r\\n]+"
    }
  }
}
