51b9685d9aa164e419d6d7f1f659e9d7cce086cb
evil-leap
- Tasks
- Many targets w/ SPC and DEL labels
- Passthrough input on fail
- Leap backwards
- Equivalence classes
- Match newlines with SPC SPC
- Leap from window
- Only leap to visible targets
- Avoid leaping to target directly under point
- Leap any direction
- Cleanup w/
pre-command-hook - Extract equivalence classes from
char-fold-table - Documentation
- Correctly use
countprefix argument - Support input methods
Evil's answer to Neovim's answer to the mouse
Tasks
DONE Passthrough input on fail
CLOSED: [2024-11-23 Sat 09:07]
DONE Leap backwards
CLOSED: [2024-11-24 Sun 08:55]
TODO Equivalence classes
TODO Match newlines with SPC SPC
TODO Leap from window
TODO Only leap to visible targets
Currently, we take care to only search from the point to the beg/end of the window, but we don't account for concealed text, e.g. folded org subtrees.
evil-snipe achieves this by, in their search function, checking if the target is invisible, and skipping the match, if so.
(defun evil-snipe--seek-re (data scope count)
(let ((regex (mapconcat #'cdr data ""))
result)
(when (and evil-snipe-skip-leading-whitespace
(looking-at-p "[ \t]+")
(string-match-p "^[ \t]+" (mapconcat #'car data "")))
(setq regex (concat regex "[^ \t]")))
(when (setq result (re-search-forward regex scope t count))
; ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
(if (or (invisible-p (match-beginning 0)) ; ←
(invisible-p (1- (match-end 0)))) ; ←
(evil-snipe--seek-re data scope count) ; ←
; ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
result))))
TODO Avoid leaping to target directly under point
Currently, if the point is on a, that very ab pair will be given as a potential target.
↓
ab
TODO Leap any direction
TODO
Cleanup w/ pre-command-hook
TODO
Extract equivalence classes from char-fold-table
TODO Documentation
TODO Clarify terminology
- "Auto-jump" really means "call
evil-leap-actionautomatically." - "Jump to target" really means "call
evil-leap-actionon target."
TODO
Comparison with evil-snipe
TODO
Comparison with leap.nvim
TODO
Correctly use count prefix argument
TODO Support input methods
Description
Languages
Emacs Lisp
100%