emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[nongnu] elpa/sweeprolog 1e09cf648d 1/2: * (sweeprolog-beginning-of-pred


From: ELPA Syncer
Subject: [nongnu] elpa/sweeprolog 1e09cf648d 1/2: * (sweeprolog-beginning-of-predicate-at-point): fix hang near bob
Date: Sat, 10 Dec 2022 02:59:35 -0500 (EST)

branch: elpa/sweeprolog
commit 1e09cf648d8bc151015e9cefe6341044b385352b
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>

    * (sweeprolog-beginning-of-predicate-at-point): fix hang near bob
---
 sweeprolog-tests.el | 11 ++++++++++-
 sweeprolog.el       |  3 ++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/sweeprolog-tests.el b/sweeprolog-tests.el
index eb08bcc8b4..cf0d331151 100644
--- a/sweeprolog-tests.el
+++ b/sweeprolog-tests.el
@@ -587,7 +587,7 @@ foo.
 foo :- Body.
 "))))
 
-(ert-deftest dwim-next-clause-module-qualified-cdg ()
+(ert-deftest dwim-next-clause-module-qualified-dcg ()
   "Tests inserting new module-qualified DCG non-terminal."
   (let ((temp (make-temp-file "sweeprolog-test"
                               nil
@@ -1020,6 +1020,15 @@ scasp_and_show(Q, Model, Tree) :-
     (sweeprolog-end-of-top-term)
     (should (= (point) 252))))
 
+(ert-deftest beginning-of-predicate-definition-near-bob ()
+  "Test finding the beginning of the first predicate definition."
+  (with-temp-buffer
+    (sweeprolog-mode)
+    (insert "foo :- bar.")
+    (goto-char (point-min))
+    (sweeprolog-beginning-of-predicate-at-point)
+    (should (= (point) (point-min)))))
+
 (ert-deftest align-spacs-in-line-comment ()
   "Test using `sweeprolog-align-spaces' in a line comment."
   (with-temp-buffer
diff --git a/sweeprolog.el b/sweeprolog.el
index 2161dc5aef..9fabeb0280 100644
--- a/sweeprolog.el
+++ b/sweeprolog.el
@@ -2962,7 +2962,8 @@ predicate definition at or directly above POINT."
       (while (and point (not (bobp)))
         (sweeprolog-beginning-of-top-term)
         (backward-char 1)
-        (if-let* ((ndef (sweeprolog-definition-at-point (point)))
+        (if-let* ((moved (< (point) point))
+                  (ndef (sweeprolog-definition-at-point (point)))
                   (nfun (cadr ndef))
                   (nari (caddr ndef))
                   (same (and (string= fun nfun)



reply via email to

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