Add basic support for hideshow in python-ts-mode (bug#60044)

* lisp/progmodes/python.el (python-base-mode): Add setup for
python-ts-mode.
This commit is contained in:
Yuan Fu 2022-12-15 17:16:28 -08:00
parent cac070b23e
commit e8f7ab67ad
No known key found for this signature in database
GPG key ID: 56E19BC57664A442

View file

@ -6564,19 +6564,21 @@ implementations: `python-mode' and `python-ts-mode'."
(add-function :before-until (local 'eldoc-documentation-function)
#'python-eldoc-function))))
(add-to-list
'hs-special-modes-alist
`(python-mode
,python-nav-beginning-of-block-regexp
;; Use the empty string as end regexp so it doesn't default to
;; "\\s)". This way parens at end of defun are properly hidden.
""
"#"
python-hideshow-forward-sexp-function
nil
python-nav-beginning-of-block
python-hideshow-find-next-block
python-info-looking-at-beginning-of-block))
;; TODO: Use tree-sitter to figure out the block in `python-ts-mode'.
(dolist (mode '(python-mode python-ts-mode))
(add-to-list
'hs-special-modes-alist
`(,mode
,python-nav-beginning-of-block-regexp
;; Use the empty string as end regexp so it doesn't default to
;; "\\s)". This way parens at end of defun are properly hidden.
""
"#"
python-hideshow-forward-sexp-function
nil
python-nav-beginning-of-block
python-hideshow-find-next-block
python-info-looking-at-beginning-of-block)))
(setq-local outline-regexp (python-rx (* space) block-start))
(setq-local outline-level