]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix python-mode tree-sitter fontification
authorYuan Fu <casouri@gmail.com>
Sat, 19 Nov 2022 08:25:57 +0000 (00:25 -0800)
committerYuan Fu <casouri@gmail.com>
Sat, 19 Nov 2022 08:25:57 +0000 (00:25 -0800)
Forgot to update python-mode's code when I added the tree-sitter
notifier facility.  Now it doesn't need any special treatment anymore.
Leaving it as is causes some incorrect fontification.

* lisp/progmodes/python.el (python--treesit-fontify-string): Accept
the string node rather than the quote node.
(python--treesit-settings): Capture string node.

lisp/progmodes/python.el

index 22485a025e02060b61b7a51f044209188742212c..b9b71a57d7dac175408f3e6acbb9c0632cca2b1b 100644 (file)
@@ -1014,16 +1014,15 @@ It makes underscores and dots word constituent chars.")
 
 (defun python--treesit-fontify-string (node override start end &rest _)
   "Fontify string.
-NODE is the leading quote in the string.  Do not fontify the
-initial f for f-strings.  OVERRIDE is the override flag described
-in `treesit-font-lock-rules'.  START and END marks the region to
-be fontified."
-  (let* ((string (treesit-node-parent node))
-         (string-beg (treesit-node-start string))
-         (string-end (treesit-node-end string))
+NODE is the string node.  Do not fontify the initial f for
+f-strings.  OVERRIDE is the override flag described in
+`treesit-font-lock-rules'.  START and END marks the region to be
+fontified."
+  (let* ((string-beg (treesit-node-start node))
+         (string-end (treesit-node-end node))
          (maybe-defun (treesit-node-parent
                        (treesit-node-parent
-                        (treesit-node-parent string))))
+                        (treesit-node-parent node))))
          (face (if (member (treesit-node-type maybe-defun)
                            '("function_definition"
                              "class_definition"))
@@ -1043,8 +1042,7 @@ be fontified."
    :feature 'string
    :language 'python
    :override t
-   ;; TODO Document on why we do this.
-   '((string :anchor "\"" @python--treesit-fontify-string))
+   '((string) @python--treesit-fontify-string)
 
    :feature 'string-interpolation
    :language 'python