Clean up treesit-default-defun-skipper and add comments

* lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some
small issue, add comment.
This commit is contained in:
Yuan Fu 2022-12-29 01:28:25 -08:00
parent 9371d488be
commit 38c35bf0f6
No known key found for this signature in database
GPG key ID: 56E19BC57664A442

View file

@ -1744,13 +1744,17 @@ this function depends on `treesit-defun-type-regexp' and
This function tries to move to the beginning of a line, either by
moving to the empty newline after a defun, or to the beginning of
the current line if the beginning of the defun is indented."
(cond ((and (looking-at (rx (* (or " " "\\t")) "\n"))
(not (looking-at (rx bol))))
(goto-char (match-end 0)))
((save-excursion
(skip-chars-backward " \t")
(eq (point) (line-beginning-position)))
(goto-char (line-beginning-position)))))
;; Moving forward, point at the end of a line and not already on an
;; empty line: go to BOL of the next line (which hopefully is an
;; empty line).
(cond ((and (looking-at (rx (* (or " " "\t")) "\n"))
(not (bolp)))
(forward-line 1))
;; Moving backward, but there are some whitespace (and only
;; whitespace) between point and BOL: go back to BOL.
((looking-back (rx (+ (or " " "\t")))
(line-beginning-position))
(beginning-of-line))))
;; prev-sibling:
;; 1. end-of-node before pos