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

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

[nongnu] elpa/julia-mode 0f1f8f57e4 2/5: factor out the logic of julia--


From: ELPA Syncer
Subject: [nongnu] elpa/julia-mode 0f1f8f57e4 2/5: factor out the logic of julia--should-move-point to a function
Date: Tue, 9 Apr 2024 10:00:48 -0400 (EDT)

branch: elpa/julia-mode
commit 0f1f8f57e468094fcf175643dd9e223c21a7e36b
Author: Tamás K. Papp <tkpapp@gmail.com>
Commit: Tamás K. Papp <tkpapp@gmail.com>

    factor out the logic of julia--should-move-point to a function
---
 julia-mode-tests.el | 40 ++++++++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 16 deletions(-)

diff --git a/julia-mode-tests.el b/julia-mode-tests.el
index 24eca8bf7f..45db3c7810 100644
--- a/julia-mode-tests.el
+++ b/julia-mode-tests.el
@@ -64,28 +64,36 @@
   "Assert that TEXT at position POS gets font-locked with FACE in 
`julia-mode'."
   `(should (eq ,face (julia--get-font-lock ,text ,pos))))
 
+(defun julia--should-move-point-helper (text fun from to &optional end arg)
+  "Takes the same arguments as `julia--should-move-point', returns a cons of 
the expected and the actual point."
+  (with-temp-buffer
+    (julia-mode)
+    (insert text)
+    (indent-region (point-min) (point-max))
+    (goto-char (point-min))
+    (if (stringp from)
+        (re-search-forward from)
+      (goto-char from))
+    (funcall fun arg)
+    (let ((actual-to (point))
+          (expected-to
+           (if (stringp to)
+               (progn (goto-char (point-min))
+                      (re-search-forward to)
+                      (if end (goto-char (match-end 0))
+                        (goto-char (match-beginning 0))
+                        (point-at-bol)))
+             to)))
+      (cons expected-to actual-to))))
+
 (defmacro julia--should-move-point (text fun from to &optional end arg)
   "With TEXT in `julia-mode', after calling FUN, the point should move FROM\
 to TO.  If FROM is a string, move the point to matching string before calling
 function FUN.  If TO is a string, match resulting point to point a beginning of
 matching line or end of match if END is non-nil.  Optional ARG is passed to 
FUN."
   (declare (indent defun))
-  `(with-temp-buffer
-     (julia-mode)
-     (insert ,text)
-     (indent-region (point-min) (point-max))
-     (goto-char (point-min))
-     (if (stringp ,from)
-         (re-search-forward ,from)
-       (goto-char ,from))
-     (funcall ,fun ,arg)
-     (should (eq (point) (if (stringp ,to)
-                             (progn (goto-char (point-min))
-                                    (re-search-forward ,to)
-                                    (if ,end (goto-char (match-end 0))
-                                      (goto-char (match-beginning 0))
-                                      (point-at-bol)))
-                           ,to)))))
+  `(let ((positions (julia--should-move-point-helper ,text ,fun ,from ,to ,end 
,arg)))
+     (should (eq (car positions) (cdr positions)))))
 
 ;;; indent tests
 



reply via email to

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