branch: elpa/casual
commit ea4fb1d27ce33f35c9e637c72739317cfabfd362
Author: Charles Choi <[email protected]>
Commit: Charles Choi <[email protected]>

    Add isearch customization switches
    
    - Added menu items to casual-isearch-settings-tmenu to customize:
      - isearch-allow-motion
      - isearch-allow-scroll
      - isearch-lazy-highlight
      - isearch-lazy-count
    
    - Re-layout casual-isearch-settings-tmenu
---
 lisp/casual-isearch-settings.el       | 56 ++++++++++++++++++++++++++++++-----
 tests/test-casual-isearch-settings.el | 38 +++++++++++++++---------
 2 files changed, 73 insertions(+), 21 deletions(-)

diff --git a/lisp/casual-isearch-settings.el b/lisp/casual-isearch-settings.el
index cbe36a692e..341a9ce22e 100644
--- a/lisp/casual-isearch-settings.el
+++ b/lisp/casual-isearch-settings.el
@@ -28,23 +28,65 @@
 
 (transient-define-prefix casual-isearch-settings-tmenu ()
   "Casual I-Search settings menu."
+  :refresh-suffixes t
   ["I-Search: Settings"
-   ["Customize"
-    ("G" "I-Search Group" casual-isearch--customize-group)
-    (casual-lib-customize-unicode)
-    (casual-lib-customize-hide-navigation)]]
+    ["Allow"
+     ("s" "Scroll" casual-isearch--customize-allow-scroll)
+     ("m" "Motion" casual-isearch--customize-allow-motion
+      :description (lambda ()
+                     (casual-lib-checkbox-label isearch-allow-motion 
"Motion")))]
+
+    ["Lazy"
+     ("h" "Highlight" casual-isearch--customize-lazy-highlight)
+     ("c" "Count" casual-isearch--customize-lazy-count
+      :description (lambda ()
+                     (casual-lib-checkbox-label isearch-lazy-count "Count")))]
+
+    ["Misc"
+     ("G" "Group" casual-isearch--customize-group)]]
 
   [:class transient-row
-          (casual-lib-quit-one)
-          ("a" "About" casual-isearch-about :transient nil)
+   (casual-lib-customize-unicode)
+   (casual-lib-customize-hide-navigation)]
 
-          (casual-lib-quit-all)])
+  [:class transient-row
+   (casual-lib-quit-one)
+   ("a" "About" casual-isearch-about :transient nil)
+   (casual-lib-quit-all)])
 
 (defun casual-isearch--customize-group ()
   "Customize I-Search group."
   (interactive)
   (customize-group "isearch"))
 
+(defun casual-isearch--customize-allow-scroll ()
+  "Whether scrolling is allowed during incremental search.
+
+Customizes variable `isearch-allow-scroll'."
+  (interactive)
+  (customize-variable 'isearch-allow-scroll))
+
+(defun casual-isearch--customize-allow-motion ()
+  "Whether to allow movement between isearch matches by cursor motion commands.
+
+Customizes variable `isearch-allow-motion'."
+  (interactive)
+  (customize-variable 'isearch-allow-motion))
+
+(defun casual-isearch--customize-lazy-count ()
+  "Show match numbers in the search prompt.
+
+Customizes variable `isearch-lazy-count'."
+  (interactive)
+  (customize-variable 'isearch-lazy-count))
+
+(defun casual-isearch--customize-lazy-highlight ()
+  "Controls the lazy-highlighting during incremental search.
+
+Customizes variable `isearch-lazy-highlight'."
+  (interactive)
+  (customize-variable 'isearch-lazy-highlight))
+
 (defun casual-isearch-about-isearch ()
   "Casual I-Search is a Transient menu for I-Search.
 
diff --git a/tests/test-casual-isearch-settings.el 
b/tests/test-casual-isearch-settings.el
index 5d2b17a58b..57280e4b75 100644
--- a/tests/test-casual-isearch-settings.el
+++ b/tests/test-casual-isearch-settings.el
@@ -25,23 +25,33 @@
 ;;; Code:
 
 (require 'ert)
+(require 'casual-lib-test-utils)
 (require 'casual-isearch-test-utils)
 (require 'casual-isearch-settings)
 
-(ert-deftest test-casual-isearch-settings-tmenu-bindings ()
-  (casualt-setup)
-  (let ((test-vectors (list)))
-    (push (casualt-suffix-test-vector "G" #'casual-isearch--customize-group) 
test-vectors)
-
-    (push (casualt-suffix-test-vector "u" 
#'casual-lib-customize-casual-lib-use-unicode) test-vectors)
-    (push (casualt-suffix-test-vector "n" 
#'casual-lib-customize-casual-lib-hide-navigation) test-vectors)
-    (push (casualt-suffix-test-vector "a" #'casual-isearch-about) test-vectors)
-
-
-    (casualt-suffix-testbench-runner test-vectors
-                                     #'casual-isearch-settings-tmenu
-                                     '(lambda () (random 5000))))
-  (casualt-breakdown t))
+(ert-deftest test-casual-isearch-settings-tmenu ()
+  (let ()
+    (casualt-setup)
+    (cl-letf ((casualt-mock #'casual-isearch--customize-group)
+              (casualt-mock #'casual-isearch--customize-allow-scroll)
+              (casualt-mock #'casual-isearch--customize-allow-motion)
+              (casualt-mock #'casual-isearch--customize-lazy-count)
+              (casualt-mock #'casual-isearch--customize-lazy-highlight))
+
+      (let ((test-vectors
+             '((:binding "s" :command casual-isearch--customize-allow-scroll)
+               (:binding "m" :command casual-isearch--customize-allow-motion)
+               (:binding "h" :command casual-isearch--customize-lazy-highlight)
+               (:binding "c" :command casual-isearch--customize-lazy-count)
+               (:binding "G" :command casual-isearch--customize-group)
+               (:binding "u" :command 
casual-lib-customize-casual-lib-use-unicode)
+               (:binding "n" :command 
casual-lib-customize-casual-lib-hide-navigation)
+               (:binding "a" :command casual-isearch-about))))
+
+        (casualt-suffix-testcase-runner test-vectors
+                                        #'casual-isearch-settings-tmenu
+                                        '(lambda () (random 5000)))))
+    (casualt-breakdown)))
 
 (ert-deftest test-casual-isearch-about ()
   (should (stringp (casual-isearch-about))))

Reply via email to