mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
feat(navigation): setup better-jumper to jump back after goto def style operations
This commit is contained in:
@@ -69,6 +69,7 @@
|
||||
;; Navigation
|
||||
(require 'siren-anzu)
|
||||
(require 'siren-avy)
|
||||
(require 'siren-better-jumper)
|
||||
(require 'siren-centaur-tabs)
|
||||
(require 'siren-consult)
|
||||
(require 'siren-dired)
|
||||
|
||||
66
modules/navigation/siren-better-jumper.el
Normal file
66
modules/navigation/siren-better-jumper.el
Normal file
@@ -0,0 +1,66 @@
|
||||
;;; siren-better-jumper.el --- jimeh's Emacs Siren: better-jumper configuration.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Basic configuration for better-jumper.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(use-package better-jumper
|
||||
:hook
|
||||
(prog-mode . better-jumper-local-mode)
|
||||
|
||||
:general
|
||||
("M-g M-b" 'better-jumper-jump-backward)
|
||||
("M-g M-f" 'better-jumper-jump-forward)
|
||||
|
||||
:custom
|
||||
(better-jumper-context 'window) ;; default: 'window
|
||||
(better-jumper-new-window-behavior 'copy) ;; default: 'copy
|
||||
(better-jumper-add-jump-behavior 'replace) ;; default: 'append
|
||||
(better-jumper-max-length 100) ;; default: 100
|
||||
|
||||
:preface
|
||||
(defgroup siren-better-jumper nil
|
||||
"Siren specific tweaks to tar-bar-mode."
|
||||
:group 'better-jumper)
|
||||
|
||||
(defvar siren-better-jumper-adviced-funs '()
|
||||
"List of functions which have been adviced.")
|
||||
|
||||
(defun siren-better-jumper-set-advice (orig-fun &rest args)
|
||||
"Advice for ORIG-FUN to call `better-jumper-set-jump' before and after it."
|
||||
(better-jumper-set-jump)
|
||||
(apply orig-fun args)
|
||||
(better-jumper-set-jump))
|
||||
|
||||
(defun siren-better-jumper-setup (funs)
|
||||
"Advice list of FUNS with `siren-better-jumper-set-advice'."
|
||||
(when (boundp 'funs)
|
||||
(mapc (lambda (fun)
|
||||
(advice-add fun :around #'siren-better-jumper-set-advice)
|
||||
(add-to-list 'siren-better-jumper-adviced-funs fun))
|
||||
funs)))
|
||||
|
||||
(defun siren-better-jumper-teardown ()
|
||||
"Remove all advices setup with `siren-better-jumper-setup'."
|
||||
(when (boundp 'siren-better-jumper-adviced-funs)
|
||||
(mapc (lambda (fun)
|
||||
(advice-remove fun #'siren-better-jumper-set-advice))
|
||||
siren-better-jumper-adviced-funs)
|
||||
(setq siren-better-jumper-adviced-funs '())))
|
||||
|
||||
:config
|
||||
(with-eval-after-load 'dumb-jump
|
||||
(siren-better-jumper-setup '(dumb-jump-go)))
|
||||
(with-eval-after-load 'lsp-mode
|
||||
(siren-better-jumper-setup '(lsp-find-definition)))
|
||||
(with-eval-after-load 'lsp-ui-peek
|
||||
(siren-better-jumper-setup '(lsp-ui-peek-find-definitions
|
||||
lsp-ui-peek-find-references)))
|
||||
(with-eval-after-load 'xref
|
||||
(siren-better-jumper-setup '(xref-find-definitions
|
||||
xref-find-references))))
|
||||
|
||||
(provide 'siren-better-jumper)
|
||||
;;; siren-better-jumper.el ends here
|
||||
@@ -7,6 +7,7 @@
|
||||
("applescript-mode" . "9b84a7cb74d687745df37ba15113933fc6256274")
|
||||
("avy" . "ba5f035be33693d1a136a5cbeedb24327f551a92")
|
||||
("beginend" . "eb77d82dc88846c5715353b7fd99c9030a2e2ee7")
|
||||
("better-jumper" . "47622213783ece37d5337dc28d33b530540fc319")
|
||||
("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470")
|
||||
("bundler.el" . "43efb6be4ed118b06d787ce7fbcffd68a31732a7")
|
||||
("caddyfile-mode" . "fc41148f5a7eb320f070666f046fb9d88cf17680")
|
||||
|
||||
Reference in New Issue
Block a user