Fix python-mode tree-sitter fontification

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.
This commit is contained in:
Yuan Fu 2022-11-19 00:25:57 -08:00
parent 2f03053e56
commit c6384e9bfb
No known key found for this signature in database
GPG key ID: 56E19BC57664A442

View 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