aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/julia/highlights.scm42
-rw-r--r--runtime/queries/julia/locals.scm3
3 files changed, 39 insertions, 8 deletions
diff --git a/languages.toml b/languages.toml
index 061d1414..41558e10 100644
--- a/languages.toml
+++ b/languages.toml
@@ -604,7 +604,7 @@ indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "julia"
-source = { git = "https://github.com/tree-sitter/tree-sitter-julia", rev = "fc60b7cce87da7a1b7f8cb0f9371c3dc8b684500" }
+source = { git = "https://github.com/tree-sitter/tree-sitter-julia", rev = "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" }
[[language]]
name = "java"
diff --git a/runtime/queries/julia/highlights.scm b/runtime/queries/julia/highlights.scm
index 9271615f..90baee21 100644
--- a/runtime/queries/julia/highlights.scm
+++ b/runtime/queries/julia/highlights.scm
@@ -7,13 +7,22 @@
(block_comment)
] @comment
-(((identifier) @constant.builtin) (match? @constant.builtin "^(nothing|missing|Inf|NaN)$"))
-(((identifier) @constant.builtin.boolean) (#eq? @constant.builtin.boolean "true"))
-(((identifier) @constant.builtin.boolean) (#eq? @constant.builtin.boolean "false"))
+(
+ ((identifier) @constant.builtin)
+ (#match? @constant.builtin "^(nothing|missing|undef)$"))
+
+[
+ (true)
+ (false)
+] @constant.builtin.boolean
(integer_literal) @constant.numeric.integer
(float_literal) @constant.numeric.float
+(
+ ((identifier) @constant.numeric.float)
+ (#match? @constant.numeric.float "^((Inf|NaN)(16|32|64)?)$"))
+
(character_literal) @constant.character
(escape_sequence) @constant.character.escape
@@ -66,7 +75,7 @@
(type_parameter_list
(identifier) @type)
-(constrained_parameter
+(constrained_type_parameter
(identifier) @type)
(subtype_clause
@@ -81,13 +90,32 @@
(type_argument_list
(identifier) @type)
+(where_clause
+ (identifier) @type)
+
; -------------------
; Function definition
; -------------------
(
(function_definition
- name: (identifier) @function)
+ name: [
+ (identifier) @function
+ (scoped_identifier
+ (identifier) @namespace
+ (identifier) @function)
+ ])
+ ; prevent constructors (PascalCase) to be highlighted as functions
+ (#match? @function "^[^A-Z]"))
+
+(
+ (short_function_definition
+ name: [
+ (identifier) @function
+ (scoped_identifier
+ (identifier) @namespace
+ (identifier) @function)
+ ])
; prevent constructors (PascalCase) to be highlighted as functions
(#match? @function "^[^A-Z]"))
@@ -101,7 +129,7 @@
(optional_parameter
. (identifier) @variable.parameter)
-(spread_parameter
+(slurp_parameter
(identifier) @variable.parameter)
(function_expression
@@ -185,6 +213,7 @@
[
"abstract"
+ "baremodule"
"begin"
"const"
"do"
@@ -198,6 +227,7 @@
"return"
"struct"
"type"
+ "where"
] @keyword
; TODO: fix this
diff --git a/runtime/queries/julia/locals.scm b/runtime/queries/julia/locals.scm
index 07b96f2c..70b31e50 100644
--- a/runtime/queries/julia/locals.scm
+++ b/runtime/queries/julia/locals.scm
@@ -21,7 +21,7 @@
(optional_parameter .
(identifier) @local.definition)
-(spread_parameter
+(slurp_parameter
(identifier) @local.definition)
(function_expression
@@ -33,6 +33,7 @@
[
(function_definition)
+ (short_function_definition)
(macro_definition)
] @local.scope