branch: elpa/casual
commit d785f53b011ce24340b73338ffa0695616acbd0c
Merge: 0fc5875f56 35a91af3a2
Author: Charles Choi <[email protected]>
Commit: GitHub <[email protected]>

    Merge pull request #116 from 
kickingvegas/111-add-global-stack-operations-to-all-calc-menus
    
    Add TAB binding for calc-roll-down
---
 docs/images/casual-calc-tmenu.png | Bin 385045 -> 326986 bytes
 lisp/casual-calc-stack.el         |   2 +-
 lisp/casual-calc-utils.el         |  12 +++++++++++-
 lisp/casual-calc.el               |   1 +
 tests/test-casual-calc.el         |   3 ++-
 5 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/docs/images/casual-calc-tmenu.png 
b/docs/images/casual-calc-tmenu.png
index c9ebd3a382..ae37bd28f9 100644
Binary files a/docs/images/casual-calc-tmenu.png and 
b/docs/images/casual-calc-tmenu.png differ
diff --git a/lisp/casual-calc-stack.el b/lisp/casual-calc-stack.el
index 0070c106db..806fc4c390 100644
--- a/lisp/casual-calc-stack.el
+++ b/lisp/casual-calc-stack.el
@@ -62,7 +62,7 @@ from `kill-ring' operations."
 
 ;; Wrapped Functions
 (defun casual-calc--stack-roll-all ()
-  "Roll down stack accounting for all elements currently on the stack.
+  "Roll down all elements currently on the stack.
 
 * References
 - info node `(calc) Stack Manipulation'
diff --git a/lisp/casual-calc-utils.el b/lisp/casual-calc-utils.el
index be72c1786f..bd52872377 100644
--- a/lisp/casual-calc-utils.el
+++ b/lisp/casual-calc-utils.el
@@ -112,6 +112,16 @@ plain ASCII-range string."
   (interactive)
   (call-interactively #'calc-edit))
 
+(transient-define-suffix casual-calc-roll-down ()
+  "Roll stack down.
+
+Invokes command `calc-roll-down'."
+  :transient t
+  :key "TAB"
+  :description "Roll↓"
+  (interactive)
+  (call-interactively #'calc-roll-down))
+
 (defconst casual-calc-operators-group
   ["Operators"
     ("+" "add" casual-calc--plus :transient t)
@@ -141,11 +151,11 @@ plain ASCII-range string."
           (casual-lib-quit-one)
           (casual-calc-algebraic-entry)
           (casual-calc-enter)
+          (casual-calc-roll-down)
           (casual-calc-pop)
           (casual-calc-undo-suffix)
           (casual-lib-quit-all)])
 
-
 (defun casual-calc--percent-of ()
   "Apply percentage at top of stack (1:) to value above it (2:).
 
diff --git a/lisp/casual-calc.el b/lisp/casual-calc.el
index b21f114367..dd4e00d741 100644
--- a/lisp/casual-calc.el
+++ b/lisp/casual-calc.el
@@ -142,6 +142,7 @@
           (casual-lib-quit-one)
           (casual-calc-algebraic-entry)
           (casual-calc-enter)
+          (casual-calc-roll-down)
           (casual-calc-pop)
           (casual-calc-undo-suffix)
           ("q" "Quit" calc-quit)])
diff --git a/tests/test-casual-calc.el b/tests/test-casual-calc.el
index 470708986c..d4dab778fe 100644
--- a/tests/test-casual-calc.el
+++ b/tests/test-casual-calc.el
@@ -82,7 +82,8 @@
                         ("C" . casual-calc--stack-clear)
                         ("L" . casual-calc--stack-last)
                         ("w" . casual-calc--copy-as-kill)
-                        ("z" . casual-calc-variable-crud-tmenu))))
+                        ("z" . casual-calc-variable-crud-tmenu)
+                        ("     " . casual-calc-roll-down))))
     (casualt-suffix-testbench-runner test-vectors
                                      #'casual-calc-tmenu
                                      '(lambda () (random 5000))))

Reply via email to