From 57424533a77cd80accc128457ea59a7241ce0197 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Sat, 16 May 2020 19:24:27 +0200 Subject: Add python/highlights.scm from tree-sitter-python --- queries/python/highlights.scm | 176 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 queries/python/highlights.scm (limited to 'queries/python/highlights.scm') diff --git a/queries/python/highlights.scm b/queries/python/highlights.scm new file mode 100644 index 000000000..f953efd0c --- /dev/null +++ b/queries/python/highlights.scm @@ -0,0 +1,176 @@ +;; From tree-sitter-python licensed under MIT License +; Copyright (c) 2016 Max Brunsfeld + +; Identifier naming conventions + + +((import_from_statement + name: (dotted_name + (identifier)) @type) + (match? @type "^[A-Z]")) + +((identifier) @constant + (match? @constant "^[A-Z][A-Z_]*$")) + +; Function calls + +(decorator) @function + +(call + function: (attribute + attribute: (identifier) @method)) + +(call + function: (identifier) @function) + +((call + (identifier) @constructor) + (match? @constructor "^[A-Z]")) + +;; Builtin functions + +((call + function: (identifier) @function.builtin) + (match? + @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) + +(identifier) @variable +(attribute attribute: (identifier) @property) +(type (identifier) @type) +(parameters + (identifier) @parameter) + +; Literals + +(none) @constant.builtin +(true) @boolean +(false) @boolean +((identifier) @constant.builtin + (match? @constant.builtin "self")) + +(integer) @number +(float) @float + +(comment) @comment +(string) @string +(escape_sequence) @escape + +(interpolation + "{" @punctuation.special + "}" @punctuation.special) @embedded + +; Tokens + +"-" @operator +"-=" @operator +"!=" @operator +"*" @operator +"**" @operator +"**=" @operator +"*=" @operator +"/" @operator +"//" @operator +"//=" @operator +"/=" @operator +"&" @operator +"%" @operator +"%=" @operator +"^" @operator +"+" @operator +"+=" @operator +"<" @operator +"<<" @operator +"<=" @operator +"<>" @operator +"=" @operator +"==" @operator +">" @operator +">=" @operator +">>" @operator +"|" @operator +"~" @operator +"and" @operator +"in" @operator +"is" @operator +"not" @operator +"or" @operator + +; Keywords + +"as" @keyword +"assert" @keyword +"async" @keyword +"await" @keyword +"break" @repeat +"class" @keyword +"continue" @repeat +"def" @keyword +"del" @keyword +"elif" @conditional +"else" @conditional +"except" @keyword +"exec" @keyword +"finally" @keyword +"for" @repeat +"from" @keyword +"global" @keyword +"if" @conditional +"import" @keyword +"lambda" @keyword +"nonlocal" @keyword +"pass" @keyword +"print" @keyword +"raise" @keyword +"return" @keyword +"try" @keyword +"while" @repeat +"with" @keyword +"yield" @keyword + +; Additions for nvim-treesitter +"(" @punctuation.bracket +")" @punctuation.bracket +"[" @punctuation.bracket +"]" @punctuation.bracket + +"," @punctuation.delimiter +"." @punctuation.delimiter +":" @punctuation.delimiter + +(class_definition + name: (identifier) @type) + +(attribute + attribute: (identifier) @field) + +((attribute + attribute: (identifier) @constant) + (match? @constant "^[A-Z][A-Z_]*$")) + +((attribute + attribute: (identifier) @type) + (match? @type "^[A-Z][a-z_]+")) + +(class_definition + body: (block + (expression_statement + (assignment + left: (expression_list + (identifier) @field))))) + +((class_definition + body: (block + (expression_statement + (assignment + left: (expression_list + (identifier) @constant))))) + (match? @constant "^[A-Z][A-Z_]*$")) + +;; Error +(ERROR) @error -- cgit v1.2.3-70-g09d2