diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-06-12 09:54:30 -0600 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2025-05-12 18:43:40 +0200 |
| commit | 692b051b09935653befdb8f7ba8afdb640adf17b (patch) | |
| tree | 167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/smali/highlights.scm | |
| parent | feat(c-family): inherit injections (diff) | |
| download | nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2 nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip | |
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'runtime/queries/smali/highlights.scm')
| -rw-r--r-- | runtime/queries/smali/highlights.scm | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/runtime/queries/smali/highlights.scm b/runtime/queries/smali/highlights.scm new file mode 100644 index 000000000..161b732b2 --- /dev/null +++ b/runtime/queries/smali/highlights.scm @@ -0,0 +1,226 @@ +; Types +(class_identifier + (identifier) @type) + +(primitive_type) @type.builtin + +((class_identifier + . + (identifier) @_first @type.builtin + (identifier) @type.builtin) + (#any-of? @_first "android" "dalvik" "java" "kotlinx")) + +((class_identifier + . + (identifier) @_first @type.builtin + . + (identifier) @_second @type.builtin + (identifier) @type.builtin) + (#eq? @_first "com") + (#any-of? @_second "android" "google")) + +; Methods +(method_definition + (method_signature + (method_identifier) @function.method)) + +(expression + (opcode) @_invoke + (body + (full_method_signature + (method_signature + (method_identifier) @function.method.call))) + (#lua-match? @_invoke "^invoke")) + +(method_handle + (full_method_signature + (method_signature + (method_identifier) @function.method.call))) + +(custom_invoke + . + (identifier) @function.method.call + (method_signature + (method_identifier) @function.method.call)) + +(annotation_value + (body + (method_signature + (method_identifier) @function.method.call))) + +(annotation_value + (body + (full_method_signature + (method_signature + (method_identifier) @function.method.call)))) + +(field_definition + (body + (method_signature + (method_identifier) @function.method.call))) + +(field_definition + (body + (full_method_signature + (method_signature + (method_identifier) @function.method.call)))) + +((method_identifier) @constructor + (#any-of? @constructor "<init>" "<clinit>")) + +"constructor" @constructor + +; Fields +(field_identifier) @variable.member + +(annotation_key) @variable.member + +((field_identifier) @constant + (#lua-match? @constant "^[%u_]*$")) + +; Variables +(variable) @variable.builtin + +(local_directive + (identifier) @variable) + +; Parameters +(parameter) @variable.parameter.builtin + +(param_identifier) @variable.parameter + +; Labels +[ + (label) + (jmp_label) +] @label + +; Operators +(opcode) @keyword.operator + +((opcode) @keyword.return + (#lua-match? @keyword.return "^return")) + +((opcode) @keyword.conditional + (#lua-match? @keyword.conditional "^if")) + +((opcode) @keyword.conditional + (#lua-match? @keyword.conditional "^cmp")) + +((opcode) @keyword.exception + (#lua-match? @keyword.exception "^throw")) + +((opcode) @comment + (#eq? @comment "nop")) ; haha, anyone get it? ;) + +[ + "=" + ".." +] @operator + +; Keywords +[ + ".class" + ".super" + ".implements" + ".field" + ".end field" + ".annotation" + ".end annotation" + ".subannotation" + ".end subannotation" + ".param" + ".end param" + ".parameter" + ".end parameter" + ".line" + ".locals" + ".local" + ".end local" + ".restart local" + ".registers" + ".packed-switch" + ".end packed-switch" + ".sparse-switch" + ".end sparse-switch" + ".array-data" + ".end array-data" + ".enum" + (prologue_directive) + (epilogue_directive) +] @keyword + +".source" @keyword.import + +[ + ".method" + ".end method" +] @keyword.function + +[ + ".catch" + ".catchall" +] @keyword.exception + +; Literals +(string) @string + +(source_directive + (string + "\"" + _ @string.special.url + "\"")) + +(escape_sequence) @string.escape + +(character) @character + +"L" @character.special + +(number) @number + +[ + (float) + (NaN) + (Infinity) +] @number.float + +(boolean) @boolean + +(null) @constant.builtin + +; Misc +(annotation_visibility) @keyword.modifier + +(access_modifier) @keyword.modifier + +(array_type + "[" @punctuation.special) + +[ + "{" + "}" +] @punctuation.bracket + +[ + "(" + ")" +] @punctuation.bracket + +[ + "->" + "," + ":" + ";" + "@" + "/" +] @punctuation.delimiter + +(line_directive + (number) @string.special) + +; Comments +(comment) @comment @spell + +(class_definition + (comment) @comment.documentation) |
