736 lines
16 KiB
JSON
736 lines
16 KiB
JSON
{
|
|
"displayName": "reStructuredText",
|
|
"name": "rst",
|
|
"patterns": [
|
|
{
|
|
"include": "#body"
|
|
}
|
|
],
|
|
"repository": {
|
|
"anchor": {
|
|
"match": "^\\.{2}\\s+(_[^:]+:)\\s*",
|
|
"name": "entity.name.tag.anchor"
|
|
},
|
|
"block": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+\\S+::)(.*)",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"3": {
|
|
"name": "variable"
|
|
}
|
|
},
|
|
"end": "^(?!\\1\\s|\\s*$)",
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "#body"
|
|
}
|
|
]
|
|
},
|
|
"block-comment": {
|
|
"begin": "^(\\s*)\\.{2}(\\s+|$)",
|
|
"end": "^(?:(?=\\S)|\\s*$)",
|
|
"name": "comment.block",
|
|
"patterns": [
|
|
{
|
|
"begin": "^\\s{3,}(?=\\S)",
|
|
"name": "comment.block",
|
|
"while": "^(?:\\s{3}.*|\\s*$)"
|
|
}
|
|
]
|
|
},
|
|
"block-param": {
|
|
"patterns": [
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.control"
|
|
},
|
|
"2": {
|
|
"name": "variable.parameter"
|
|
}
|
|
},
|
|
"match": "(:param\\s+(.+?):)(?:\\s|$)"
|
|
},
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.control"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"match": "\\b(0x[A-Fa-f\\d]+|\\d+)\\b",
|
|
"name": "constant.numeric"
|
|
},
|
|
{
|
|
"include": "#inline-markup"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"match": "(:.+?:)(?:$|\\s+(.*))"
|
|
}
|
|
]
|
|
},
|
|
"blocks": {
|
|
"patterns": [
|
|
{
|
|
"include": "#domains"
|
|
},
|
|
{
|
|
"include": "#doctest"
|
|
},
|
|
{
|
|
"include": "#code-block-cpp"
|
|
},
|
|
{
|
|
"include": "#code-block-py"
|
|
},
|
|
{
|
|
"include": "#code-block-console"
|
|
},
|
|
{
|
|
"include": "#code-block-javascript"
|
|
},
|
|
{
|
|
"include": "#code-block-yaml"
|
|
},
|
|
{
|
|
"include": "#code-block-cmake"
|
|
},
|
|
{
|
|
"include": "#code-block-kconfig"
|
|
},
|
|
{
|
|
"include": "#code-block-ruby"
|
|
},
|
|
{
|
|
"include": "#code-block-dts"
|
|
},
|
|
{
|
|
"include": "#code-block"
|
|
},
|
|
{
|
|
"include": "#doctest-block"
|
|
},
|
|
{
|
|
"include": "#raw-html"
|
|
},
|
|
{
|
|
"include": "#block"
|
|
},
|
|
{
|
|
"include": "#literal-block"
|
|
},
|
|
{
|
|
"include": "#block-comment"
|
|
}
|
|
]
|
|
},
|
|
"body": {
|
|
"patterns": [
|
|
{
|
|
"include": "#title"
|
|
},
|
|
{
|
|
"include": "#inline-markup"
|
|
},
|
|
{
|
|
"include": "#anchor"
|
|
},
|
|
{
|
|
"include": "#line-block"
|
|
},
|
|
{
|
|
"include": "#replace-include"
|
|
},
|
|
{
|
|
"include": "#footnote"
|
|
},
|
|
{
|
|
"include": "#substitution"
|
|
},
|
|
{
|
|
"include": "#blocks"
|
|
},
|
|
{
|
|
"include": "#table"
|
|
},
|
|
{
|
|
"include": "#simple-table"
|
|
},
|
|
{
|
|
"include": "#options-list"
|
|
}
|
|
]
|
|
},
|
|
"bold": {
|
|
"begin": "(?<=[\"'(<\\[{\\s]|^)\\*{2}[^*\\s]",
|
|
"end": "\\*{2}|^\\s*$",
|
|
"name": "markup.bold"
|
|
},
|
|
"citation": {
|
|
"applyEndPatternLast": 0,
|
|
"begin": "(?<=[\"'(<\\[{\\s]|^)`[^`\\s]",
|
|
"end": "`_{0,2}|^\\s*$",
|
|
"name": "entity.name.tag"
|
|
},
|
|
"code-block": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-cmake": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(cmake)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.cmake"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.cmake"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-console": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(console|shell|bash)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.console"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.shell"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-cpp": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.cpp"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.cpp"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-dts": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(dts|DTS|devicetree)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.dts"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.dts"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-javascript": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(javascript)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.js"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.js"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-kconfig": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*([Kk]config)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.kconfig"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.kconfig"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-py": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(python)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.py"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.python"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-ruby": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(ruby)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.ruby"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.ruby"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"code-block-yaml": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+(code(?:|-block))::)\\s*(ya?ml)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"4": {
|
|
"name": "variable.parameter.codeblock.yaml"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.yaml"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"doctest": {
|
|
"begin": "^(>>>)\\s*(.*)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "keyword.control"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"include": "source.python"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"end": "^\\s*$"
|
|
},
|
|
"doctest-block": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+doctest::)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "source.python"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"domain-auto": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control.py"
|
|
},
|
|
"3": {
|
|
"patterns": [
|
|
{
|
|
"include": "source.python"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "#body"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"domain-cpp": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+c(?:pp|):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.tag"
|
|
},
|
|
"4": {
|
|
"patterns": [
|
|
{
|
|
"include": "source.cpp"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "#body"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"domain-js": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"3": {
|
|
"patterns": [
|
|
{
|
|
"include": "source.js"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"end": "^(?!\\1[\\t ]|$)",
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "#body"
|
|
}
|
|
]
|
|
},
|
|
"domain-py": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"3": {
|
|
"patterns": [
|
|
{
|
|
"include": "source.python"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "#body"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"domains": {
|
|
"patterns": [
|
|
{
|
|
"include": "#domain-cpp"
|
|
},
|
|
{
|
|
"include": "#domain-py"
|
|
},
|
|
{
|
|
"include": "#domain-auto"
|
|
},
|
|
{
|
|
"include": "#domain-js"
|
|
}
|
|
]
|
|
},
|
|
"escaped": {
|
|
"match": "\\\\.",
|
|
"name": "constant.character.escape"
|
|
},
|
|
"footnote": {
|
|
"match": "^\\s*\\.{2}\\s+\\[(?:[-.\\w]+|[#*]|#\\w+)]\\s+",
|
|
"name": "entity.name.tag"
|
|
},
|
|
"footnote-ref": {
|
|
"match": "\\[(?:[-.\\w]+|[#*])]_",
|
|
"name": "entity.name.tag"
|
|
},
|
|
"ignore": {
|
|
"patterns": [
|
|
{
|
|
"match": "'[*`]+'"
|
|
},
|
|
{
|
|
"match": "<[*`]+>"
|
|
},
|
|
{
|
|
"match": "\\{[*`]+}"
|
|
},
|
|
{
|
|
"match": "\\([*`]+\\)"
|
|
},
|
|
{
|
|
"match": "\\[[*`]+]"
|
|
},
|
|
{
|
|
"match": "\"[*`]+\""
|
|
}
|
|
]
|
|
},
|
|
"inline-markup": {
|
|
"patterns": [
|
|
{
|
|
"include": "#escaped"
|
|
},
|
|
{
|
|
"include": "#ignore"
|
|
},
|
|
{
|
|
"include": "#ref"
|
|
},
|
|
{
|
|
"include": "#literal"
|
|
},
|
|
{
|
|
"include": "#monospaced"
|
|
},
|
|
{
|
|
"include": "#citation"
|
|
},
|
|
{
|
|
"include": "#bold"
|
|
},
|
|
{
|
|
"include": "#italic"
|
|
},
|
|
{
|
|
"include": "#list"
|
|
},
|
|
{
|
|
"include": "#macro"
|
|
},
|
|
{
|
|
"include": "#reference"
|
|
},
|
|
{
|
|
"include": "#footnote-ref"
|
|
}
|
|
]
|
|
},
|
|
"italic": {
|
|
"begin": "(?<=[\"'(<\\[{\\s]|^)\\*[^*\\s]",
|
|
"end": "\\*|^\\s*$",
|
|
"name": "markup.italic"
|
|
},
|
|
"line-block": {
|
|
"match": "^\\|\\s+",
|
|
"name": "keyword.control"
|
|
},
|
|
"list": {
|
|
"match": "^\\s*(\\d+\\.|\\* -|[#A-Za-z]\\.|[CIMVXcimvx]+\\.|\\(\\d+\\)|\\d+\\)|[-*+])\\s+",
|
|
"name": "keyword.control"
|
|
},
|
|
"literal": {
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.control"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.tag"
|
|
}
|
|
},
|
|
"match": "(:\\S+:)(`.*?`\\\\?)"
|
|
},
|
|
"literal-block": {
|
|
"begin": "^(\\s*)(.*)(::)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"include": "#inline-markup"
|
|
}
|
|
]
|
|
},
|
|
"3": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"macro": {
|
|
"match": "\\|[^|]+\\|",
|
|
"name": "entity.name.tag"
|
|
},
|
|
"monospaced": {
|
|
"begin": "(?<=[\"'(<\\[{\\s]|^)``[^`\\s]",
|
|
"end": "``|^\\s*$",
|
|
"name": "string.interpolated"
|
|
},
|
|
"options-list": {
|
|
"match": "(?:(?:^|,\\s+)(?:[-+]\\w|--?[A-Za-z][-\\w]+|/\\w+)(?:[ =](?:\\w+|<[^<>]+?>))?)+(?= |\\t|$)",
|
|
"name": "variable.parameter"
|
|
},
|
|
"raw-html": {
|
|
"begin": "^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$",
|
|
"beginCaptures": {
|
|
"2": {
|
|
"name": "keyword.control"
|
|
},
|
|
"3": {
|
|
"name": "variable.parameter.html"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#block-param"
|
|
},
|
|
{
|
|
"include": "text.html.derivative"
|
|
}
|
|
],
|
|
"while": "^(?:\\1(?=\\s)|\\s*$)"
|
|
},
|
|
"ref": {
|
|
"begin": "(:ref:)`",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"end": "`|^\\s*$",
|
|
"name": "entity.name.tag",
|
|
"patterns": [
|
|
{
|
|
"match": "<.*?>",
|
|
"name": "markup.underline.link"
|
|
}
|
|
]
|
|
},
|
|
"reference": {
|
|
"match": "[-\\w]*[-A-Za-z\\d]__?\\b",
|
|
"name": "entity.name.tag"
|
|
},
|
|
"replace-include": {
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.control"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.tag"
|
|
},
|
|
"3": {
|
|
"name": "keyword.control"
|
|
}
|
|
},
|
|
"match": "^\\s*(\\.{2})\\s+(\\|[^|]+\\|)\\s+(replace::)"
|
|
},
|
|
"simple-table": {
|
|
"match": "^[=\\s]+$",
|
|
"name": "keyword.control.table"
|
|
},
|
|
"substitution": {
|
|
"match": "^\\.{2}\\s*\\|([^|]+)\\|",
|
|
"name": "entity.name.tag"
|
|
},
|
|
"table": {
|
|
"begin": "^\\s*\\+[-+=]+\\+\\s*$",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "keyword.control.table"
|
|
}
|
|
},
|
|
"end": "^(?![+|])",
|
|
"patterns": [
|
|
{
|
|
"match": "[-+=|]",
|
|
"name": "keyword.control.table"
|
|
}
|
|
]
|
|
},
|
|
"title": {
|
|
"match": "^(\\*{3,}|#{3,}|={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",
|
|
"name": "markup.heading"
|
|
}
|
|
},
|
|
"scopeName": "source.rst"
|
|
}
|