{
	"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"
				}
			]
		}
	}
}