python--treesit-syntax-propertize: Fix edits in the middle
* lisp/progmodes/python.el (python--treesit-syntax-propertize): Process the beginning and the end of the triple-quoted string's delimiters separately. Among other things, that still works when the beginning is outside of the propertized region (bug#68445).
This commit is contained in:
parent
22a58fccb7
commit
737d46e04d
1 changed files with 9 additions and 9 deletions
|
@ -1359,15 +1359,15 @@ For NODE, OVERRIDE, START, END, and ARGS, see
|
|||
(save-excursion
|
||||
(goto-char start)
|
||||
(while (re-search-forward (rx (or "\"\"\"" "'''")) end t)
|
||||
(let ((node (treesit-node-at (point))))
|
||||
;; The triple quotes surround a non-empty string.
|
||||
(when (equal (treesit-node-type node) "string_content")
|
||||
(let ((start (treesit-node-start node))
|
||||
(end (treesit-node-end node)))
|
||||
(put-text-property (1- start) start
|
||||
'syntax-table (string-to-syntax "|"))
|
||||
(put-text-property end (min (1+ end) (point-max))
|
||||
'syntax-table (string-to-syntax "|"))))))))
|
||||
(let ((node (treesit-node-at (- (point) 3))))
|
||||
;; Handle triple-quoted strings.
|
||||
(pcase (treesit-node-type node)
|
||||
("string_start"
|
||||
(put-text-property (1- (point)) (point)
|
||||
'syntax-table (string-to-syntax "|")))
|
||||
("string_end"
|
||||
(put-text-property (- (point) 3) (- (point) 2)
|
||||
'syntax-table (string-to-syntax "|"))))))))
|
||||
|
||||
|
||||
;;; Indentation
|
||||
|
|
Loading…
Add table
Reference in a new issue