Do not hide command name

pull/511/head
Patrick Förster 2021-02-04 19:23:43 +07:00
parent 3c49997505
commit a6b58dc2da
4 changed files with 2026 additions and 1992 deletions

@ -10,7 +10,7 @@ const sepBy = (rule, sep) => optional(sepBy1(rule, sep));
module.exports = grammar({ module.exports = grammar({
name: 'latex', name: 'latex',
extras: $ => [$._whitespace, $._comment], extras: $ => [$._whitespace, $._comment],
word: $ => $._generic_command_name, word: $ => $.generic_command_name,
rules: { rules: {
document: $ => repeat($._content), document: $ => repeat($._content),
@ -461,7 +461,7 @@ module.exports = grammar({
), ),
field('argc', optional(seq('[', /\d/, ']'))), field('argc', optional(seq('[', /\d/, ']'))),
'{', '{',
field('name', $._generic_command_name), field('name', $.generic_command_name),
'}', '}',
field('implementation', $.brace_group) field('implementation', $.brace_group)
), ),
@ -473,7 +473,7 @@ module.exports = grammar({
token(choice('\\DeclareMathOperator', '\\DeclareMathOperator*')) token(choice('\\DeclareMathOperator', '\\DeclareMathOperator*'))
), ),
'{', '{',
field('name', $._generic_command_name), field('name', $.generic_command_name),
'}', '}',
field('implementation', $.brace_group) field('implementation', $.brace_group)
), ),
@ -536,7 +536,7 @@ module.exports = grammar({
generic_command: $ => generic_command: $ =>
prec.right( prec.right(
seq( seq(
field('name', $._generic_command_name), field('name', $.generic_command_name),
field( field(
'arg', 'arg',
repeat(choice($.brace_group, $.bracket_group, $.paren_group)) repeat(choice($.brace_group, $.bracket_group, $.paren_group))
@ -544,6 +544,6 @@ module.exports = grammar({
) )
), ),
_generic_command_name: $ => /\\([^\r\n]|[@a-zA-Z]+\*?)?/, generic_command_name: $ => /\\([^\r\n]|[@a-zA-Z]+\*?)?/,
}, },
}); });

10
src/grammar.json vendored

@ -1,6 +1,6 @@
{ {
"name": "latex", "name": "latex",
"word": "_generic_command_name", "word": "generic_command_name",
"rules": { "rules": {
"document": { "document": {
"type": "REPEAT", "type": "REPEAT",
@ -2491,7 +2491,7 @@
"name": "name", "name": "name",
"content": { "content": {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_generic_command_name" "name": "generic_command_name"
} }
}, },
{ {
@ -2540,7 +2540,7 @@
"name": "name", "name": "name",
"content": { "content": {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_generic_command_name" "name": "generic_command_name"
} }
}, },
{ {
@ -3229,7 +3229,7 @@
"name": "name", "name": "name",
"content": { "content": {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_generic_command_name" "name": "generic_command_name"
} }
}, },
{ {
@ -3259,7 +3259,7 @@
] ]
} }
}, },
"_generic_command_name": { "generic_command_name": {
"type": "PATTERN", "type": "PATTERN",
"value": "\\\\([^\\r\\n]|[@a-zA-Z]+\\*?)?" "value": "\\\\([^\\r\\n]|[@a-zA-Z]+\\*?)?"
} }

@ -788,6 +788,16 @@
"named": true "named": true
} }
] ]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "generic_command_name",
"named": true
}
]
} }
} }
}, },
@ -1497,6 +1507,16 @@
"named": true "named": true
} }
] ]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "generic_command_name",
"named": true
}
]
} }
} }
}, },
@ -2143,6 +2163,16 @@
"named": true "named": true
} }
] ]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "generic_command_name",
"named": true
}
]
} }
} }
}, },
@ -3583,6 +3613,10 @@
"type": "]", "type": "]",
"named": false "named": false
}, },
{
"type": "generic_command_name",
"named": true
},
{ {
"type": "param", "type": "param",
"named": true "named": true

3964
src/parser.c vendored

File diff suppressed because it is too large Load Diff