Subject: Fix python-ts-mode syntax higlighting as to account for default arguments

From: Maciej Kalandyk <[email-masked]>
Date: Fri, 08 Dec 2023 05:36:52 +0100

Tags: patch

Patch fixes lack of syntax highlighting for default arguments using
python-ts-mode

In GNU Emacs 29.0.91 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.37, cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash
 SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash
 --prefix=/gnu/store/475y8j60g7ixylvfh3viwnfl6i5j4fcj-emacs-next-tree-sitter-29.0.91
 --enable-fast-install --with-modules --with-cairo
 --with-native-compilation --disable-build-details'

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 4b940b3..b625948 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1121,7 +1121,8 @@ fontified."
       name: (identifier) @font-lock-function-name-face)
      (class_definition
       name: (identifier) @font-lock-type-face)
-     (parameters (identifier) @font-lock-variable-name-face))
+     (parameters (identifier) @font-lock-variable-name-face)
+     (parameters (default_parameter name: (identifier) @font-lock-variable-name-face)))
 
    :feature 'function
    :language 'python
@@ -2825,26 +2826,26 @@ of `exec-path'."
   (let ((env (append (when (fboundp 'tramp-get-remote-locale)
                        ;; Emacs<24.4 compat.
                        (list (tramp-get-remote-locale vec)))
-		     (copy-sequence env)))
+                     (copy-sequence env)))
         (tramp-end-of-heredoc
          (if (boundp 'tramp-end-of-heredoc)
              tramp-end-of-heredoc
            (md5 tramp-end-of-output)))
-	unset vars item)
+        unset vars item)
     (while env
       (setq item (split-string (car env) "=" 'omit))
       (setcdr item (mapconcat #'identity (cdr item) "="))
       (if (and (stringp (cdr item)) (not (string-equal (cdr item) "")))
-	  (push (format "%s %s" (car item) (cdr item)) vars)
-	(push (car item) unset))
+          (push (format "%s %s" (car item) (cdr item)) vars)
+        (push (car item) unset))
       (setq env (cdr env)))
     (when vars
       (tramp-send-command
        vec
        (format "while read var val; do export $var=$val; done <<'%s'\n%s\n%s"
-	       tramp-end-of-heredoc
-	       (mapconcat #'identity vars "\n")
-	       tramp-end-of-heredoc)
+               tramp-end-of-heredoc
+               (mapconcat #'identity vars "\n")
+               tramp-end-of-heredoc)
        t))
     (when unset
       (tramp-send-command
@@ -6538,9 +6539,9 @@ recursively."
         (python--list-imports-check-status status)
         (goto-char (point-min))
         (while (not (eobp))
-	  (push (buffer-substring-no-properties (point) (pos-eol))
+          (push (buffer-substring-no-properties (point) (pos-eol))
                 lines)
-	  (forward-line 1))
+          (forward-line 1))
         (nreverse lines)))))
 
 (defun python--query-import (name source prompt)
@@ -6666,7 +6667,7 @@ asking."
                  (push (match-string 1) undefined))
                 ((looking-at ".*'\\([^']+\\)' imported but unused$")
                  (push (match-string 1) unused)))
-	  (forward-line 1))))
+          (forward-line 1))))
     ;; Compute imports to be added
     (dolist (name (seq-uniq undefined))
       (when-let ((statement (python--query-import name