summaryrefslogtreecommitdiff
path: root/vrsite/assets/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'vrsite/assets/python.scm')
-rw-r--r--vrsite/assets/python.scm50
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