Allow discarding module imports with underscore

Gleam 0.23.3 allows discarding imported modules with the discard syntax.
This needs a small change in tree-sitter-gleam to accept discard nodes
in the import's 'as' field.
pull/844/head
Michael Davis 2023-11-07 13:05:05 +07:00
parent 11b843da16
commit ae4b58b85f
No known key found for this signature in database
3 changed files with 22 additions and 1 deletions

@ -80,7 +80,7 @@ module.exports = grammar({
"import", "import",
field("module", $.module), field("module", $.module),
optional(seq(".", field("imports", $.unqualified_imports))), optional(seq(".", field("imports", $.unqualified_imports))),
optional(seq("as", field("alias", $.identifier))) optional(seq("as", field("alias", choice($.identifier, $.discard))))
), ),
module: ($) => seq($._name, repeat(seq("/", $._name))), module: ($) => seq($._name, repeat(seq("/", $._name))),
unqualified_imports: ($) => unqualified_imports: ($) =>

@ -108,3 +108,19 @@ import animal.{type Cat as Kitty}
(unqualified_import (unqualified_import
name: (type_identifier) name: (type_identifier)
alias: (type_identifier))))) alias: (type_identifier)))))
================================================================================
Discard module imports
================================================================================
import wibble.{wobble} as _
--------------------------------------------------------------------------------
(source_file
(import
(module)
(unqualified_imports
(unqualified_import
(identifier)))
(discard)))

@ -11,6 +11,11 @@ import animal/cat.{Cat, type Cat}
// ^ keyword // ^ keyword
// ^ type // ^ type
import wibble.{wobble} as _
// ^ module
// ^ function
// ^ comment.unused
pub fn main() { pub fn main() {
io.println("hello world") io.println("hello world")
// <- module // <- module