* hydra.el (hydra-repeat): Update.
It's possible now, for instance with `hydra-vi' to do this:
4j.2..
This will forward-line 4 times (4j), 4 times (.), 2 times (2.), 2
times (.).
Fixes#92
* hydra.el (hydra--make-defun): Update.
(hydra--head-name): Change signature, since body is needed to determine
the color. When the head will exit, add "-and-exit" to its name (except
for the nil head and body).
(defhydra): Update the call to `hydra--head-name', since it's not valid
until the head has a hint.
* hydra-test.el (hydra-blue-toggle): Update.
(hydra-amaranth-vi): Update.
(hydra-zoom-duplicate-1): Update.
(hydra-zoom-duplicate-2): Update.
Fixes#84
* hydra.el (hydra--format): Update. Treat variables in the same way as
s-expressions.
* hydra-test.el (hydra-format-2): Add test.
(hydra-format-with-sexp-2): Add test.
Fixes#85
* hydra.el (hydra--make-defun): When both :timeout and :post are given,
if `hydra-timeout' runs out, it will call :post before
`hydra-keyboard-quit'.
(hydra-timeout): Update to call function if it's given. Always call
`hydra-keyboard-quit' afterwards.
For this example code:
(global-set-key
(kbd "C-c t")
(defhydra test-hydra-b
(:timeout 2.0 :post (message "test b quit"))
"test b"
("x" (message "x"))
("y" (message "y"))
("q" nil "quit")))
The message "test b quit" is issued:
- on "q"
- on "x" or "y", after one of them has started the timer, and the timer
ran out. The timer is set to 2.0 seconds, and is reset each time "x"
or "y" is pressed.
- not on a plain "C-c t"
Fixes#34
Calling only `hydra-keyboard-quit' on switch-frame event was
effectively stopping the original frame switch. This change adds a
call to the original handler after calling `hydra-keyboard-quit'.
See #73
* hydra.el: Add `hydra--handle-switch-frame'
* hydra-test.el: Update
Fixes#77
* lv.el (lv-window): Defer `truncate-lines' to `lv-message'. Set window
hscroll to 0, just in case.
(lv-message): If STR is one-line, set `truncate-lines' to nil, otherwise
set it to t. Make `window-min-height' buffer-local and set it to the
amount of newlines in STR.
Re #40.
* hydra-init.el: Add bare init.
Now, typing:
make compile
in the hydra repository will start an "emacs -q" with all hydras from
hydra-examples.el defined. Thus you can test that they work for you.
The simplest one is "<f2> g", you can type that in any buffer.
If you want to test with a different version of emacs, just type e.g.:
make compile emacs=emacs24
Re #70.
* hydra.el (hydra--handle-nonhead): Bind the plain `hydra-keyboard-quit'
only when there's no :post.
(defhydra): When there's :post, add another head for keyboard quit.
* hydra-test.el (hydra-amaranth-vi): Update test.
Fixes#67.
* hydra-ox.el (hydra-ox): New radiogroup.
(hydra-ox-html): New hydra.
(hydra-ox-latex): New hydra.
(hydra-ox-text): New hydra.
(hydra-ox): New hydra that includes the above three hydras.
(org-mode-map): Add test binding.
Re #66.
* hydra.el (hydra-set-transient-map): Avoid compiler warnings.
(hydra--format): Add s? to regex.
- %(test) will translate to (format "%S" (test))
- %s(test) will translate to (format "%s" (test))
The width specifiers should work for both, e.g. % -10(test) or %
-10s(test).
Example:
(defhydra hydra-marked-items (dired-mode-map "")
"
Number of marked items: %(length (dired-get-marked-files))
Directory size: %s(shell-command-to-string \"du -hs\")
"
("m" dired-mark "mark"))
Fixes#65.
* hydra.el (hydra--make-defun): Call `hydra-timeout' with :timeout if
it's given.
(hydra-timer): New var to hold the timer.
(hydra-timeout): New function to call `hydra-keyboard-quit' with delay.
(hydra-keyboard-quit): Cancel `hydra-timeout' timer.
Re #34.