diff options
Diffstat (limited to 'vrsite/assets/python.scm')
| -rw-r--r-- | vrsite/assets/python.scm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vrsite/assets/python.scm b/vrsite/assets/python.scm new file mode 100644 index 0000000..f64e673 --- /dev/null +++ b/vrsite/assets/python.scm @@ -0,0 +1,50 @@ +; Python highlights, from tree-sitter/tree-sitter-python v0.25.0 +; queries/highlights.scm (MIT). Reordered for later-patterns-win, capture names +; mapped onto zed syntax keys, and the builtin-function #match? turned into +; #any-of?. The two casing heuristics stay regexes: nothing else can express +; "CONST_CASE" and "ClassName" over bare identifiers. + +["(" ")" "[" "]" "{" "}"] @punctuation.bracket +[";" "," "." ":"] @punctuation.delimiter +["-" "-=" "!=" "*" "**" "**=" "*=" "/" "//" "//=" "/=" "&" "&=" "%" "%=" + "^" "^=" "+" "->" "+=" "<" "<<" "<<=" "<=" "<>" "=" ":=" "==" ">" ">=" + ">>" ">>=" "|" "|=" "~" "@=" "and" "in" "is" "not" "or" "is not" + "not in"] @operator + +["as" "assert" "async" "await" "break" "class" "continue" "def" "del" "elif" + "else" "except" "exec" "finally" "for" "from" "global" "if" "import" "lambda" + "nonlocal" "pass" "print" "raise" "return" "try" "while" "with" "yield" + "match" "case"] @keyword + +((identifier) @constructor + (#match? @constructor "^[A-Z]")) +((identifier) @constant + (#match? @constant "^[A-Z][A-Z_0-9]*$")) +((identifier) @variable.special + (#any-of? @variable.special "self" "cls")) + +(type (identifier) @type) +(attribute attribute: (identifier) @property) +(function_definition name: (identifier) @function) +(call function: (identifier) @function) +(call function: (attribute attribute: (identifier) @function.method)) +((call function: (identifier) @function.builtin) + (#any-of? @function.builtin "abs" "all" "any" "ascii" "bin" "bool" + "breakpoint" "bytearray" "bytes" "callable" "chr" "classmethod" "compile" + "complex" "delattr" "dict" "dir" "divmod" "enumerate" "eval" "exec" "filter" + "float" "format" "frozenset" "getattr" "globals" "hasattr" "hash" "help" + "hex" "id" "input" "int" "isinstance" "issubclass" "iter" "len" "list" + "locals" "map" "max" "memoryview" "min" "next" "object" "oct" "open" "ord" + "pow" "print" "property" "range" "repr" "reversed" "round" "set" "setattr" + "slice" "sorted" "staticmethod" "str" "sum" "super" "tuple" "type" "vars" + "zip" "__import__")) + +[(integer) (float)] @number +[(none) (true) (false)] @constant +(string) @string +(escape_sequence) @string.escape +(interpolation "{" @punctuation.special "}" @punctuation.special) + +(decorator "@" @attribute) +(decorator [(identifier) (attribute)] @attribute) +(comment) @comment |
