mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-10 14:10:51 +00:00
Fix python-ts-mode triple quote syntax (bug#67262)
* lisp/progmodes/python.el (python--treesit-syntax-propertize): New function. (python-ts-mode): Activate python--treesit-syntax-propertize.
This commit is contained in:
parent
683c7c9687
commit
2701da0eee
1 changed files with 17 additions and 0 deletions
|
@ -1228,6 +1228,21 @@ For NODE, OVERRIDE, START, END, and ARGS, see
|
||||||
(treesit-node-start node) (treesit-node-end node)
|
(treesit-node-start node) (treesit-node-end node)
|
||||||
'font-lock-variable-use-face override start end)))
|
'font-lock-variable-use-face override start end)))
|
||||||
|
|
||||||
|
(defun python--treesit-syntax-propertize (start end)
|
||||||
|
"Propertize triple-quote strings between START and END."
|
||||||
|
(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 "|"))))))))
|
||||||
|
|
||||||
|
|
||||||
;;; Indentation
|
;;; Indentation
|
||||||
|
|
||||||
|
@ -6729,6 +6744,8 @@ implementations: `python-mode' and `python-ts-mode'."
|
||||||
#'python--treesit-defun-name)
|
#'python--treesit-defun-name)
|
||||||
(treesit-major-mode-setup)
|
(treesit-major-mode-setup)
|
||||||
|
|
||||||
|
(setq-local syntax-propertize-function #'python--treesit-syntax-propertize)
|
||||||
|
|
||||||
(python-skeleton-add-menu-items)
|
(python-skeleton-add-menu-items)
|
||||||
|
|
||||||
(when python-indent-guess-indent-offset
|
(when python-indent-guess-indent-offset
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue