; Jack syntax highlighting queries for tree-sitter ; Keywords as string terminals "class" @keyword "static" @keyword "function" @keyword "constructor" @keyword "method" @keyword "field" @keyword "var" @keyword "let" @keyword "do" @keyword "if" @keyword "else" @keyword "while" @keyword "return" @keyword ; Operators and punctuation "=" @operator "+" @operator "-" @operator "*" @operator "/" @operator "&" @operator "|" @operator "<" @operator ">" @operator "~" @operator ";" @punctuation.delimiter "," @punctuation.delimiter "." @punctuation.delimiter "{" @punctuation.bracket "}" @punctuation.bracket "(" @punctuation.bracket ")" @punctuation.bracket "[" @punctuation.bracket "]" @punctuation.bracket ; Special alias nodes (these are created by the grammar) (this) @variable.builtin (true) @boolean (false) @boolean (null) @constant.builtin ; Class declarations (class_declaration name: (identifier) @type) ; Class name references (class_name) @type ; Subroutine declarations (subroutine_declaration name: (identifier) @function) ; Parameters (parameter (identifier) @variable.parameter) ; Variable declarations (class_variable_declaration (identifier) @property) (local_variable_declaration (identifier) @variable) ; Function calls (call_expression function: (identifier) @function) (call_expression function: (member_expression property: (identifier) @function)) ; Member access (member_expression object: (identifier) @variable property: (identifier) @property) ; Subscript access (subscript_expression object: (identifier) @variable) ; Let statement variable (let_statement (identifier) @variable) (let_statement (subscript_expression object: (identifier) @variable)) ; General identifiers (identifier) @variable ; Literals (integer) @number (string) @string ; Comments (comment) @comment (doc_comment) @comment.doc