aboutsummaryrefslogtreecommitdiffstats
path: root/queries/python/highlights.scm
diff options
context:
space:
mode:
Diffstat (limited to 'queries/python/highlights.scm')
-rw-r--r--queries/python/highlights.scm256
1 files changed, 162 insertions, 94 deletions
diff --git a/queries/python/highlights.scm b/queries/python/highlights.scm
index 8d272185c..1d149162d 100644
--- a/queries/python/highlights.scm
+++ b/queries/python/highlights.scm
@@ -1,20 +1,20 @@
-;; From tree-sitter-python licensed under MIT License
+; From tree-sitter-python licensed under MIT License
; Copyright (c) 2016 Max Brunsfeld
-
; Variables
(identifier) @variable
; Reset highlighting in f-string interpolations
(interpolation) @none
-;; Identifier naming conventions
+; Identifier naming conventions
((identifier) @type
- (#lua-match? @type "^[A-Z].*[a-z]"))
+ (#lua-match? @type "^[A-Z].*[a-z]"))
+
((identifier) @constant
- (#lua-match? @constant "^[A-Z][A-Z_0-9]*$"))
+ (#lua-match? @constant "^[A-Z][A-Z_0-9]*$"))
((identifier) @constant.builtin
- (#lua-match? @constant.builtin "^__[a-zA-Z0-9_]*__$"))
+ (#lua-match? @constant.builtin "^__[a-zA-Z0-9_]*__$"))
((identifier) @constant.builtin
; format-ignore
@@ -26,160 +26,188 @@
"_" @constant.builtin ; match wildcard
((attribute
- attribute: (identifier) @variable.member)
- (#lua-match? @variable.member "^[%l_].*$"))
+ attribute: (identifier) @variable.member)
+ (#lua-match? @variable.member "^[%l_].*$"))
((assignment
left: (identifier) @type.definition
- (type (identifier) @_annotation))
- (#eq? @_annotation "TypeAlias"))
+ (type
+ (identifier) @_annotation))
+ (#eq? @_annotation "TypeAlias"))
((assignment
left: (identifier) @type.definition
- right: (call
- function: (identifier) @_func))
- (#any-of? @_func "TypeVar" "NewType"))
+ right:
+ (call
+ function: (identifier) @_func))
+ (#any-of? @_func "TypeVar" "NewType"))
; Function calls
-
(call
function: (identifier) @function.call)
(call
- function: (attribute
- attribute: (identifier) @function.method.call))
+ function:
+ (attribute
+ attribute: (identifier) @function.method.call))
((call
- function: (identifier) @constructor)
- (#lua-match? @constructor "^%u"))
+ function: (identifier) @constructor)
+ (#lua-match? @constructor "^%u"))
((call
- function: (attribute
- attribute: (identifier) @constructor))
- (#lua-match? @constructor "^%u"))
-
-;; Decorators
+ function:
+ (attribute
+ attribute: (identifier) @constructor))
+ (#lua-match? @constructor "^%u"))
-((decorator "@" @attribute)
- (#set! "priority" 101))
+; Decorators
+((decorator
+ "@" @attribute)
+ (#set! "priority" 101))
(decorator
(identifier) @attribute)
+
(decorator
(attribute
attribute: (identifier) @attribute))
+
(decorator
- (call (identifier) @attribute))
+ (call
+ (identifier) @attribute))
+
(decorator
- (call (attribute
- attribute: (identifier) @attribute)))
+ (call
+ (attribute
+ attribute: (identifier) @attribute)))
((decorator
(identifier) @attribute.builtin)
- (#any-of? @attribute.builtin "classmethod" "property"))
-
-;; Builtin functions
+ (#any-of? @attribute.builtin "classmethod" "property"))
+; Builtin functions
((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__"))
-
-;; Function definitions
+ (#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__"))
+; Function definitions
(function_definition
name: (identifier) @function)
-(type (identifier) @type)
+(type
+ (identifier) @type)
+
(type
(subscript
(identifier) @type)) ; type subscript: Tuple[int]
((call
function: (identifier) @_isinstance
- arguments: (argument_list
- (_)
- (identifier) @type))
- (#eq? @_isinstance "isinstance"))
+ arguments:
+ (argument_list
+ (_)
+ (identifier) @type))
+ (#eq? @_isinstance "isinstance"))
-;; Normal parameters
+; Normal parameters
(parameters
(identifier) @variable.parameter)
-;; Lambda parameters
+
+; Lambda parameters
(lambda_parameters
(identifier) @variable.parameter)
+
(lambda_parameters
(tuple_pattern
(identifier) @variable.parameter))
+
; Default parameters
(keyword_argument
name: (identifier) @variable.parameter)
+
; Naming parameters on call-site
(default_parameter
name: (identifier) @variable.parameter)
+
(typed_parameter
(identifier) @variable.parameter)
+
(typed_default_parameter
name: (identifier) @variable.parameter)
+
; Variadic parameters *args, **kwargs
(parameters
- (list_splat_pattern ; *args
+ (list_splat_pattern
+ ; *args
(identifier) @variable.parameter))
+
(parameters
- (dictionary_splat_pattern ; **kwargs
+ (dictionary_splat_pattern
+ ; **kwargs
(identifier) @variable.parameter))
+
(lambda_parameters
(list_splat_pattern
(identifier) @variable.parameter))
+
(lambda_parameters
(dictionary_splat_pattern
(identifier) @variable.parameter))
+; Literals
+(none) @constant.builtin
-;; Literals
+[
+ (true)
+ (false)
+] @boolean
-(none) @constant.builtin
-[(true) (false)] @boolean
((identifier) @variable.builtin
- (#eq? @variable.builtin "self"))
+ (#eq? @variable.builtin "self"))
+
((identifier) @variable.builtin
- (#eq? @variable.builtin "cls"))
+ (#eq? @variable.builtin "cls"))
(integer) @number
+
(float) @number.float
(comment) @comment @spell
-((module . (comment) @keyword.directive)
+((module
+ .
+ (comment) @keyword.directive)
(#lua-match? @keyword.directive "^#!/"))
(string) @string
+
[
(escape_sequence)
(escape_interpolation)
] @string.escape
; doc-strings
-
-(module . (expression_statement (string) @string.documentation @spell))
+(module
+ .
+ (expression_statement
+ (string) @string.documentation @spell))
(class_definition
body:
(block
- . (expression_statement (string) @string.documentation @spell)))
+ .
+ (expression_statement
+ (string) @string.documentation @spell)))
(function_definition
body:
(block
- . (expression_statement (string) @string.documentation @spell)))
+ .
+ (expression_statement
+ (string) @string.documentation @spell)))
; Tokens
-
[
"-"
"-="
@@ -229,7 +257,6 @@
"or"
"is not"
"not in"
-
"del"
] @keyword.operator
@@ -260,19 +287,36 @@
"return"
"yield"
] @keyword.return
-(yield "from" @keyword.return)
+
+(yield
+ "from" @keyword.return)
(future_import_statement
"from" @keyword.import
"__future__" @constant.builtin)
-(import_from_statement "from" @keyword.import)
+
+(import_from_statement
+ "from" @keyword.import)
+
"import" @keyword.import
-(aliased_import "as" @keyword.import)
+(aliased_import
+ "as" @keyword.import)
-["if" "elif" "else" "match" "case"] @keyword.conditional
+[
+ "if"
+ "elif"
+ "else"
+ "match"
+ "case"
+] @keyword.conditional
-["for" "while" "break" "continue"] @keyword.repeat
+[
+ "for"
+ "while"
+ "break"
+ "continue"
+] @keyword.repeat
[
"try"
@@ -282,13 +326,21 @@
"finally"
] @keyword.exception
-(raise_statement "from" @keyword.exception)
+(raise_statement
+ "from" @keyword.exception)
(try_statement
(else_clause
"else" @keyword.exception))
-["(" ")" "[" "]" "{" "}"] @punctuation.bracket
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
(interpolation
"{" @punctuation.special
@@ -296,40 +348,52 @@
(type_conversion) @function.macro
-["," "." ":" ";" (ellipsis)] @punctuation.delimiter
-
-;; Class definitions
+[
+ ","
+ "."
+ ":"
+ ";"
+ (ellipsis)
+] @punctuation.delimiter
-(class_definition name: (identifier) @type)
+; Class definitions
+(class_definition
+ name: (identifier) @type)
(class_definition
- body: (block
- (function_definition
- name: (identifier) @function.method)))
+ body:
+ (block
+ (function_definition
+ name: (identifier) @function.method)))
(class_definition
- superclasses: (argument_list
- (identifier) @type))
+ superclasses:
+ (argument_list
+ (identifier) @type))
((class_definition
- body: (block
- (expression_statement
- (assignment
- left: (identifier) @variable.member))))
- (#lua-match? @variable.member "^%l.*$"))
+ body:
+ (block
+ (expression_statement
+ (assignment
+ left: (identifier) @variable.member))))
+ (#lua-match? @variable.member "^%l.*$"))
+
((class_definition
- body: (block
- (expression_statement
- (assignment
- left: (_
- (identifier) @variable.member)))))
- (#lua-match? @variable.member "^%l.*$"))
+ body:
+ (block
+ (expression_statement
+ (assignment
+ left:
+ (_
+ (identifier) @variable.member)))))
+ (#lua-match? @variable.member "^%l.*$"))
((class_definition
(block
(function_definition
name: (identifier) @constructor)))
- (#any-of? @constructor "__new__" "__init__"))
+ (#any-of? @constructor "__new__" "__init__"))
((identifier) @type.builtin
; format-ignore
@@ -350,10 +414,14 @@
"bool" "int" "float" "complex" "list" "tuple" "range" "str"
"bytes" "bytearray" "memoryview" "set" "frozenset" "dict" "type" "object"))
-;; Regex from the `re` module
-
+; Regex from the `re` module
(call
- function: (attribute
- object: (identifier) @_re)
- arguments: (argument_list . (string (string_content) @string.regexp))
+ function:
+ (attribute
+ object: (identifier) @_re)
+ arguments:
+ (argument_list
+ .
+ (string
+ (string_content) @string.regexp))
(#eq? @_re "re"))