branch: elpa/casual
commit 4db2371ec6c7915453efeb4e92f62deb6383b6b0
Merge: f478f82a9c cdc0ffd2a8
Author: Charles Choi <[email protected]>
Commit: GitHub <[email protected]>

    Merge pull request #207 from 
kickingvegas/merge-development-to-main-20250519_091237
    
    Merge development to main 20250519_091237
---
 docs/editkit.org                                   |   2 +-
 .../casual-editkit-emoji-symbols-screenshot.png    | Bin 143252 -> 147538 bytes
 docs/images/casual-re-builder-screenshot.png       | Bin 392891 -> 146213 bytes
 lisp/Makefile-calc.make                            |  13 ++++++++++++-
 lisp/Makefile-calendar.make                        |   7 +++++++
 lisp/casual-agenda-utils.el                        |  13 ++++++-------
 lisp/casual-calc-utils.el                          |   8 ++++----
 lisp/casual-calendar-constants.el                  |  14 ++++++--------
 lisp/casual-editkit-constants.el                   |  12 ++++++------
 lisp/casual-editkit-utils.el                       |   8 +++++++-
 lisp/casual-re-builder-utils.el                    |  12 ++++++++++++
 lisp/casual-re-builder.el                          |   3 +++
 lisp/casual.el                                     |   2 +-
 tests/test-casual-editkit-utils.el                 |   4 +++-
 tests/test-casual-re-builder.el                    |   1 +
 15 files changed, 69 insertions(+), 30 deletions(-)

diff --git a/docs/editkit.org b/docs/editkit.org
index 7de190f0dc..7c24d640e7 100644
--- a/docs/editkit.org
+++ b/docs/editkit.org
@@ -158,7 +158,7 @@ Commands edit, add, or jump to a bookmark are captured in 
this menu.
 
 ** Emoji & Symbol Insertion (~casual-editkit-emoji-symbol-tmenu~)
 
-Insert emoji and symbol characters with this menu. Smart quotes are also 
supported by this menu and can be applied to a text region.
+Insert emoji and symbol characters with this menu. Smart quotes are also 
supported by this menu and can be applied to a text region. This menu also 
offers the command ~electric-quote-mode~ which is bound to ~Q~.w
 
 [[file:images/casual-editkit-emoji-symbols-screenshot.png]]
 
diff --git a/docs/images/casual-editkit-emoji-symbols-screenshot.png 
b/docs/images/casual-editkit-emoji-symbols-screenshot.png
index 44b22e588c..e75940a853 100644
Binary files a/docs/images/casual-editkit-emoji-symbols-screenshot.png and 
b/docs/images/casual-editkit-emoji-symbols-screenshot.png differ
diff --git a/docs/images/casual-re-builder-screenshot.png 
b/docs/images/casual-re-builder-screenshot.png
index 0fa797de00..f34f8a6bbd 100644
Binary files a/docs/images/casual-re-builder-screenshot.png and 
b/docs/images/casual-re-builder-screenshot.png differ
diff --git a/lisp/Makefile-calc.make b/lisp/Makefile-calc.make
index bf6be3608f..2021e916e4 100644
--- a/lisp/Makefile-calc.make
+++ b/lisp/Makefile-calc.make
@@ -48,6 +48,17 @@ casual-calc-symbolic.el
 
 ELISP_TEST_INCLUDES=casual-calc-test-utils.el
 
-PACKAGE_PATHS=-L $(CASUAL_LIB_LISP_DIR)
+PACKAGE_PATHS=                                 \
+-L $(EMACS_ELPA_DIR)/compat-current            \
+-L $(EMACS_ELPA_DIR)/seq-current               \
+-L $(EMACS_ELPA_DIR)/transpose-frame-current   \
+-L $(EMACS_ELPA_DIR)/transient-current         \
+-L $(EMACS_ELPA_DIR)/magit-current             \
+-L $(EMACS_ELPA_DIR)/magit-section-current     \
+-L $(EMACS_ELPA_DIR)/dash-current              \
+-L $(EMACS_ELPA_DIR)/with-editor-current       \
+-L $(EMACS_ELPA_DIR)/symbol-overlay-current    \
+-L $(CASUAL_LIB_LISP_DIR)
+
 
 include Makefile--rules.make
diff --git a/lisp/Makefile-calendar.make b/lisp/Makefile-calendar.make
index 88a07a2eec..01caf35f33 100644
--- a/lisp/Makefile-calendar.make
+++ b/lisp/Makefile-calendar.make
@@ -25,7 +25,14 @@ ELISP_TEST_INCLUDES=casual-calendar-test-utils.el
 PACKAGE_PATHS=                                 \
 -L $(EMACS_ELPA_DIR)/compat-current            \
 -L $(EMACS_ELPA_DIR)/seq-current               \
+-L $(EMACS_ELPA_DIR)/transpose-frame-current   \
 -L $(EMACS_ELPA_DIR)/transient-current         \
+-L $(EMACS_ELPA_DIR)/magit-current             \
+-L $(EMACS_ELPA_DIR)/magit-section-current     \
+-L $(EMACS_ELPA_DIR)/dash-current              \
+-L $(EMACS_ELPA_DIR)/with-editor-current       \
+-L $(EMACS_ELPA_DIR)/symbol-overlay-current    \
 -L $(CASUAL_LIB_LISP_DIR)
 
+
 include Makefile--rules.make
diff --git a/lisp/casual-agenda-utils.el b/lisp/casual-agenda-utils.el
index c9772a84cb..8f5e6ec2d7 100644
--- a/lisp/casual-agenda-utils.el
+++ b/lisp/casual-agenda-utils.el
@@ -55,16 +55,17 @@ is non-nil, then the Unicode symbol is returned, otherwise a
 plain ASCII-range string."
   (casual-lib-unicode-db-get key casual-agenda-unicode-db))
 
-(defconst casual-agenda-navigation-group
+;; Casual Agenda menu navigation group.
+(transient-define-group casual-agenda-navigation-group
   [:class transient-row
    (casual-lib-quit-one)
    ("RET" "Open" org-agenda-switch-to)
    ("." "Now" casual-agenda-goto-now :transient t)
    ("C-/" "Undo" org-agenda-undo :transient t)
-   (casual-lib-quit-all)]
-  "Casual Agenda menu navigation group.")
+   (casual-lib-quit-all)])
 
-(defconst casual-agenda-agenda-navigation-group
+;; Casual Agenda navigation group within an Agenda.
+(transient-define-group casual-agenda-agenda-navigation-group
   ["Navigation"
     ["Line"
      ("p" "↑" org-agenda-previous-line
@@ -117,9 +118,7 @@ plain ASCII-range string."
      ("M-j" "🚀 ⏰" org-agenda-clock-goto
       :inapt-if-not org-clocking-p
       :description (lambda () (format "%s…" (casual-agenda-unicode-get 
:jumpclocked)))
-      :transient t)]]
-  "Casual Agenda navigation group within an Agenda.")
-
+      :transient t)]])
 
 (defun casual-agenda-goto-now ()
   "Redo agenda view and move point to current time \"now\"."
diff --git a/lisp/casual-calc-utils.el b/lisp/casual-calc-utils.el
index 89a76a14e8..4eef9ff4c3 100644
--- a/lisp/casual-calc-utils.el
+++ b/lisp/casual-calc-utils.el
@@ -122,7 +122,7 @@ Invokes command `calc-roll-down'."
   (interactive)
   (call-interactively #'calc-roll-down))
 
-(defconst casual-calc-operators-group
+(transient-define-group casual-calc-operators-group
   ["Operators"
     ("+" "add" casual-calc--plus :transient t)
     ("-" "sub" casual-calc--minus :transient t)
@@ -130,7 +130,7 @@ Invokes command `calc-roll-down'."
     ("/" "div" casual-calc--divide :transient t)
     ("%" "mod" casual-calc--mod :transient t)])
 
-(defconst casual-calc-operators-group-row
+(transient-define-group casual-calc-operators-group-row
   ["Operators"
    :class transient-row
     ("+" "add" casual-calc--plus :transient t)
@@ -139,14 +139,14 @@ Invokes command `calc-roll-down'."
     ("/" "div" casual-calc--divide :transient t)
     ("%" "mod" casual-calc--mod :transient t)])
 
-(defconst casual-calc-basic-operators-group
+(transient-define-group casual-calc-basic-operators-group
   ["Operators"
     ("+" "add" casual-calc--plus :transient t)
     ("-" "sub" casual-calc--minus :transient t)
     ("*" "mul" casual-calc--times :transient t)
     ("/" "div" casual-calc--divide :transient t)])
 
-(defconst casual-calc-navigation-group
+(transient-define-group casual-calc-navigation-group
   [:class transient-row
           (casual-lib-quit-one)
           (casual-calc-algebraic-entry)
diff --git a/lisp/casual-calendar-constants.el 
b/lisp/casual-calendar-constants.el
index e7f532c1f3..5463519286 100644
--- a/lisp/casual-calendar-constants.el
+++ b/lisp/casual-calendar-constants.el
@@ -57,8 +57,8 @@ is non-nil, then the Unicode symbol is returned, otherwise a
 plain ASCII-range string."
   (casual-lib-unicode-db-get key casual-calendar-unicode-db))
 
-
-(defconst casual-calendar--navigation-group
+;; Transient navigation group for calendar.
+(transient-define-group casual-calendar--navigation-group
   ["Navigation"
    ["Day"
     ("b" "Behind" calendar-backward-day
@@ -137,16 +137,14 @@ plain ASCII-range string."
      :transient t)
     ("C-l" "Redraw" calendar-redraw
      :description (lambda () (casual-calendar-unicode-get :redraw))
-     :transient t)]]
-  "Transient navigation group for calendar.")
-
+     :transient t)]])
 
-(defconst casual-calendar--menu-navigation-group
+;; Transient menu navigation group for calendar.
+(transient-define-group casual-calendar--menu-navigation-group
   [:class transient-row
    (casual-lib-quit-one)
    ("RET" "Dismiss" transient-quit-all)
-   (casual-lib-quit-all)]
-  "Transient menu navigation group for calendar.")
+   (casual-lib-quit-all)])
 
 (provide 'casual-calendar-constants)
 ;;; casual-calendar-constants.el ends here
diff --git a/lisp/casual-editkit-constants.el b/lisp/casual-editkit-constants.el
index cdd96f9b3d..eb5a663d4b 100644
--- a/lisp/casual-editkit-constants.el
+++ b/lisp/casual-editkit-constants.el
@@ -57,21 +57,21 @@ is non-nil, then the Unicode symbol is returned, otherwise a
 plain ASCII-range string."
   (casual-lib-unicode-db-get key casual-editkit-unicode-db))
 
-(defconst casual-editkit-navigation-group
+;; Transient navigation group for Casual EditKit menus.
+(transient-define-group casual-editkit-navigation-group
   [:class transient-row
    (casual-lib-quit-one)
    ("U" "Undo" undo :transient t)
-   (casual-lib-quit-all)]
-  "Transient navigation group for Casual EditKit menus.")
+   (casual-lib-quit-all)])
 
-(defconst casual-editkit-cursor-navigation-group
+;; Transient cursor navigation group for Casual EditKit menus.
+(transient-define-group casual-editkit-cursor-navigation-group
   ["Cursor"
    :class transient-row
    ("<left>" "←" backward-char :transient t)
    ("<right>" "→" forward-char :transient t)
    ("<up>" "↑" previous-line :transient t)
-   ("<down>" "↓" next-line :transient t)]
-  "Transient cursor navigation group for Casual EditKit menus.")
+   ("<down>" "↓" next-line :transient t)])
 
 (provide 'casual-editkit-constants)
 ;;; casual-editkit-constants.el ends here
diff --git a/lisp/casual-editkit-utils.el b/lisp/casual-editkit-utils.el
index 5e2fc56f19..c19d0f1150 100644
--- a/lisp/casual-editkit-utils.el
+++ b/lisp/casual-editkit-utils.el
@@ -29,6 +29,7 @@
 (require 'simple)
 (require 'text-mode)
 (require 'tabify)
+(require 'electric)
 (require 'casual-editkit-constants)
 (require 'casual-editkit-settings)
 
@@ -270,7 +271,12 @@ inserting common miscellaneous symbols."
    ("\"" "“double”" casual-editkit-smart-double-quote-dwim)
    ("_" "„low”" casual-editkit-smart-low-quote-dwim)
    ("c" "«comillas»" casual-editkit-smart-comillas-quote-dwim)
-   ("a" "’" (lambda () (interactive) (insert "’")))]
+   ("a" "’" (lambda () (interactive) (insert "’")))
+   ("Q" "Electric Quote"
+    electric-quote-mode
+    :description
+    (lambda () (casual-lib-checkbox-label
+                electric-quote-mode "Electric Quote")))]
 
   ["Misc"
    :class transient-row
diff --git a/lisp/casual-re-builder-utils.el b/lisp/casual-re-builder-utils.el
index 37772655bc..87ca1a58f1 100644
--- a/lisp/casual-re-builder-utils.el
+++ b/lisp/casual-re-builder-utils.el
@@ -108,5 +108,17 @@ This is useful for commands such as `dired-do-find-regexp' 
and
   (interactive)
   (info "(elisp) Rx Notation"))
 
+(defun casual-reb-occur ()
+  "Run `occur' with the current `reb-regexp' in the `re-builder' target buffer.
+
+This code is taken from Argletrough post on Reddit.
+URL 
`https://www.reddit.com/r/emacs/comments/1j2qs3f/integration_of_rebuilder_and_occur_use_rx_syntax/'"
+  (interactive)
+  (let ((target-buffer reb-target-buffer)
+        (regexp (with-current-buffer reb-target-buffer reb-regexp)))
+    (reb-quit)
+    (switch-to-buffer target-buffer)
+    (occur regexp)))
+
 (provide 'casual-re-builder-utils)
 ;;; casual-re-builder-utils.el ends here
diff --git a/lisp/casual-re-builder.el b/lisp/casual-re-builder.el
index b7249e8ad1..e31502d843 100644
--- a/lisp/casual-re-builder.el
+++ b/lisp/casual-re-builder.el
@@ -83,6 +83,9 @@ regexp interactively.
     ("s" "Subexp mode" reb-enter-subexp-mode)
     ("f" "Force update" reb-force-update :transient t)]]
 
+  ["Misc"
+   ("o" "Occur" casual-reb-occur)]
+
   [:class transient-row
           (casual-lib-quit-one)
           ("i" "ⓘ Regexp Syntax" casual-re-builder-regexp-info
diff --git a/lisp/casual.el b/lisp/casual.el
index a05a8b81f4..f8eaa015a4 100644
--- a/lisp/casual.el
+++ b/lisp/casual.el
@@ -5,7 +5,7 @@
 ;; Author: Charles Choi <[email protected]>
 ;; URL: https://github.com/kickingvegas/casual
 ;; Keywords: tools, wp
-;; Version: 2.4.2
+;; Version: 2.4.3-rc.1
 ;; Package-Requires: ((emacs "29.1") (transient "0.6.0"))
 
 ;; This program is free software; you can redistribute it and/or modify
diff --git a/tests/test-casual-editkit-utils.el 
b/tests/test-casual-editkit-utils.el
index 504cef3f50..5268f88fce 100644
--- a/tests/test-casual-editkit-utils.el
+++ b/tests/test-casual-editkit-utils.el
@@ -142,7 +142,8 @@
   (let ((tmpfile "casual-editkit-emoji-symbols-tmenu.txt"))
     (casualt-editkit-setup tmpfile)
     (emacs-lisp-mode)
-    (cl-letf ((casualt-mock #'emoji-search))
+    (cl-letf ((casualt-mock #'emoji-search)
+              (casualt-mock #'electric-quote-mode))
       (let ((test-vectors
              '((:binding "e😀" :command emoji-search)
                (:binding "l" :command emoji-list)
@@ -154,6 +155,7 @@
                (:binding "\"" :command casual-editkit-smart-double-quote-dwim)
                (:binding "_" :command casual-editkit-smart-low-quote-dwim)
                (:binding "c" :command casual-editkit-smart-comillas-quote-dwim)
+               (:binding "Q" :command electric-quote-mode)
                ;;(:binding "i" :command insert-char)
                )))
 
diff --git a/tests/test-casual-re-builder.el b/tests/test-casual-re-builder.el
index e724453c88..170975a0f4 100644
--- a/tests/test-casual-re-builder.el
+++ b/tests/test-casual-re-builder.el
@@ -45,6 +45,7 @@
     (push (casualt-suffix-test-vector "," #'casual-re-builder-settings-tmenu) 
test-vectors)
     (push (casualt-suffix-test-vector "i" #'casual-re-builder-regexp-info) 
test-vectors)
     (push (casualt-suffix-test-vector "q" #'reb-quit) test-vectors)
+    (push (casualt-suffix-test-vector "o" #'casual-reb-occur) test-vectors)
     (casualt-suffix-testbench-runner test-vectors
                                      #'casual-re-builder-tmenu
                                      '(lambda () (random 5000))))

Reply via email to