Julia queries: prevent constructors to be highlighted as functions
Also improves the captures of the remaining identifiers.
This commit is contained in:
parent
5806db1e5c
commit
26b2f0a1b5
1 changed files with 37 additions and 19 deletions
|
@ -85,8 +85,11 @@
|
|||
; Function definition
|
||||
; -------------------
|
||||
|
||||
(function_definition
|
||||
name: (identifier) @function)
|
||||
(
|
||||
(function_definition
|
||||
name: (identifier) @function)
|
||||
; prevent constructors (PascalCase) to be highlighted as functions
|
||||
(#match? @function "^[^A-Z]"))
|
||||
|
||||
(parameter_list
|
||||
(identifier) @variable.parameter)
|
||||
|
@ -108,17 +111,26 @@
|
|||
; Functions calls
|
||||
; ---------------
|
||||
|
||||
(call_expression
|
||||
(identifier) @function)
|
||||
(
|
||||
(call_expression
|
||||
(identifier) @function)
|
||||
; prevent constructors (PascalCase) to be highlighted as functions
|
||||
(#match? @function "^[^A-Z]"))
|
||||
|
||||
(broadcast_call_expression
|
||||
(identifier) @function)
|
||||
(
|
||||
(broadcast_call_expression
|
||||
(identifier) @function)
|
||||
(#match? @function "^[^A-Z]"))
|
||||
|
||||
(call_expression
|
||||
(field_expression (identifier) @function .))
|
||||
(
|
||||
(call_expression
|
||||
(field_expression (identifier) @function .))
|
||||
(#match? @function "^[^A-Z]"))
|
||||
|
||||
(broadcast_call_expression
|
||||
(field_expression (identifier) @function .))
|
||||
(
|
||||
(broadcast_call_expression
|
||||
(field_expression (identifier) @function .))
|
||||
(#match? @function "^[^A-Z]"))
|
||||
|
||||
; ------
|
||||
; Macros
|
||||
|
@ -228,19 +240,25 @@
|
|||
; Remaining identifiers
|
||||
; ---------------------
|
||||
|
||||
; could also be namespace but this should cover the majority
|
||||
(field_expression
|
||||
. (_)
|
||||
(identifier) @variable.other.member)
|
||||
|
||||
(const_statement
|
||||
(variable_declaration
|
||||
. (identifier) @constant))
|
||||
|
||||
((identifier) @type
|
||||
(match? @type "([A-Z][a-z0-9]+)+$"))
|
||||
; SCREAMING_SNAKE_CASE
|
||||
(
|
||||
(identifier) @constant
|
||||
(match? @constant "^[A-Z][A-Z0-9_]*$"))
|
||||
|
||||
((identifier) @constant
|
||||
(match? @constant "^[A-Z][A-Z0-9_]+$"))
|
||||
; remaining identifiers that start with capital letters should be types (PascalCase)
|
||||
(
|
||||
(identifier) @type
|
||||
(match? @type "^[A-Z]"))
|
||||
|
||||
; Field expressions are either module content or struct fields.
|
||||
; Module types and constants should already be captured, so this
|
||||
; assumes the remaining identifiers to be struct fields.
|
||||
(field_expression
|
||||
(_)
|
||||
(identifier) @variable.other.member)
|
||||
|
||||
(identifier) @variable
|
||||
|
|
Loading…
Add table
Reference in a new issue