branch: externals/hyperbole
commit 6396282f2bb7a5f75f9705a2dc36f42c1ff845cf
Merge: 5339ee4415 5b6855e225
Author: bw <r...@gnu.org>
Commit: bw <r...@gnu.org>

    Merge branch 'master' into rsw
---
 ChangeLog          |  6 ++++++
 test/hypb-tests.el | 43 ++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 28fbec07b3..8f2593c5c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,6 +22,12 @@
   hsys-org.el (hsys-org-consult-grep): Optionally pass in a prompt for the
    'hsys-consult-grep' call.
 
+2025-05-24  Mats Lidell  <ma...@gnu.org>
+
+* test/hypb-tests.el (hypb--in-string-p--max-lines): Add test of max-lines.
+
+* test/hypb-tests.el (hypb--in-string-p): Add basic test of quote handling.
+
 2025-05-23  Bob Weiner  <r...@gnu.org>
 
 * hywiki.el (hywiki-word-with-optional-suffix-regexp): Change #section
diff --git a/test/hypb-tests.el b/test/hypb-tests.el
index deec828e01..722c6f7f80 100644
--- a/test/hypb-tests.el
+++ b/test/hypb-tests.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <ma...@gnu.org>
 ;;
 ;; Orig-Date:     5-Apr-21 at 18:53:10
-;; Last-Mod:     30-Dec-24 at 23:37:03 by Mats Lidell
+;; Last-Mod:     24-May-25 at 00:14:16 by Mats Lidell
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -84,6 +84,47 @@ See Emacs bug#74042 related to usage of texi2any."
         (should (set:equal '("Key Index" "Function Index" "Concept Index") 
(Info-index-nodes))))
     (hy-test-helpers:kill-buffer "*info*")))
 
+(ert-deftest hypb--in-string-p ()
+  "Verify basic quote handing by `hypb:in-string-p'."
+  :expected-result :failed
+  (let ((s '(("\"str\"" . text-mode)            ;; double-quotes:
+             ("'str'" . python-mode)            ;; Python single-quotes:
+             ("'''str'''" . python-mode)        ;; Python triple single-quotes:
+             ("\"\"\"str\"\"\"" . python-mode)  ;; Python triple double-quotes:
+             ("``str''" . texinfo-mode))))      ;; Texinfo open and close 
quotes:
+    (dolist (v s)
+      (let ((str (car v))
+            (mode (cdr v)))
+        (with-temp-buffer
+          (funcall mode)
+          (insert str)
+          (goto-char (/ (length str) 2))
+          (should (hypb:in-string-p))
+          (let ((seq (hypb:in-string-p nil t)))
+            (should (sequencep seq))
+            (cl-destructuring-bind (val beg end) seq
+              (should val)
+              (should (and beg end (= (- end beg) 3))))))))))
+
+(ert-deftest hypb--in-string-p--max-lines ()
+  "Verify max lines handing by `hypb:in-string-p'."
+  (with-temp-buffer
+    (insert "\
+\"1
+2
+\"")
+    (goto-line 1) (move-to-column 1)
+    ;; First line. Line starts with quote.
+    (should-not (hypb:in-string-p 1))
+    (should-not (hypb:in-string-p 2))
+    (should (hypb:in-string-p 3))
+    (should (hypb:in-string-p 99))
+
+    ;; Second line. No quote on the line.
+    (goto-line 2)
+    (dotimes (l 5)
+      (should-not (hypb:in-string-p l)))))
+
 ;; This file can't be byte-compiled without the `el-mock' package (because of
 ;; the use of the `with-mock' macro), which is not a dependency of Hyperbole.
 ;;  Local Variables:

Reply via email to