-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A symbol-overlay-jump-avy function for the symbol-overlay-map #65
Comments
Neat, but I feel like your |
It's true, I originally created it as an |
I think so, but I don't see much added value tbh, and I don't think we'd pull it into |
I assumed a few |
It's still a hard dependency if you can hit a key and get an error that some other package is not installed. It's possible to work around this, but it's bad practice, and I'd gripe about it if submitted to MELPA for my review. Generally if there's a little add-on like this, it's preferable to publish it as a separate package which declares its dependencies and byte-compiles cleanly. |
I opened an issue with avy about this and will see what comes of it. abo-abo/avy#312 |
Jumping for current symbol and among all symbols is so useful for me, hope it'll benefit others as well. ;; ### avy jump
(defun my/symbol-overlay/avy-jump ()
(interactive)
(avy-with my/symbol-overlay/avy-jump
(avy-jump
(symbol-overlay-regexp (symbol-overlay-get-symbol))
:window-flip nil
:beg nil
:end nil)))
(keymap-set symbol-overlay-map "j" #'my/symbol-overlay/avy-jump)
;; ### avy jump among all
(defun my/symbol-overlay/avy-jump/all ()
(interactive)
(let* ((overlays (symbol-overlay-get-list 0))
(symbols (seq-map
(lambda (overlay)
(overlay-get overlay 'symbol))
overlays))
(symbols (seq-uniq symbols))
(symbols-regex (seq-map
(lambda (symbol)
(symbol-overlay-regexp symbol))
symbols))
(symbols-regex (string-join symbols-regex "\\|")))
(message (format "regex: %s (%s)" symbols-regex (length symbols-regex)))
(if (string-empty-p symbols-regex)
(message "No symbol overlay")
(avy-with my/symbol-overlay/avy-jump/all
(avy-jump
symbols-regex
:window-flip nil
:beg nil
:end nil)))))
(keymap-global-set "s-o j" #'my/symbol-overlay/avy-jump/all)
(keymap-set symbol-overlay-map "J" #'my/symbol-overlay/avy-jump/all) |
I haven't tested this a ton but it seems to work and seems useful. Perhaps there are better ways to implement it. I'm sure you don't want to add a dependency on
avy
, but if the user has it installed, I think it would be useful to bind this tosymbol-overlay-map
for them.The text was updated successfully, but these errors were encountered: