{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "vimdoc",
"rules": {
"help_file": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_blank"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "modeline"
}
}
]
},
"_uppercase_char": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[A-Z0-9]"
}
}
},
"_atom": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "word"
},
{
"type": "SYMBOL",
"name": "_atom_common"
}
]
},
"word": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[^.,(\\[\\n\\t ]+"
}
}
},
{
"type": "SYMBOL",
"name": "_word_common"
}
]
},
"_atom_noli": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "word_noli"
},
"named": true,
"value": "word"
},
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "<[-a-zA-Z0-9_]+>"
},
{
"type": "PATTERN",
"value": "<[SCMAD]-.>"
},
{
"type": "PATTERN",
"value": "CTRL-."
},
{
"type": "PATTERN",
"value": "CTRL-SHIFT-."
},
{
"type": "PATTERN",
"value": "CTRL-(Break|PageUp|PageDown|Insert|Del)"
},
{
"type": "STRING",
"value": "CTRL-{char}"
},
{
"type": "PATTERN",
"value": "META-."
},
{
"type": "PATTERN",
"value": "ALT-."
}
]
}
},
"named": true,
"value": "keycode"
},
{
"type": "SYMBOL",
"name": "_atom_common"
}
]
},
"word_noli": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "(([^-•\\n\\t ])|([^0-9\\n\\t ][^.\\n\\t ]))[^.(\\[\\n\\t ]*"
}
}
},
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[-•][^\\n\\t ]+"
}
}
},
{
"type": "SYMBOL",
"name": "_word_common"
}
]
},
"_atom_common": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "SYMBOL",
"name": "url"
},
{
"type": "SYMBOL",
"name": "optionlink"
},
{
"type": "SYMBOL",
"name": "taglink"
},
{
"type": "SYMBOL",
"name": "codespan"
},
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "SYMBOL",
"name": "keycode"
},
{
"type": "SYMBOL",
"name": "note"
}
]
},
"_not_tag": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^*\\n\\t ]+"
}
}
},
"named": false,
"value": "word"
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\*[^\\n\\t ]+"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_word_common": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_not_tag"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^`\\n\\t]+"
}
}
},
"named": false,
"value": "word"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-z][a-z]+"
}
},
"named": false,
"value": "word"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[^'\\n\\t ]"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-z]*[^'a-z\\n\\t ][a-z]*"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "'"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[^'\\n\\t ]"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "'"
}
}
]
},
{
"type": "PATTERN",
"value": "\\|\\|+"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "'|'"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[^}\\n\\t ]+"
}
},
"named": false,
"value": "word"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "{}"
},
{
"type": "PATTERN",
"value": "\\{\\{+[0-9]*"
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "]"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "."
}
]
},
"note": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "Note:"
},
{
"type": "STRING",
"value": "NOTE:"
},
{
"type": "STRING",
"value": "Notes:"
},
{
"type": "STRING",
"value": "Warning:"
},
{
"type": "STRING",
"value": "WARNING:"
},
{
"type": "STRING",
"value": "Deprecated"
},
{
"type": "STRING",
"value": "DEPRECATED:"
}
]
},
"keycode": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "<[-a-zA-Z0-9_]+>"
},
{
"type": "PATTERN",
"value": "<[SCMAD]-.>"
},
{
"type": "PATTERN",
"value": "CTRL-."
},
{
"type": "PATTERN",
"value": "CTRL-SHIFT-."
},
{
"type": "PATTERN",
"value": "CTRL-(Break|PageUp|PageDown|Insert|Del)"
},
{
"type": "STRING",
"value": "CTRL-{char}"
},
{
"type": "PATTERN",
"value": "META-."
},
{
"type": "PATTERN",
"value": "ALT-."
}
]
},
"uppercase_name": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[A-Z0-9.()][-A-Z0-9.()_]+"
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[A-Z0-9.()][-A-Z0-9.()_]+"
},
{
"type": "SYMBOL",
"name": "_uppercase_char"
}
]
}
}
]
},
"_uppercase_words": {
"type": "PREC_LEFT",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[A-Z0-9.()][-A-Z0-9.()_]+"
}
},
"named": true,
"value": "word"
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[A-Z0-9.()][-A-Z0-9.()_]+"
},
{
"type": "SYMBOL",
"name": "_uppercase_char"
}
]
}
},
"named": true,
"value": "word"
}
]
}
},
"block": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_line_h"
},
"named": true,
"value": "line"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_line_any"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "line_li"
}
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_line_any"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "line_li"
}
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_line_any"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "line_li"
}
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_line_any"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "line_li"
}
}
]
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "<"
}
},
{
"type": "SYMBOL",
"name": "_blank"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_blank"
}
}
]
},
"_line_any": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "line"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_line_cb"
},
"named": true,
"value": "line"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_line_h"
},
"named": true,
"value": "line"
}
]
}
]
},
"_line_h": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "h1"
},
{
"type": "SYMBOL",
"name": "h2"
},
{
"type": "PREC_DYNAMIC",
"value": 2,
"content": {
"type": "SYMBOL",
"name": "h3"
}
}
]
},
"codeblock": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ">"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-z0-9]+\\n"
}
},
"named": true,
"value": "language"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\n"
}
}
]
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "line_code"
},
"named": true,
"value": "line"
}
},
"named": true,
"value": "code"
}
]
}
},
"_blank": {
"type": "FIELD",
"name": "blank",
"content": {
"type": "PATTERN",
"value": "\\n"
}
},
"line": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "column_heading"
},
{
"type": "SYMBOL",
"name": "_line_noli"
}
]
},
"line_li": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "<"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "([-•]|([0-9]{1,3}\\.))[ ]+"
},
"named": true,
"value": "prefix"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
},
{
"type": "PATTERN",
"value": "\\n"
}
]
},
"named": true,
"value": "line"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
},
"named": true,
"value": "line"
},
{
"type": "SYMBOL",
"name": "codeblock"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_line_noli"
},
"named": true,
"value": "line"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "<([\\t ]*\\n)?[\\t ]+"
}
}
]
}
}
]
}
},
"line_code": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\n"
},
{
"type": "PATTERN",
"value": "[\\t ]+[^\\n]+\\n"
}
]
},
"_line_noli": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atom_noli"
},
{
"type": "SYMBOL",
"name": "_uppercase_words"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
},
{
"type": "PATTERN",
"value": "\\n"
}
]
},
{
"type": "SYMBOL",
"name": "_line_cb"
}
]
},
"_line_cb": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atom_noli"
},
{
"type": "SYMBOL",
"name": "_uppercase_words"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "codeblock"
}
]
},
"modeline": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "vim:[^\\n]+\\n"
}
}
},
"column_heading": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_column_heading"
},
"named": true,
"value": "heading"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "~"
},
"named": true,
"value": "delimiter"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\n"
}
}
]
},
"_column_heading": {
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atom_noli"
},
{
"type": "SYMBOL",
"name": "_uppercase_words"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
}
]
}
},
"h1": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "============+[\\t ]*\\n"
}
},
"named": true,
"value": "delimiter"
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
},
"named": true,
"value": "heading"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\n"
}
]
}
},
"h2": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "------------+[\\t ]*\\n"
}
},
"named": true,
"value": "delimiter"
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
},
"named": true,
"value": "heading"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\n"
}
]
}
},
"h3": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "uppercase_name"
},
"named": true,
"value": "heading"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tag"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_not_tag"
},
"named": true,
"value": "word"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_atom"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\n"
}
]
},
"tag": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "FIELD",
"name": "text",
"content": {
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^*\\n\\t ]+"
}
}
},
"named": true,
"value": "word"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "*"
}
}
]
},
"url_word": {
"type": "PATTERN",
"value": "https?:\\/\\/[^\\n\\t\\] ]*[^\\n\\t )\\].,:]"
},
"url": {
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "text",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "url_word"
},
"named": true,
"value": "word"
}
}
]
},
"optionlink": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "FIELD",
"name": "text",
"content": {
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-z][a-z]+"
}
},
"named": true,
"value": "word"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "'"
}
}
]
},
"taglink": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "text",
"content": {
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^|\\n\\t ]+"
}
}
},
"named": true,
"value": "word"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "|"
}
}
]
},
"codespan": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "FIELD",
"name": "text",
"content": {
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^`\\n\\t]+"
}
}
},
"named": true,
"value": "word"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "`"
}
}
]
},
"argument": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "text",
"content": {
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[^}\\n\\t ]+"
}
},
"named": true,
"value": "word"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "}"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "?"
}
},
{
"type": "BLANK"
}
]
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "[\\t ]"
}
],
"conflicts": [
[
"_line_noli",
"_line_cb",
"_column_heading"
],
[
"_line_any",
"_line_noli"
],
[
"_column_heading"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [],
"reserved": {}
}