From 253126bf339a16589e86acd51c0f96da07e658d9 Mon Sep 17 00:00:00 2001 From: Yuan Fu Date: Tue, 4 Oct 2022 12:18:53 -0700 Subject: [PATCH] Fix python tree-sitter font-lock Add fontification for lhs attribute and some operators. * lisp/progmodes/python.el (python--treesit-keywords): Add operators. (python--treesit-settings): Add lhs attribute. --- lisp/progmodes/python.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 5b70c63f7b4..3f85201c107 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -915,7 +915,10 @@ It makes underscores and dots word constituent chars.") '("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")) + "raise" "return" "try" "while" "with" "yield" + ;; These are technically operators, but we fontify them as + ;; keywords. + "and" "in" "is" "not" "or")) (defvar python--treesit-builtins '("abs" "all" "any" "ascii" "bin" "bool" "breakpoint" "bytearray" @@ -934,6 +937,8 @@ It makes underscores and dots word constituent chars.") "copyright" "credits" "exit" "license" "quit")) (defvar python--treesit-operators + ;; This is not used. And and, or, not, is, in are fontified as + ;; keywords. '("-" "-=" "!=" "*" "**" "**=" "*=" "/" "//" "//=" "/=" "&" "%" "%=" "^" "+" "+=" "<" "<<" "<=" "<>" "=" "==" ">" ">=" ">>" "|" "~" "and" "in" "is" "not" "or")) @@ -1019,6 +1024,9 @@ Do not fontify the initial f for f-strings." ;; Variable names. (assignment left: (identifier) @font-lock-variable-name-face) + (assignment left: (attribute + attribute: (identifier) + @font-lock-variable-name-face)) (pattern_list (identifier) @font-lock-variable-name-face) (tuple_pattern (identifier) -- 2.39.2