just: Use updated grammar with recent language changes and correct highlighting (#11380)

This commit is contained in:
Poliorcetics 2024-08-09 17:26:48 +02:00 committed by GitHub
parent 8851031449
commit 68f495b023
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 67 additions and 81 deletions

View file

@ -3105,7 +3105,7 @@ indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "just"
source = { git = "https://github.com/IndianBoy42/tree-sitter-just", rev = "379fbe36d1e441bc9414ea050ad0c85c9d6935ea" }
source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "f58a8fd869035ac4653081401e6c2030251240ab" }
[[language]]
name = "gn"

View file

@ -1,5 +1,3 @@
; From <https://github.com/IndianBoy42/tree-sitter-just/blob/6c2f018ab1d90946c0ce029bb2f7d57f56895dff/queries-flavored/helix/folds.scm>
; Define collapse points
([

View file

@ -1,5 +1,3 @@
; From <https://github.com/IndianBoy42/tree-sitter-just/blob/6c2f018ab1d90946c0ce029bb2f7d57f56895dff/queries-flavored/helix/highlights.scm>
; This file specifies how matched syntax patterns should be highlighted
[
@ -26,35 +24,57 @@
(identifier) @variable)
(alias
left: (identifier) @variable)
name: (identifier) @variable)
(assignment
left: (identifier) @variable)
name: (identifier) @variable)
(shell_variable_name) @variable
; Functions
(recipe_header
(recipe
name: (identifier) @function)
(dependency
name: (identifier) @function)
(dependency_expression
name: (identifier) @function)
(recipe_dependency
name: (identifier) @function.call)
(function_call
name: (identifier) @function)
name: (identifier) @function.builtin)
; Parameters
(parameter
(recipe_parameter
name: (identifier) @variable.parameter)
; Namespaces
(module
(mod
name: (identifier) @namespace)
; Paths
(mod
(path) @string.special.path)
(import
(path) @string.special.path)
; Shebangs
(shebang_line) @keyword.directive
(shebang_line
(shebang_shell) @string.special)
(shell_expanded_string
[
(expansion_short_start)
(expansion_long_start)
(expansion_long_middle)
(expansion_long_end)
] @punctuation.special)
; Operators
[
@ -95,55 +115,31 @@
; Literals
(boolean) @constant.builtin.boolean
; Booleans are not allowed anywhere except in settings
(setting
(boolean) @constant.builtin.boolean)
[
(string)
(external_command)
] @string
(escape_sequence) @constant.character.escape
[
(escape_sequence)
(escape_variable_end)
] @constant.character.escape
; Comments
(comment) @comment.line
(shebang) @keyword.directive
; highlight known settings (filtering does not always work)
; highlight known settings
(setting
left: (identifier) @keyword
(#any-of? @keyword
"allow-duplicate-recipes"
"dotenv-filename"
"dotenv-load"
"dotenv-path"
"export"
"fallback"
"ignore-comments"
"positional-arguments"
"shell"
"tempdi"
"windows-powershell"
"windows-shell"))
name: (_) @keyword.function)
; highlight known attributes (filtering does not always work)
; highlight known attributes
(attribute
(identifier) @attribute
(#any-of? @attribute
"private"
"allow-duplicate-recipes"
"dotenv-filename"
"dotenv-load"
"dotenv-path"
"export"
"fallback"
"ignore-comments"
"positional-arguments"
"shell"
"tempdi"
"windows-powershell"
"windows-shell"))
name: (identifier) @attribute)
; Numbers are part of the syntax tree, even if disallowed
(numeric_error) @error

View file

@ -1,5 +1,3 @@
; From <https://github.com/IndianBoy42/tree-sitter-just/blob/6c2f018ab1d90946c0ce029bb2f7d57f56895dff/queries-flavored/helix/indents.scm>
;
; This query specifies how to auto-indent logical blocks.
;
; Better documentation with diagrams is in https://docs.helix-editor.com/guides/indent.html

View file

@ -1,5 +1,3 @@
; From <https://github.com/IndianBoy42/tree-sitter-just/blob/6c2f018ab1d90946c0ce029bb2f7d57f56895dff/queries-flavored/helix/injections.scm>
;
; Specify nested languages that live within a `justfile`
; ================ Always applicable ================
@ -8,7 +6,7 @@
(#set! injection.language "comment"))
; Highlight the RHS of `=~` as regex
((regex_literal
((regex
(_) @injection.content)
(#set! injection.language "regex"))
@ -21,7 +19,7 @@
(#set! injection.include-children)) @injection.content
(external_command
(command_body) @injection.content
(content) @injection.content
(#set! injection.language "bash"))
; ================ Global language specified ================
@ -43,7 +41,7 @@
; they default to bash. Limitations...
; See https://github.com/tree-sitter/tree-sitter/issues/880 for more on that.
(source_file
(file
(setting "shell" ":=" "[" (string) @_langstr
(#match? @_langstr ".*(powershell|pwsh|cmd).*")
(#set! injection.language "powershell"))
@ -57,10 +55,10 @@
(expression
(value
(external_command
(command_body) @injection.content))))
(content) @injection.content))))
])
(source_file
(file
(setting "shell" ":=" "[" (string) @injection.language
(#not-match? @injection.language ".*(powershell|pwsh|cmd).*"))
[
@ -73,12 +71,12 @@
(expression
(value
(external_command
(command_body) @injection.content))))
(content) @injection.content))))
])
; ================ Recipe language specified - Helix only ================
; Set highlighting for recipes that specify a language using builtin shebang matching
(recipe_body
(shebang) @injection.shebang
(shebang_line) @injection.shebang
(#set! injection.include-children)) @injection.content

View file

@ -1,5 +1,3 @@
; From <https://github.com/IndianBoy42/tree-sitter-just/blob/6c2f018ab1d90946c0ce029bb2f7d57f56895dff/queries-flavored/helix/locals.scm>
;
; This file tells us about the scope of variables so e.g. local
; variables override global functions with the same name
@ -10,32 +8,29 @@
; Definitions
(alias
left: (identifier) @local.definition)
name: (identifier) @local.definition)
(assignment
left: (identifier) @local.definition)
(module
name: (identifier) @local.definition)
(parameter
(mod
name: (identifier) @local.definition)
(recipe_header
(recipe_parameter
name: (identifier) @local.definition)
(recipe
name: (identifier) @local.definition)
; References
(alias
right: (identifier) @local.reference)
name: (identifier) @local.reference)
(function_call
name: (identifier) @local.reference)
(dependency
name: (identifier) @local.reference)
(dependency_expression
(recipe_dependency
name: (identifier) @local.reference)
(value

View file

@ -1,18 +1,19 @@
; From <https://github.com/IndianBoy42/tree-sitter-just/blob/6c2f018ab1d90946c0ce029bb2f7d57f56895dff/queries-flavored/helix/textobjects.scm>
;
; Specify how to navigate around logical blocks in code
(assert_parameters
((_) @parameter.inside . ","? @parameter.around)) @parameter.around
(recipe
(recipe_body) @function.inside) @function.around
(parameters
(recipe_parameters
((_) @parameter.inside . ","? @parameter.around)) @parameter.around
(dependency_expression
(recipe_dependency
(_) @parameter.inside) @parameter.around
(function_call
arguments: (sequence
(expression) @parameter.inside) @parameter.around) @function.around
(function_parameters
((_) @parameter.inside . ","? @parameter.around)) @parameter.around) @function.around
(comment) @comment.around