1
Files
flake-nixinator/config/neovim/store/nvim-treesitter/queries/nasm/highlights.scm

163 lines
2.9 KiB
Scheme

; adapted from https://github.com/naclsn/tree-sitter-nasm/blob/main/queries/highlights.scm
(word) @variable
((word) @constant
(#lua-match? @constant "^[A-Z_][?A-Z_0-9]+$"))
((word) @constant.builtin
(#lua-match? @constant.builtin "^__%?[A-Z_a-z0-9]+%?__$"))
[
(line_here_token)
(section_here_token)
] @variable.builtin
(label
(word) @label)
(assembl_directive_symbols
(word) @label)
(assembl_directive_sections
(word) @label)
(unary_expression
operator: _ @operator)
(binary_expression
operator: _ @operator)
"?" @constant.builtin
(conditional_expression
[
"?"
":"
] @keyword.conditional.ternary)
[
":"
","
] @punctuation.delimiter
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
(instruction_prefix) @keyword
(actual_instruction
instruction: (word) @function.builtin)
(call_syntax_expression
base: (word) @function.call)
(size_hint) @type
(struc_declaration
name: (word) @type)
(struc_instance
name: (word) @type)
(effective_address
hint: _ @type)
(effective_address
segment: _ @constant.builtin)
(register) @variable.builtin
(string_literal) @string
(float_literal) @number.float
[
(packed_bcd_literal)
(number_literal)
] @number
[
(preproc_alias)
(preproc_multiline_macro)
(preproc_multiline_unmacro)
(preproc_rotate)
(preproc_pathsearch)
(preproc_depend)
(preproc_use)
(preproc_push)
(preproc_pop)
(preproc_repl)
(preproc_arg)
(preproc_stacksize)
(preproc_local)
(preproc_reporting)
(preproc_pragma)
(preproc_line)
(preproc_clear)
] @keyword.directive
(preproc_include) @keyword.import
(preproc_rep_loop) @keyword.repeat
(preproc_if) @keyword.conditional
[
(preproc_def)
(preproc_undef)
] @keyword.directive.define
(preproc_function_def) @keyword.function
[
(preproc_expression)
(preproc_arg)
] @constant.macro
(preproc_multiline_macro
name: (word) @function)
[
(pseudo_instruction_dx)
(pseudo_instruction_resx)
(pseudo_instruction_incbin_command)
(pseudo_instruction_equ_command)
(pseudo_instruction_times_prefix)
(pseudo_instruction_alignx_macro)
] @function
[
(assembl_directive_target)
(assembl_directive_defaults)
(assembl_directive_sections)
(assembl_directive_absolute)
(assembl_directive_symbols)
(assembl_directive_common)
(assembl_directive_symbolfixes)
(assembl_directive_cpu)
(assembl_directive_floathandling)
(assembl_directive_org)
(assembl_directive_sectalign)
(assembl_directive_primitive_target)
(assembl_directive_primitive_defaults)
(assembl_directive_primitive_sections)
(assembl_directive_primitive_absolute)
(assembl_directive_primitive_symbols)
(assembl_directive_primitive_common)
(assembl_directive_primitive_symbolfixes)
(assembl_directive_primitive_cpu)
(assembl_directive_primitive_floathandling)
(assembl_directive_primitive_org)
(assembl_directive_primitive_sectalign)
(assembl_directive_primitive_warning)
(assembl_directive_primitive_map)
] @keyword
(comment) @comment @spell