diff options
author | Peter Stephenson <pws@zsh.org> | 2014-04-07 09:58:30 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2014-04-07 09:58:30 +0100 |
commit | 47c440aa2a141b1af60c2df192ff257b902dd177 (patch) | |
tree | e169916202fd08bef21d878a010e172efa7023fd | |
parent | 21d01000bee06c38dad3201f9609445d10b5de57 (diff) | |
download | zsh-47c440aa2a141b1af60c2df192ff257b902dd177.tar.gz zsh-47c440aa2a141b1af60c2df192ff257b902dd177.tar.xz zsh-47c440aa2a141b1af60c2df192ff257b902dd177.zip |
32527: zcalc-auto-insert key binding for use in zcalc
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Doc/Zsh/contrib.yo | 19 | ||||
-rw-r--r-- | Functions/Misc/zcalc | 3 | ||||
-rw-r--r-- | Functions/Zle/zcalc-auto-insert | 8 |
4 files changed, 36 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 0488ea158..f91b414f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-04-07 Peter Stephenson <p.stephenson@samsung.com> + + * 32527: Doc/Zsh/contrib.yo, Functions/Misc/zcalc, + Functions/Zle/zcalc-auto-insert: zcalc-auto-insert widget + for key binding in zcalc. + 2014-04-06 Barton E. Schaefer <schaefer@brasslantern.com> * unposted: Doc/Zsh/options.yo: fix typo in option cross-reference diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo index a4000fd12..9f59f231d 100644 --- a/Doc/Zsh/contrib.yo +++ b/Doc/Zsh/contrib.yo @@ -2473,6 +2473,25 @@ The style tt(whence) is available in the context tt(:zle:$WIDGET); this may be set to an array to give the command and options that will be used to investigate the command word found. The default is tt(whence -c). ) +tindex(zcalc-auto-insert) +item(tt(zcalc-auto-insert))( +This function is useful together with the tt(zcalc) function described in +ifzman(the section Mathematical Functions)\ +ifnzman(noderef(Mathematical Functions)). +It should be bound to a key representing a binary operator such +as `tt(PLUS())', `tt(-)', `tt(*)' or `tt(/)'. When running in zcalc, +if the key occurs at the start of the line or immediately following +an open parenthesis, the text tt("ans ") is inserted before the +representation of the key itself. This allows easy use of the +answer from the previous calculation in the current line. The +text to be inserted before the symbol typed can be modified by setting +the variable tt(ZCALC_AUTO_INSERT_PREFIX). + +Hence, for example, typing `tt(PLUS()12)' followed by return adds 12 +to the previous result. + +When not in zcalc, the key simply inserts the symbol itself. +) enditem() subsect(Utility Functions) diff --git a/Functions/Misc/zcalc b/Functions/Misc/zcalc index b79644687..63f67adb0 100644 --- a/Functions/Misc/zcalc +++ b/Functions/Misc/zcalc @@ -96,6 +96,9 @@ emulate -L zsh setopt extendedglob +# For testing in ZLE functions. +local ZCALC_ACTIVE=1 + # TODO: make local variables that shouldn't be visible in expressions # begin with _. local line ans base defbase forms match mbegin mend psvar optlist opt arg diff --git a/Functions/Zle/zcalc-auto-insert b/Functions/Zle/zcalc-auto-insert new file mode 100644 index 000000000..c9a5c8867 --- /dev/null +++ b/Functions/Zle/zcalc-auto-insert @@ -0,0 +1,8 @@ +# Bind to a binary operator keystroke for use with zcalc + +if [[ -n $ZCALC_ACTIVE ]]; then + if [[ $CURSOR -eq 0 || $LBUFFER[-1] = "(" ]]; then + LBUFFER+=${ZCALC_AUTO_INSERT_PREFIX:-"ans "} + fi +fi +zle .self-insert |