Unnamed repository; edit this file 'description' to name the repository.
update Gleam grammar and queries
With respect to the queries: The locals scope for functions was not large enough, so a function's parameter could outlive the function body. To fix it, we just widen the scope to the `function` node. See also https://github.com/gleam-lang/tree-sitter-gleam/issues/25 With respect to the parser: An external scanner has been added that fixes the parsing of strings. Previously, a comment inside a string would act like a comment rather than string contents. See also https://github.com/gleam-lang/tree-sitter-gleam/issues/14#issuecomment-1129263640 A new constructor node has been added as well which makes type highlighting more fine grained. See also https://github.com/gleam-lang/tree-sitter-gleam/pull/29
Michael Davis 2022-05-25
parent 10463fe · commit 45dd540
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/gleam/highlights.scm5
-rw-r--r--runtime/queries/gleam/locals.scm2
3 files changed, 7 insertions, 2 deletions
diff --git a/languages.toml b/languages.toml
index 16e78a9b..b1984fb5 100644
--- a/languages.toml
+++ b/languages.toml
@@ -1127,7 +1127,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "gleam"
-source = { git = "https://github.com/gleam-lang/tree-sitter-gleam", rev = "7159ce961592192b0e7cdf88782cda0fdf41a4cb" }
+source = { git = "https://github.com/gleam-lang/tree-sitter-gleam", rev = "d7861b2a4b4d594c58bb4f1be5f1f4ee4c67e5c3" }
[[language]]
name = "ron"
diff --git a/runtime/queries/gleam/highlights.scm b/runtime/queries/gleam/highlights.scm
index ed3fceca..8cff6b51 100644
--- a/runtime/queries/gleam/highlights.scm
+++ b/runtime/queries/gleam/highlights.scm
@@ -12,6 +12,8 @@
(import alias: (identifier) @namespace)
(remote_type_identifier
module: (identifier) @namespace)
+(remote_constructor_name
+ module: (identifier) @namespace)
((field_access
record: (identifier) @namespace
field: (label) @function)
@@ -45,6 +47,9 @@
(remote_type_identifier) @type
(type_identifier) @type
+; Data constructors
+(constructor_name) @constructor
+
; Literals
(string) @string
(bit_string_segment_option) @function.builtin
diff --git a/runtime/queries/gleam/locals.scm b/runtime/queries/gleam/locals.scm
index bd5903e5..49300573 100644
--- a/runtime/queries/gleam/locals.scm
+++ b/runtime/queries/gleam/locals.scm
@@ -1,5 +1,5 @@
; Scopes
-(function_body) @local.scope
+(function) @local.scope
(case_clause) @local.scope