abo-abo / ace-window

Quickly switch windows in Emacs
977 stars 87 forks source link

Reimplementing hydra? #104

Closed DamienCassou closed 6 years ago

DamienCassou commented 6 years ago

I have the impression that aw-dispatch-alist is just an half-backed hydra. What about rewriting that in terms of an hydra?

abo-abo commented 6 years ago

I have the impression that aw-dispatch-alist is just an half-backed hydra. What about rewriting that in terms of an hydra?

The packages do share these ideas, I often use ideas in one package to prototype the other.

But aw-dispatch-alist is a bit different: it's an interface that takes (lambda (window) ...), while defhydra takes (lambda () (interactive) ...).

Thanks to the interface, the dispatch works similarly on windows to how vi does it with text objects. So it's rather more a half-baked evil.el rather than hydra.el.

But it could also be useful to add ace-window-hydra with similar functionality. The reason why it's not there by default is that people (myself included) don't like gratuitous dependencies.

For references see how ivy-hydra.el (a separate package) rebinds M-o in ivy from ivy-dispatching-done to ivy-dispatching-done-hydra. Another reference is hydra-lispy-x from lispy.el: the ? binding gradually shows more help.