Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--languages.toml3
-rw-r--r--runtime/queries/just/highlights.scm42
-rw-r--r--runtime/queries/just/injections.scm7
-rw-r--r--runtime/queries/just/locals.scm3
-rw-r--r--runtime/queries/just/tags.scm3
-rw-r--r--runtime/queries/just/textobjects.scm8
6 files changed, 46 insertions, 20 deletions
diff --git a/languages.toml b/languages.toml
index a2843e4e2..32e40358e 100644
--- a/languages.toml
+++ b/languages.toml
@@ -3859,7 +3859,7 @@ formatter = { command = "just", args = ["--fmt", "--justfile", "-"] }
[[grammar]]
name = "just"
-source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "f749ec853adcacc5f14e9ec375f244104e033d88" }
+source = { git = "https://github.com/poliorcetics/tree-sitter-just", rev = "00859eebfb774d371af174ea1e582d46e697b469" }
[[language]]
name = "gn"
@@ -5647,4 +5647,3 @@ comment-tokens = ["REM", "::"]
[[grammar]]
name = "batch"
source = { git = "https://github.com/wharflab/tree-sitter-batch", rev = "5fc5f54267ef9a78e7a5319b80e092194252aabf" }
-
diff --git a/runtime/queries/just/highlights.scm b/runtime/queries/just/highlights.scm
index 67c88b87b..dfc3577bf 100644
--- a/runtime/queries/just/highlights.scm
+++ b/runtime/queries/just/highlights.scm
@@ -10,6 +10,8 @@
[
"alias"
+ "assert"
+ "eager"
"set"
"shell"
] @keyword
@@ -19,11 +21,6 @@
"else"
] @keyword.control.conditional
-[
- "&&"
- "||"
-] @operator
-
; Variables
(value
@@ -42,6 +39,9 @@
; Functions
+(function
+ name: (identifier) @function)
+
(recipe
name: (identifier) @function)
@@ -53,6 +53,12 @@
; Parameters
+(attribute_named_parameter
+ name: (identifier) @variable.parameter)
+
+(function_decl_parameters
+ (identifier) @variable.parameter)
+
(recipe_parameter
name: (identifier) @variable.parameter)
@@ -78,7 +84,6 @@
(shebang_line
(shebang_shell) @string.special)
-
(shell_expanded_string
[
(expansion_short_start)
@@ -90,23 +95,26 @@
; Operators
[
+ "-"
+ "-@"
+ ":"
":="
- "?"
- "=="
+ "!"
"!="
- "=~"
"!~"
+ "?"
+ "@-"
"@"
- "="
- "$"
"*"
- "+"
- "&&"
- "@-"
- "-@"
- "-"
"/"
- ":"
+ "&&"
+ "+"
+ "++"
+ "="
+ "=="
+ "=~"
+ "||"
+ "$"
] @operator
; Punctuation
diff --git a/runtime/queries/just/injections.scm b/runtime/queries/just/injections.scm
index 98bb9c437..bce491bfc 100644
--- a/runtime/queries/just/injections.scm
+++ b/runtime/queries/just/injections.scm
@@ -10,6 +10,13 @@
(_) @injection.content)
(#set! injection.language "regex"))
+; Highlight the value of attribute `[arg(pattern = "...")]` as regex
+(attribute_named_parameter
+ name: (identifier) @_name
+ value: (expression (value (string) @injection.content
+ (#set! injection.language "regex")))
+ (#match? @_name "^pattern$"))
+
; ================ Global defaults ================
; Default recipe lines to be bash, but exclude interpolation nodes
diff --git a/runtime/queries/just/locals.scm b/runtime/queries/just/locals.scm
index b0b40667d..78572b626 100644
--- a/runtime/queries/just/locals.scm
+++ b/runtime/queries/just/locals.scm
@@ -13,6 +13,9 @@
(assignment
name: (identifier) @local.definition.variable)
+(function
+ name: (identifier) @local.definition.function)
+
(mod
name: (identifier) @local.definition.namespace)
diff --git a/runtime/queries/just/tags.scm b/runtime/queries/just/tags.scm
index 53e33a65c..ceab17256 100644
--- a/runtime/queries/just/tags.scm
+++ b/runtime/queries/just/tags.scm
@@ -6,6 +6,9 @@
(assignment
name: (identifier) @definition.constant)
+(function
+ name: (identifier) @definition.function)
+
(import
(path) @definition.module)
diff --git a/runtime/queries/just/textobjects.scm b/runtime/queries/just/textobjects.scm
index b60b11e4d..bf2ca1dbc 100644
--- a/runtime/queries/just/textobjects.scm
+++ b/runtime/queries/just/textobjects.scm
@@ -3,6 +3,12 @@
(assert_parameters
((_) @parameter.inside . ","? @parameter.around)) @parameter.around
+(function
+ (expression) @function.inside) @function.around
+
+(function_decl_parameters
+ ((_) @parameter.inside . ","? @parameter.around)) @parameter.around
+
(recipe
(recipe_body) @function.inside) @function.around
@@ -13,7 +19,7 @@
(_) @parameter.inside) @parameter.around
(function_call
- (function_parameters
+ (function_call_parameters
((_) @parameter.inside . ","? @parameter.around)) @parameter.around) @function.around
(comment) @comment.around