diff options
| author | Stephan Seitz <stephan.seitz@fau.de> | 2020-05-16 19:24:27 +0200 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2020-05-17 21:56:44 +0200 |
| commit | 57424533a77cd80accc128457ea59a7241ce0197 (patch) | |
| tree | 417e227a0cc07a8e814518974a92b58112769edd /queries/python/highlights.scm | |
| parent | Add python locals.scm (diff) | |
| download | nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.tar nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.tar.gz nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.tar.bz2 nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.tar.lz nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.tar.xz nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.tar.zst nvim-treesitter-57424533a77cd80accc128457ea59a7241ce0197.zip | |
Add python/highlights.scm from tree-sitter-python
Diffstat (limited to 'queries/python/highlights.scm')
| -rw-r--r-- | queries/python/highlights.scm | 176 |
1 files changed, 176 insertions, 0 deletions
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 |
