cba55fdc78f51a06ba0280613e33e63076ec0df5
evil-leap
- Tasks
- Equivalence classes
- Many targets w/ SPC and DEL labels
- Match newlines with SPC SPC
- Passthrough input on fail
- Leap backwards
- 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
TODO Equivalence classes
TODO Match newlines with SPC SPC
DONE Passthrough input on fail
CLOSED: [2024-11-23 Sat 09:07]
DONE Leap backwards
CLOSED: [2024-11-24 Sun 08:55]
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%