@@ -1,97 +1,127 @@
1− ; highlights.scm
1+; Constants
3−function_keyword: (function_keyword) @keyword.function
3+(events (identifier) @constant)
4+(attribute (identifier) @constant)
5−(function_definition
6+"~" @constant.builtin
6−function_name: (identifier) @function
9−(parameter_list (identifier) @variable.parameter)
8+; Fields/Properties
11−[
10+(superclass "." (identifier) @variable.other.member)
12− "if"
11+(property_name "." (identifier) @variable.other.member)
13− "elseif"
12+(property name: (identifier) @variable.other.member)
18−] @keyword.control.conditional
20−(if_statement (end) @keyword.control.conditional)
14+; Types
21−(switch_statement (end) @keyword.control.conditional)
23−["for" "while"] @keyword.control.repeat
16+(class_definition name: (identifier) @keyword.storage.type)
24−(for_statement (end) @keyword.control.repeat)
17+(attributes (identifier) @constant)
25−(while_statement (end) @keyword.control.repeat)
18+(enum . (identifier) @type.enum.variant)
27−["try" "catch"] @keyword.control.exception
20+; Functions
28−(try_statement (end) @keyword.control.exception)
30−(function_definition end: (end) @keyword)
22+(function_definition
23+ "function" @keyword.function
24+ name: (identifier) @function
25+ [ "end" "endfunction" ]? @keyword.function)
32−["return" "break" "continue"] @keyword.return
27+(function_signature name: (identifier) @function)
28+(function_call name: (identifier) @function)
29+(handle_operator (identifier) @function)
30+(validation_functions (identifier) @function)
31+(command (command_name) @function.macro)
32+(command_argument) @string
33+(return_statement) @keyword.control.return
35−(identifier) @constant.builtin
36−(#any-of? @constant.builtin "true" "false")
39−(
37+(assignment left: (_) @variable)
40− (identifier) @constant.builtin
38+(multioutput_variable (_) @variable)
41− (#eq? @constant.builtin "end")
44−;; Punctuations
40+; Parameters
46−[";" ","] @punctuation.special
42+(function_arguments (identifier) @variable.parameter)
47−(argument_list "," @punctuation.delimiter)
48−(vector_definition ["," ";"] @punctuation.delimiter)
49−(cell_definition ["," ";"] @punctuation.delimiter)
50−":" @punctuation.delimiter
51−(parameter_list "," @punctuation.delimiter)
52−(return_value "," @punctuation.delimiter)
54−; ;; Brackets
44+; Operators
63−] @punctuation.bracket
60+ ".'"
67−(operation [ ">"
64+ "@"
88] @operator
75] @operator
90−;; Number
77+; Conditionals
91−(number) @constant.numeric
78+
79+(if_statement [ "if" "end" ] @keyword.control.conditional)
80+(elseif_clause "elseif" @keyword.control.conditional)
81+(else_clause "else" @keyword.control.conditional)
82+(switch_statement [ "switch" "end" ] @keyword.control.conditional)
83+(case_clause "case" @keyword.control.conditional)
84+(otherwise_clause "otherwise" @keyword.control.conditional)
85+(break_statement) @keyword.control.conditional
89+(for_statement [ "for" "parfor" "end" ] @keyword.control.repeat)
90+(while_statement [ "while" "end" ] @keyword.control.repeat)
91+(continue_statement) @keyword.control.repeat
93−;; String
95+(try_statement [ "try" "end" ] @keyword.control.exception)
96+(catch_clause "catch" @keyword.control.exception)
100+[ ";" "," "." ] @punctuation.delimiter
101+[ "(" ")" "[" "]" "{" "}" ] @punctuation.bracket
105+(escape_sequence) @constant.character.escape
106+(formatting_sequence) @constant.character.escape
94(string) @string
107(string) @string
108+(number) @constant.numeric.float
109+(boolean) @constant.builtin.boolean
96−;; Comment
111+; Comments
97−(comment) @comment
113+[ (comment) (line_continuation) ] @comment.line
117+"classdef" @keyword.storage.type