Improve python highlighting (#3103)

* improve python queries

* update python grammar to `0.20.2`

* fix variadic parameter scope

* add punctuation scopes

* fix order of punctuation scopes

* undo  `embedded` delete
This commit is contained in:
Kirawi 2022-07-25 21:17:51 -04:00 committed by GitHub
parent 2ede98c4b4
commit 0a2646e720
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 62 additions and 25 deletions

View file

@ -437,7 +437,7 @@ indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "python"
source = { git = "https://github.com/tree-sitter/tree-sitter-python", rev = "d6210ceab11e8d812d4ab59c07c81458ec6e5184" }
source = { git = "https://github.com/tree-sitter/tree-sitter-python", rev = "de221eccf9a221f5b85474a553474a69b4b5784d" }
[[language]]
name = "nickel"

View file

@ -1,3 +1,6 @@
(dotted_name
(identifier)* @namespace)
; Builtin functions
((call
@ -8,6 +11,11 @@
; Function calls
[
"def"
"lambda"
] @keyword.function
(call
function: (attribute attribute: (identifier) @constructor)
(#match? @constructor "^[A-Z]"))
@ -49,6 +57,13 @@
(parameters (typed_default_parameter name: (identifier) @variable.parameter))
(keyword_argument name: (identifier) @variable.parameter)
(parameters
(list_splat_pattern ; *args
(identifier) @variable.parameter))
(parameters
(dictionary_splat_pattern ; **kwargs
(identifier) @variable.parameter))
; Types
((identifier) @type.builtin
@ -81,12 +96,11 @@
(identifier) @variable
; Literals
(none) @constant.builtin
[
(none)
(true)
(false)
] @constant.builtin
] @constant.builtin.boolean
(integer) @constant.numeric.integer
(float) @constant.numeric.float
@ -94,9 +108,11 @@
(string) @string
(escape_sequence) @constant.character.escape
["," "." ":" ";" (ellipsis)] @punctuation.delimiter
(interpolation
"{" @punctuation.special
"}" @punctuation.special) @embedded
"(" ")" "[" "]" "{" "}"] @punctuation.bracket
[
"-"
@ -135,24 +151,39 @@
"as"
"assert"
"await"
"break"
"continue"
"from"
"pass"
"with"
] @keyword.control
[
"if"
"elif"
"else"
] @keyword.control.conditional
[
"while"
"for"
"break"
"continue"
] @keyword.control.repeat
[
"return"
"yield"
] @keyword.control.return
(yield "from" @keyword.control.return)
[
"raise"
"try"
"except"
"finally"
"for"
"from"
"if"
"import"
"pass"
"raise"
"return"
"try"
"while"
"with"
"yield"
] @keyword.control
] @keyword.control.except
(raise_statement "from" @keyword.control.except)
"import" @keyword.control.import
(for_statement "in" @keyword.control)
(for_in_clause "in" @keyword.control)
@ -161,16 +192,22 @@
"and"
"async"
"class"
"def"
"del"
"exec"
"global"
"in"
"is"
"lambda"
"nonlocal"
"not"
"or"
"print"
] @keyword
[
"and"
"or"
"in"
"not"
"del"
"is"
] @keyword.operator
((identifier) @type.builtin
(#match? @type.builtin
"^(BaseException|Exception|ArithmeticError|BufferError|LookupError|AssertionError|AttributeError|EOFError|FloatingPointError|GeneratorExit|ImportError|ModuleNotFoundError|IndexError|KeyError|KeyboardInterrupt|MemoryError|NameError|NotImplementedError|OSError|OverflowError|RecursionError|ReferenceError|RuntimeError|StopIteration|StopAsyncIteration|SyntaxError|IndentationError|TabError|SystemError|SystemExit|TypeError|UnboundLocalError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ValueError|ZeroDivisionError|EnvironmentError|IOError|WindowsError|BlockingIOError|ChildProcessError|ConnectionError|BrokenPipeError|ConnectionAbortedError|ConnectionRefusedError|ConnectionResetError|FileExistsError|FileNotFoundError|InterruptedError|IsADirectoryError|NotADirectoryError|PermissionError|ProcessLookupError|TimeoutError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|RuntimeWarning|FutureWarning|ImportWarning|UnicodeWarning|BytesWarning|ResourceWarning)$"))
(ERROR) @error