emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 38c35bf0f6: Clean up treesit-default-defun-skipper and add comm


From: Yuan Fu
Subject: emacs-29 38c35bf0f6: Clean up treesit-default-defun-skipper and add comments
Date: Thu, 29 Dec 2022 04:43:38 -0500 (EST)

branch: emacs-29
commit 38c35bf0f6a938001dfecbe439addf8fb62897c6
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>

    Clean up treesit-default-defun-skipper and add comments
    
    * lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some
    small issue, add comment.
---
 lisp/treesit.el | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/lisp/treesit.el b/lisp/treesit.el
index 4ee0fba79b..0ba4395a6b 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]