1
0
Fork 0
mirror of https://github.com/pnx/tree-sitter-dotenv synced 2026-08-26 04:08:11 +02:00

feat: make export keyword anonymous.

"export" was a named node despite always having fixed spelling, with
no variation to expose to queries. Anonymous string literals are
already fully queryable ("export" @keyword), so the named production
added a redundant node in the tree for no benefit.

Keeps the alias("export", $.identifier) in the key field, since that
usage is a genuine reclassification (export as an identifier, not the
keyword) and still needs to be named.

Updated corpus tests to use :cst format where "export" and "="
presence needs to be asserted explicitly.
This commit is contained in:
Henrik Hautakoski 2026-07-16 10:47:32 +02:00
parent 65e3328e01
commit 0cc23a517e
6 changed files with 236 additions and 250 deletions

View file

@ -24,17 +24,17 @@ module.exports = grammar({
seq(
field("key", choice(
$.identifier,
alias($.export, $.identifier),
alias("export", $.identifier),
)),
"=",
optional(field("value", $._value)),
$._end_of_assignment,
),
prec(1, seq(
$.export,
"export",
field("key", choice(
$.identifier,
alias($.export, $.identifier),
alias("export", $.identifier),
)),
"=",
optional(field("value", $._value)),
@ -43,7 +43,6 @@ module.exports = grammar({
),
comment: _ => /\#[^\n]*/,
export: _ => token(prec(1, 'export')),
identifier: _ => /[A-Za-z_][A-Za-z0-9_]*/,
variable: $ => seq('$', choice(