nvim-treesitter/queries/orca/highlights.scm
2025-08-10 12:06:25 +02:00

276 lines
4.6 KiB
Scheme

(comment) @comment
(integer) @number
(float) @float
(element) @string
(simple_line) @variable.parameter @markup.strong
(input_title) @keyword
(input_key) @property
(quoted_string) @string
(geom_line_types) @type
"xyz" @type
"int" @type
"gzmt" @type
"end" @keyword
"*" @keyword
(string) @number
; Variables (FIRST - higher priority than general rules) - using @function for prominence
(variable_ref
(variable_name) @operator) ; {r} in geometry blocks
(variable_ref
"{" @punctuation.bracket)
(variable_ref
"}" @punctuation.bracket)
(variable_def
(variable_name) @operator) ; r in variable definitions
(variable_range
(float) @float)
(variable_array
(float) @float)
; Variable definitions in %paras blocks (when parsed as regular kv_pair)
(input_block
(input_title
(word) @_paras)
(input_body
(kv_pair
(input_key
(word) @operator)))
(#eq? @_paras "paras"))
; Variable definitions in pardef subblocks
(subblock
(word) @_pardef
(input_body
(kv_pair
(input_key
(word) @operator)))
(#eq? @_pardef "pardef"))
";" @punctuation.delimiter
; Brace blocks
(brace_block
"{" @property)
(brace_block
"}" @property)
(brace_value
(float) @float)
(brace_value
(integer) @number)
(constraint_content) @string
"," @punctuation.delimiter
; General word values (LAST - lower priority)
(value_atom
(word) @number) ; Words used as values get same color as other values
; Internal coordinate highlighting
(int_line
connect1: (integer) @operator)
(int_line
connect2: (integer) @operator)
(int_line
connect3: (integer) @operator)
(int_line
(coord_value
(float) @float))
(int_line
(coord_value
(variable_ref) @operator))
; Zmatrix coordinate highlighting - alternating pattern like internal coords
(zmat_line2
zmat_atom1: (integer) @operator)
(zmat_line2
(coord_value
(float) @float))
(zmat_line2
(coord_value
(variable_ref) @operator))
(zmat_line3
zmat_atom1: (integer) @operator)
(zmat_line3
zmat_atom2: (integer) @operator)
(zmat_line3
(coord_value
(float) @float))
(zmat_line3
(coord_value
(variable_ref) @operator))
(zmat_line4
zmat_atom1: (integer) @operator)
(zmat_line4
zmat_atom2: (integer) @operator)
(zmat_line4
zmat_atom3: (integer) @operator)
(zmat_line4
(coord_value
(float) @float))
(zmat_line4
(coord_value
(variable_ref) @operator))
; Subblocks
(subblock
name: (word) @character)
(subblock
"end" @character)
; Compound script highlighting - use node types instead of regexes
(compound_script) @keyword
(compound_variable_declaration) @keyword
(compound_step_block) @keyword
(compound_end) @keyword
(compound_variable_declaration
(variable_name) @function)
(compound_variable_reference
(variable_name) @function)
(compound_variable_reference
"&{" @punctuation.bracket)
(compound_variable_reference
"}" @punctuation.bracket)
(compound_boolean) @boolean
(compound_assignment
(variable_name) @function)
(coord_value
(compound_variable_reference) @function)
; Control flow structures
(compound_for_loop) @keyword
(compound_if_block) @keyword
; For loop keywords and components
(compound_for_loop
(variable_name) @function)
; If/else condition components
(compound_condition) @conditional
(compound_comparison) @operator
; Array access
(compound_array_access
(variable_name) @function)
(compound_array_access
"[" @punctuation.bracket)
(compound_array_access
"]" @punctuation.bracket)
; Function calls
(compound_function_call
(variable_name) @function.call)
(compound_function_call
"(" @punctuation.bracket)
(compound_function_call
")" @punctuation.bracket)
; Array assignments
(compound_array_assignment
(compound_array_access
(variable_name) @function))
; Variables in expressions - general pattern to catch all variable usage
(compound_primary_expr
(variable_name) @function)
; Operators in expressions
(compound_multiplicative_expr
"*" @operator)
(compound_multiplicative_expr
"/" @operator)
(compound_additive_expr
"+" @operator)
(compound_additive_expr
"-" @operator)
; Assignment operators
(compound_assignment
"=" @operator)
(compound_array_assignment
"=" @operator)
; Parentheses in expressions and conditions
(compound_primary_expr
"(" @punctuation.bracket)
(compound_primary_expr
")" @punctuation.bracket)
(compound_if_block
"(" @punctuation.bracket)
(compound_if_block
")" @punctuation.bracket)
; Semicolons
(compound_assignment
";" @punctuation.delimiter)
(compound_array_assignment
";" @punctuation.delimiter)
(compound_variable_declaration
";" @punctuation.delimiter)
(compound_function_call
";" @punctuation.delimiter)