{ "information_for_contributors": [ "This file has been converted from https://github.com/trond-snekvik/vscode-rst/blob/master/syntaxes/rst.tmLanguage.json", "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], "version": "https://github.com/trond-snekvik/vscode-rst/commit/7f2d6bb4e20642b60f2979afcb594cfe4b48117a", "scopeName": "source.rst", "patterns": [ { "include": "#body" } ], "repository": { "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" } ] }, "title": { "match": "^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$", "name": "markup.heading" }, "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" } ] }, "ignore": { "patterns": [ { "match": "'[`*]+'" }, { "match": "<[`*]+>" }, { "match": "{[`*]+}" }, { "match": "\\([`*]+\\)" }, { "match": "\\[[`*]+\\]" }, { "match": "\"[`*]+\"" } ] }, "table": { "begin": "^\\s*\\+[=+-]+\\+\\s*$", "end": "^(?![+|])", "beginCaptures": { "0": { "name": "keyword.control.table" } }, "patterns": [ { "match": "[=+|-]", "name": "keyword.control.table" } ] }, "simple-table": { "match": "^[=\\s]+$", "name": "keyword.control.table" }, "ref": { "begin": "(:ref:)`", "end": "`|^\\s*$", "name": "entity.name.tag", "beginCaptures": { "1": { "name": "keyword.control" } }, "patterns": [ { "match": "<.*?>", "name": "markup.underline.link" } ] }, "reference": { "match": "[\\w-]*[a-zA-Z\\d-]__?\\b", "name": "entity.name.tag" }, "macro": { "match": "\\|[^\\|]+\\|", "name": "entity.name.tag" }, "literal": { "match": "(:\\S+:)(`.*?`\\\\?)", "captures": { "1": { "name": "keyword.control" }, "2": { "name": "entity.name.tag" } } }, "monospaced": { "begin": "(?<=[\\s\"'(\\[{<]|^)``[^\\s`]", "end": "``|^\\s*$", "name": "string.interpolated" }, "citation": { "begin": "(?<=[\\s\"'(\\[{<]|^)`[^\\s`]", "end": "`_{,2}|^\\s*$", "name": "entity.name.tag", "applyEndPatternLast": 0 }, "bold": { "begin": "(?<=[\\s\"'(\\[{<]|^)\\*{2}[^\\s*]", "end": "\\*{2}|^\\s*$", "name": "markup.bold" }, "italic": { "begin": "(?<=[\\s\"'(\\[{<]|^)\\*[^\\s*]", "end": "\\*|^\\s*$", "name": "markup.italic" }, "escaped": { "match": "\\\\.", "name": "constant.character.escape" }, "list": { "match": "^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+", "name": "keyword.control" }, "line-block": { "match": "^\\|\\s+", "name": "keyword.control" }, "raw-html": { "begin": "^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "3": { "name": "variable.parameter.html" } }, "patterns": [ { "include": "#block-param" }, { "include": "text.html.derivative" } ] }, "anchor": { "match": "^\\.{2}\\s+(_[^:]+:)\\s*", "name": "entity.name.tag.anchor" }, "replace-include": { "match": "^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)", "captures": { "1": { "name": "keyword.control" }, "2": { "name": "entity.name.tag" }, "3": { "name": "keyword.control" } } }, "footnote": { "match": "^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+", "name": "entity.name.tag" }, "footnote-ref": { "match": "\\[(?:[\\w\\.-]+|[#*])\\]_", "name": "entity.name.tag" }, "substitution": { "match": "^\\.{2}\\s*\\|([^|]+)\\|", "name": "entity.name.tag" }, "options-list": { "match": "(?:(?:^|,\\s+)(?:[-+]\\w|--?[a-zA-Z][\\w-]+|/\\w+)(?:[ =](?:\\w+|<[^<>]+?>))?)+(?= |\\t|$)", "name": "variable.parameter" }, "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" } ] }, "block-comment": { "begin": "^(\\s*)\\.{2}(\\s+|$)", "end": "^(?=\\S)|^\\s*$", "name": "comment.block", "patterns": [ { "begin": "^\\s{3,}(?=\\S)", "while": "^\\s{3}.*|^\\s*$", "name": "comment.block" } ] }, "literal-block": { "begin": "^(\\s*)(.*)(::)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "patterns": [ { "include": "#inline-markup" } ] }, "3": { "name": "keyword.control" } } }, "block": { "begin": "^(\\s*)(\\.{2}\\s+\\S+::)(.*)", "end": "^(?!\\1\\s|\\s*$)", "beginCaptures": { "2": { "name": "keyword.control" }, "3": { "name": "variable" } }, "patterns": [ { "include": "#block-param" }, { "include": "#body" } ] }, "block-param": { "patterns": [ { "match": "(:param\\s+(.+?):)(?:\\s|$)", "captures": { "1": { "name": "keyword.control" }, "2": { "name": "variable.parameter" } } }, { "match": "(:.+?:)(?:$|\\s+(.*))", "captures": { "1": { "name": "keyword.control" }, "2": { "patterns": [ { "match": "\\b(0x[a-fA-F\\d]+|\\d+)\\b", "name": "constant.numeric" }, { "include": "#inline-markup" } ] } } } ] }, "domains": { "patterns": [ { "include": "#domain-cpp" }, { "include": "#domain-py" }, { "include": "#domain-auto" }, { "include": "#domain-js" } ] }, "domain-cpp": { "begin": "^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "3": { "name": "entity.name.tag" }, "4": { "patterns": [ { "include": "source.cpp" } ] } }, "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*(.*)", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "3": { "patterns": [ { "include": "source.python" } ] } }, "patterns": [ { "include": "#block-param" }, { "include": "#body" } ] }, "domain-auto": { "begin": "^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control.py" }, "3": { "patterns": [ { "include": "source.python" } ] } }, "patterns": [ { "include": "#block-param" }, { "include": "#body" } ] }, "domain-js": { "begin": "^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)", "end": "^(?!\\1[ \\t]|$)", "beginCaptures": { "2": { "name": "keyword.control" }, "3": { "patterns": [ { "include": "source.js" } ] } }, "patterns": [ { "include": "#block-param" }, { "include": "#body" } ] }, "doctest": { "begin": "^(>>>)\\s*(.*)", "end": "^\\s*$", "beginCaptures": { "1": { "name": "keyword.control" }, "2": { "patterns": [ { "include": "source.python" } ] } } }, "code-block-cpp": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.cpp" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.cpp" } ] }, "code-block-console": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.console" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.shell" } ] }, "code-block-py": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.py" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.python" } ] }, "code-block-javascript": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.js" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.js" } ] }, "code-block-yaml": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.yaml" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.yaml" } ] }, "code-block-cmake": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.cmake" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.cmake" } ] }, "code-block-kconfig": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.kconfig" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.kconfig" } ] }, "code-block-ruby": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.ruby" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.ruby" } ] }, "code-block-dts": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" }, "4": { "name": "variable.parameter.codeblock.dts" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.dts" } ] }, "code-block": { "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" } }, "patterns": [ { "include": "#block-param" } ] }, "doctest-block": { "begin": "^(\\s*)(\\.{2}\\s+doctest::)\\s*$", "while": "^\\1(?=\\s)|^\\s*$", "beginCaptures": { "2": { "name": "keyword.control" } }, "patterns": [ { "include": "#block-param" }, { "include": "source.python" } ] } } }