def-advice!->defadvice! & conform to new advice conventions
This commit does two things: - Renames def-advice! to defadvice!, in the spirit of naming convenience macros after the function/macro they enhance or replace. - Correct the names of advice functions to indicate visibility and intent. A public advice function like doom-set-jump-a is meant to be used elsewhere. A private one like +dired--cleanup-header-line-a shouldn't -- it likely won't work anywhere but the function(s) it was made to advise.
This commit is contained in:
parent
8aa7772e4e
commit
82ae3a73f3
43 changed files with 126 additions and 121 deletions
|
@ -168,7 +168,7 @@ successfully sets indent_style/indent_size.")
|
|||
(setq save-place-file (concat doom-cache-dir "saveplace")
|
||||
save-place-forget-unreadable-files t
|
||||
save-place-limit 200)
|
||||
(def-advice! doom--recenter-on-load-saveplace-a (&rest _)
|
||||
(defadvice! doom--recenter-on-load-saveplace-a (&rest _)
|
||||
"Recenter on cursor when loading a saved place."
|
||||
:after-while #'save-place-find-file-hook
|
||||
(if buffer-file-name (ignore-errors (recenter))))
|
||||
|
@ -199,14 +199,14 @@ successfully sets indent_style/indent_size.")
|
|||
(better-jumper-mode +1)
|
||||
(add-hook 'better-jumper-post-jump-hook #'recenter)
|
||||
|
||||
(defun doom-set-jump-a (orig-fn &rest args)
|
||||
(defadvice! doom-set-jump-a (orig-fn &rest args)
|
||||
"Set a jump point and ensure ORIG-FN doesn't set any new jump points."
|
||||
(better-jumper-set-jump (if (markerp (car args)) (car args)))
|
||||
(let ((evil--jumps-jumping t)
|
||||
(better-jumper--jumping t))
|
||||
(apply orig-fn args)))
|
||||
|
||||
(defun doom-set-jump-maybe-a (orig-fn &rest args)
|
||||
(defadvice! doom-set-jump-maybe-a (orig-fn &rest args)
|
||||
"Set a jump point if ORIG-FN returns non-nil."
|
||||
(let ((origin (point-marker))
|
||||
(result
|
||||
|
@ -257,7 +257,7 @@ successfully sets indent_style/indent_size.")
|
|||
(push '(t tab-width) dtrt-indent-hook-generic-mapping-list)
|
||||
|
||||
(defvar dtrt-indent-run-after-smie)
|
||||
(def-advice! doom--fix-broken-smie-modes-a (orig-fn arg)
|
||||
(defadvice! doom--fix-broken-smie-modes-a (orig-fn arg)
|
||||
"Some smie modes throw errors when trying to guess their indentation, like
|
||||
`nim-mode'. This prevents them from leaving Emacs in a broken state."
|
||||
:around #'dtrt-indent-mode
|
||||
|
@ -381,11 +381,11 @@ successfully sets indent_style/indent_size.")
|
|||
`(("." . ,(concat doom-cache-dir "undo-tree-hist/"))))
|
||||
|
||||
(when (executable-find "zstd")
|
||||
(def-advice! doom-undo-tree-make-history-save-file-name-a (file)
|
||||
(defadvice! doom--undo-tree-make-history-save-file-name-a (file)
|
||||
:filter-return #'undo-tree-make-history-save-file-name
|
||||
(concat file ".zst")))
|
||||
|
||||
(def-advice! doom-undo-tree-strip-text-properties-a (&rest _)
|
||||
(defadvice! doom--undo-tree-strip-text-properties-a (&rest _)
|
||||
:before #'undo-list-transfer-to-tree
|
||||
(dolist (item buffer-undo-list)
|
||||
(and (consp item)
|
||||
|
|
|
@ -357,31 +357,6 @@ If N and M = 1, there's no benefit to using this macro over `remove-hook'.
|
|||
(cl-loop for (_var _val hook fn) in (doom--setq-hook-fns hooks vars 'singles)
|
||||
collect `(remove-hook ',hook #',fn))))
|
||||
|
||||
(defmacro def-advice! (symbol arglist docstring where places &rest body)
|
||||
"Define an advice called NAME and add it to PLACES.
|
||||
|
||||
ARGLIST is as in `defun'. WHERE is a keyword as passed to `advice-add', and
|
||||
PLACE is the function to which to add the advice, like in `advice-add'.
|
||||
DOCSTRING and BODY are as in `defun'."
|
||||
(declare (doc-string 3) (indent defun))
|
||||
(unless (stringp docstring)
|
||||
(push places body)
|
||||
(setq places where
|
||||
where docstring
|
||||
docstring nil))
|
||||
`(progn
|
||||
(fset ',symbol (lambda ,arglist ,@body))
|
||||
(put ',symbol 'function-documentation
|
||||
(format "%sThis is %s advice for the following functions: %s"
|
||||
,(if docstring (concat docstring "\n\n") "")
|
||||
,where
|
||||
(mapconcat (lambda (p) (format "`%s'" p))
|
||||
(doom-enlist ,places) ", ")))
|
||||
(dolist (target (doom-enlist ,places))
|
||||
(if (eq ,where :remove)
|
||||
(advice-remove target #',symbol)
|
||||
(advice-add target ,where #',symbol)))))
|
||||
|
||||
(defmacro file-exists-p! (spec &optional directory)
|
||||
"Returns non-nil if the files in SPEC all exist.
|
||||
|
||||
|
@ -490,5 +465,33 @@ writes to `standard-output'."
|
|||
(save-silently t))
|
||||
(prog1 ,@forms (message ""))))))
|
||||
|
||||
|
||||
;;
|
||||
;;; Definers
|
||||
|
||||
(define-obsolete-function-alias 'def-advice! 'defadvice!)
|
||||
(defmacro defadvice! (symbol arglist &optional docstring &rest body)
|
||||
"Define an advice called NAME and add it to PLACES.
|
||||
|
||||
ARGLIST is as in `defun'. WHERE is a keyword as passed to `advice-add', and
|
||||
PLACE is the function to which to add the advice, like in `advice-add'.
|
||||
DOCSTRING and BODY are as in `defun'.
|
||||
|
||||
\(fn SYMBOL ARGLIST &optional DOCSTRING &rest [WHERE PLACES...] BODY\)"
|
||||
(declare (doc-string 3) (indent defun))
|
||||
(unless (stringp docstring)
|
||||
(push docstring body)
|
||||
(setq docstring nil))
|
||||
(let (where-alist)
|
||||
(while (keywordp (car body))
|
||||
(push `(cons ,(pop body) (doom-enlist ,(pop body)))
|
||||
where-alist))
|
||||
`(progn
|
||||
(defun ,symbol ,arglist ,docstring ,@body)
|
||||
,(when where-alist
|
||||
`(dolist (targets (list ,@(nreverse where-alist)))
|
||||
(dolist (target (cdr targets))
|
||||
(advice-add target (car targets) #',symbol)))))))
|
||||
|
||||
(provide 'core-lib)
|
||||
;;; core-lib.el ends here
|
||||
|
|
|
@ -85,7 +85,7 @@ missing) and shouldn't be deleted.")
|
|||
("org" . ,(concat proto "://orgmode.org/elpa/")))))
|
||||
|
||||
;; Don't save `package-selected-packages' to `custom-file'
|
||||
(def-advice! doom--package-inhibit-custom-file-a (&optional value)
|
||||
(defadvice! doom--package-inhibit-custom-file-a (&optional value)
|
||||
:override #'package--save-selected-packages
|
||||
(if value (setq package-selected-packages value)))
|
||||
|
||||
|
@ -111,7 +111,7 @@ missing) and shouldn't be deleted.")
|
|||
autoload-compute-prefixes nil)
|
||||
|
||||
;; Straight is hardcoded to operate out of ~/.emacs.d/straight. Not on my watch!
|
||||
(def-advice! doom--straight-use-local-dir-a (orig-fn &rest args)
|
||||
(defadvice! doom--straight-use-local-dir-a (orig-fn &rest args)
|
||||
:around #'straight--emacs-dir
|
||||
(let ((user-emacs-directory doom-local-dir))
|
||||
(apply orig-fn args)))
|
||||
|
|
|
@ -118,7 +118,7 @@ c) are not valid projectile projects."
|
|||
(unless (executable-find "tr")
|
||||
(setq projectile-git-submodule-command nil))))
|
||||
|
||||
(def-advice! doom--projectile-cache-timers-a ()
|
||||
(defadvice! doom--projectile-cache-timers-a ()
|
||||
"Persist `projectile-projects-cache-time' across sessions, so that
|
||||
`projectile-files-cache-expire' checks won't reset when restarting Emacs."
|
||||
:before #'projectile-serialize-cache
|
||||
|
@ -128,7 +128,7 @@ c) are not valid projectile projects."
|
|||
(setq projectile-projects-cache-time
|
||||
(projectile-unserialize doom-projectile-cache-timer-file)))
|
||||
|
||||
(def-advice! doom--projectile-default-generic-command-a (orig-fn &rest args)
|
||||
(defadvice! doom--projectile-default-generic-command-a (orig-fn &rest args)
|
||||
"If projectile can't tell what kind of project you're in, it issues an error
|
||||
when using many of projectile's command, e.g. `projectile-compile-command',
|
||||
`projectile-run-project', `projectile-test-project', and
|
||||
|
@ -142,7 +142,7 @@ the command instead."
|
|||
;; Projectile root-searching functions can cause an infinite loop on TRAMP
|
||||
;; connections, so disable them.
|
||||
;; TODO Is this still necessary?
|
||||
(def-advice! doom--projectile-locate-dominating-file-a (orig-fn file name)
|
||||
(defadvice! doom--projectile-locate-dominating-file-a (orig-fn file name)
|
||||
"Don't traverse the file system if on a remote connection."
|
||||
:around #'projectile-locate-dominating-file
|
||||
(when (and (stringp file)
|
||||
|
|
|
@ -217,7 +217,7 @@ read-only or not file-visiting."
|
|||
|
||||
(setq confirm-nonexistent-file-or-buffer t)
|
||||
|
||||
(def-advice! doom-switch-to-fallback-buffer-maybe-a (orig-fn)
|
||||
(defadvice! doom--switch-to-fallback-buffer-maybe-a (orig-fn)
|
||||
"Switch to `doom-fallback-buffer' if on last real buffer.
|
||||
|
||||
Advice for `kill-current-buffer'. If in a dedicated window, delete it. If there
|
||||
|
@ -457,8 +457,8 @@ treat Emacs as a non-application window."
|
|||
all-the-icons-material
|
||||
all-the-icons-alltheicon)
|
||||
:init
|
||||
(def-advice! doom--disable-all-the-icons-in-tty-a (orig-fn &rest args)
|
||||
"all-the-icons doesn't work in the terminal, so we \"disable\" them."
|
||||
(defadvice! doom--disable-all-the-icons-in-tty-a (orig-fn &rest args)
|
||||
"Return a blank string in tty Emacs, which doesn't support multiple fonts."
|
||||
:around '(all-the-icons-octicon all-the-icons-material
|
||||
all-the-icons-faicon all-the-icons-fileicon
|
||||
all-the-icons-wicon all-the-icons-alltheicon)
|
||||
|
@ -620,14 +620,14 @@ Fonts are specified by `doom-font', `doom-variable-pitch-font',
|
|||
(let ((doom--prefer-theme-elc t))
|
||||
(load-theme doom-theme t)))))
|
||||
|
||||
(def-advice! doom--run-load-theme-hooks-a (theme &optional _no-confirm no-enable)
|
||||
(defadvice! doom--run-load-theme-hooks-a (theme &optional _no-confirm no-enable)
|
||||
"Set up `doom-load-theme-hook' to run after `load-theme' is called."
|
||||
:after #'load-theme
|
||||
(unless no-enable
|
||||
(setq doom-theme theme)
|
||||
(run-hooks 'doom-load-theme-hook)))
|
||||
|
||||
(def-advice! doom--prefer-compiled-theme-a (orig-fn &rest args)
|
||||
(defadvice! doom--prefer-compiled-theme-a (orig-fn &rest args)
|
||||
"Make `load-theme' prioritize the byte-compiled theme for a moderate boost in
|
||||
startup (or theme switch) time, so long as `doom--prefer-theme-elc' is non-nil."
|
||||
:around #'load-theme
|
||||
|
|
|
@ -92,7 +92,8 @@ playback.")
|
|||
|
||||
(add-hook 'circe-channel-mode-hook #'turn-on-visual-line-mode)
|
||||
|
||||
(def-advice! +irc-circe-disconnect-hook-a (&rest _)
|
||||
(defadvice! +irc--circe-run-disconnect-hook-a (&rest _)
|
||||
"Runs `+irc-disconnect-hook' after circe disconnects."
|
||||
:after #'circe--irc-conn-disconnected
|
||||
(run-hooks '+irc-disconnect-hook))
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
;; Allow users to switch between backends on the fly. E.g. C-x C-s followed
|
||||
;; by C-x C-n, will switch from `company-yasnippet' to
|
||||
;; `company-dabbrev-code'.
|
||||
(def-advice! +company-abort-previous-a (&rest _)
|
||||
(defadvice! +company--abort-previous-a (&rest _)
|
||||
:before #'company-begin-backend
|
||||
(company-abort)))
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ be negative.")
|
|||
:init
|
||||
(when (and EMACS26+ (featurep! +childframe))
|
||||
(setq helm-display-function #'+helm-posframe-display-fn)
|
||||
(def-advice! +helm--fix-get-font-height-a (orig-fn position)
|
||||
(defadvice! +helm--fix-get-font-height-a (orig-fn position)
|
||||
"Fix \"Specified window is not displaying the current buffer\" error."
|
||||
:around #'posframe--get-font-height
|
||||
(ignore-errors (funcall orig-fn position))))
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
(insert "~/")
|
||||
(call-interactively #'self-insert-command))))
|
||||
|
||||
(def-advice! +ido-sort-mtime-a ()
|
||||
(defadvice! +ido--sort-mtime-a ()
|
||||
"Sort ido filelist by mtime instead of alphabetically."
|
||||
:override #'ido-sort-mtime
|
||||
(setq ido-temp-list
|
||||
|
|
|
@ -93,7 +93,7 @@ immediately runs it on the current candidate (ending the ivy session)."
|
|||
(after! yasnippet
|
||||
(add-to-list 'yas-prompt-functions #'+ivy-yas-prompt nil #'eq))
|
||||
|
||||
(def-advice! +ivy--inhibit-ivy-in-evil-ex-a (orig-fn &rest args)
|
||||
(defadvice! +ivy--inhibit-in-evil-ex-a (orig-fn &rest args)
|
||||
"`ivy-completion-in-region' struggles with completing certain
|
||||
evil-ex-specific constructs, so we disable it solely in evil-ex."
|
||||
:around #'evil-ex
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
(use-package! expand-region
|
||||
:commands (er/contract-region er/mark-symbol er/mark-word)
|
||||
:config
|
||||
(def-advice! doom--quit-expand-region-a ()
|
||||
(defadvice! doom--quit-expand-region-a ()
|
||||
"Properly abort an expand-region region."
|
||||
:before '(evil-escape doom/escape)
|
||||
(when (memq last-command '(er/expand-region er/contract-region))
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
doom-leader-key doom-localleader-key
|
||||
doom-leader-alt-key doom-localleader-alt-key))
|
||||
|
||||
(def-advice! +default-evil-collection-disable-blacklist-a (orig-fn)
|
||||
(defadvice! +default-evil-collection-disable-blacklist-a (orig-fn)
|
||||
:around #'evil-collection-vterm-toggle-send-escape ; allow binding to ESC
|
||||
(let (evil-collection-key-blacklist)
|
||||
(apply orig-fn)))
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
;; Nicer code-folding overlays (with fringe indicators)
|
||||
hs-set-up-overlay #'+fold-hideshow-set-up-overlay-fn)
|
||||
|
||||
(def-advice! +fold-hideshow-ensure-mode-a (&rest _)
|
||||
(defadvice! +fold--hideshow-ensure-mode-a (&rest _)
|
||||
"Ensure `hs-minor-mode' is enabled."
|
||||
:before '(hs-toggle-hiding hs-hide-block hs-hide-level hs-show-all hs-hide-all)
|
||||
(unless (bound-and-true-p hs-minor-mode)
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
|
||||
;; When running edit-lines, point will return (position + 1) as a result of
|
||||
;; how evil deals with regions
|
||||
(def-advice! +multiple-cursors-adjust-mark-for-evil-a (&rest _)
|
||||
(defadvice! +multiple--cursors-adjust-mark-for-evil-a (&rest _)
|
||||
:before #'mc/edit-lines
|
||||
(when (and (bound-and-true-p evil-mode)
|
||||
(not (memq evil-state '(insert emacs))))
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
|
||||
(defvar +objed--extra-face-remaps nil)
|
||||
|
||||
(def-advice! +objed-add-face-remaps-a (&rest _)
|
||||
(defadvice! +objed--add-face-remaps-a (&rest _)
|
||||
"Add extra face remaps when objed activates."
|
||||
:after 'objed--init
|
||||
(when (memq 'objed-hl (assq 'hl-line face-remapping-alist))
|
||||
(push (face-remap-add-relative 'solaire-hl-line-face 'objed-hl)
|
||||
+objed--extra-face-remaps)))
|
||||
|
||||
(def-advice! +objed-remove-face-remaps-a (&rest _)
|
||||
(defadvice! +objed--remove-face-remaps-a (&rest _)
|
||||
"Remove extra face remaps when objed de-activates."
|
||||
:after 'objed--reset
|
||||
(unless (memq 'objed-hl (assq 'hl-line face-remapping-alist))
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
:defer t
|
||||
:init (setq aya-persist-snippets-dir (concat doom-etc-dir "auto-snippets/"))
|
||||
:config
|
||||
(def-advice! +snippets-inhibit-yas-global-mode (orig-fn &rest args)
|
||||
(defadvice! +snippets--inhibit-yas-global-mode (orig-fn &rest args)
|
||||
"auto-yasnippet enables `yas-global-mode'. This is obnoxious for folks like
|
||||
us who use yas-minor-mode and enable yasnippet more selectively. This advice
|
||||
swaps `yas-global-mode' with `yas-minor-mode'."
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
;; confusing than helpful.
|
||||
(advice-add #'dired-k--highlight-by-file-attribyte :override #'ignore)
|
||||
|
||||
(def-advice! +dired-interrupt-process-a (orig-fn &rest args)
|
||||
(defadvice! +dired--interrupt-process-a (orig-fn &rest args)
|
||||
"Fixes dired-k killing git processes too abruptly, leaving behind disruptive
|
||||
.git/index.lock files."
|
||||
:around #'dired-k--start-git-status
|
||||
|
@ -64,7 +64,7 @@
|
|||
(symbol-function #'interrupt-process)))
|
||||
(apply orig-fn args)))
|
||||
|
||||
(def-advice! +dired-dired-k-highlight-a (orig-fn &rest args)
|
||||
(defadvice! +dired--dired-k-highlight-a (orig-fn &rest args)
|
||||
"Butt out if the requested directory is remote (i.e. through tramp)."
|
||||
:around #'dired-k--highlight
|
||||
(unless (file-remote-p default-directory)
|
||||
|
@ -84,7 +84,7 @@
|
|||
|
||||
(set-popup-rule! "^\\*ranger" :ignore t)
|
||||
|
||||
(def-advice! +dired-cleanup-header-line-a ()
|
||||
(defadvice! +dired--cleanup-header-line-a ()
|
||||
"Ranger fails to clean up `header-line-format' when it is closed, so..."
|
||||
:before #'ranger-revert
|
||||
(dolist (buffer (buffer-list))
|
||||
|
@ -93,7 +93,7 @@
|
|||
(when (equal header-line-format '(:eval (ranger-header-line)))
|
||||
(setq header-line-format nil))))))
|
||||
|
||||
(def-advice! +dired-cleanup-mouse1-bind-a ()
|
||||
(defadvice! +dired--cleanup-mouse1-bind-a ()
|
||||
"Ranger binds an anonymous function to mouse-1 after previewing a buffer
|
||||
that prevents the user from escaping the window with the mouse. This command is
|
||||
never cleaned up if the buffer already existed before ranger was initialized, so
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
(after! git-timemachine
|
||||
;; HACK Waiting for https://gitlab.com/pidu/git-timemachine/issues/77
|
||||
(def-advice! +vc-git-timemachine-show-commit-a ()
|
||||
(defadvice! +vc--git-timemachine-show-commit-a ()
|
||||
"Fix `git-timemachine-show-commit'."
|
||||
:override #'git-timemachine-show-commit
|
||||
(interactive)
|
||||
|
|
|
@ -88,9 +88,8 @@
|
|||
(let ((maildir (mu4e-message-field msg :maildir)))
|
||||
(format "%s" (substring maildir 1 (string-match-p "/" maildir 1)))))))
|
||||
|
||||
;; Refresh the current view after marks are executed
|
||||
(def-advice! +mu4e-refresh-a (&rest _) :after #'mu4e-mark-execute-all
|
||||
(mu4e-headers-rerun-search))
|
||||
(defadvice! +mu4e--refresh-current-view-a (&rest _)
|
||||
:after #'mu4e-mark-execute-all (mu4e-headers-rerun-search))
|
||||
|
||||
(when (featurep! :tools flyspell)
|
||||
(add-hook 'mu4e-compose-mode-hook #'flyspell-mode))
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
;;
|
||||
;;; Hacks
|
||||
|
||||
(def-advice! +chinese-org-html-paragraph-a (paragraph contents info)
|
||||
(defadvice! +chinese--org-html-paragraph-a (paragraph contents info)
|
||||
"Join consecutive Chinese lines into a single long line without unwanted space
|
||||
when exporting org-mode to html."
|
||||
:filter-args #'org-html-paragraph
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
;;
|
||||
;;; Hacks
|
||||
|
||||
(def-advice! +japanese-org-html-paragraph-a (paragraph contents info)
|
||||
(defadvice! +japanese--org-html-paragraph-a (paragraph contents info)
|
||||
"Join consecutive Japanese lines into a single long line without unwanted space
|
||||
when exporting org-mode to html."
|
||||
:filter-args #'org-html-paragraph
|
||||
|
|
|
@ -114,7 +114,7 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.")
|
|||
(advice-add 'describe-function-1 :after #'elisp-demos-advice-describe-function-1)
|
||||
(advice-add 'helpful-update :after #'elisp-demos-advice-helpful-update)
|
||||
:config
|
||||
(def-advice! +emacs-lisp-elisp-demos--search-a (orig-fn symbol)
|
||||
(defadvice! +emacs-lisp--add-doom-elisp-demos-a (orig-fn symbol)
|
||||
"Add Doom's own demos to help buffers."
|
||||
:around #'elisp-demos--search
|
||||
(or (funcall orig-fn symbol)
|
||||
|
|
|
@ -19,15 +19,16 @@
|
|||
|
||||
(set-company-backend! 'dante-mode #'dante-company)
|
||||
|
||||
(defun +haskell*restore-modified-state (orig-fn &rest args)
|
||||
"Dante quietly saves the current buffer (without triggering save hooks) before
|
||||
(defadvice! +haskell--restore-modified-state-a (orig-fn &rest args)
|
||||
"Marks the buffer as falsely modified.
|
||||
Dante quietly saves the current buffer (without triggering save hooks) before
|
||||
invoking flycheck, unexpectedly leaving the buffer in an unmodified state. This
|
||||
is annoying if we depend on save hooks to do work on the buffer (like
|
||||
reformatting), so we restore a (false) modified state."
|
||||
reformatting)."
|
||||
:around #'dante-async-load-current-buffer
|
||||
(let ((modified-p (buffer-modified-p)))
|
||||
(apply orig-fn args)
|
||||
(if modified-p (set-buffer-modified-p t))))
|
||||
(advice-add #'dante-async-load-current-buffer :around #'+haskell*restore-modified-state)
|
||||
|
||||
(when (featurep 'evil)
|
||||
(add-hook 'dante-mode-hook #'evil-normalize-keymaps))
|
||||
|
|
|
@ -12,7 +12,7 @@ nimsuggest isn't installed."
|
|||
|
||||
(when IS-WINDOWS
|
||||
;; TODO File PR/report upstream (https://github.com/nim-lang/nim-mode)
|
||||
(def-advice! +nim--suggest-get-dirty-dir-a ()
|
||||
(defadvice! +nim--suggest-get-dirty-dir-a ()
|
||||
"The original `nimsuggest--get-dirty-dir' incorrectly extracts the frame
|
||||
number from the string representation of `selected-frame', which can contain
|
||||
characters that are illegal on Windows, causing invalid argument errors when
|
||||
|
@ -24,7 +24,7 @@ characters that are illegal on Windows, causing invalid argument errors when
|
|||
(file-name-as-directory (concat nimsuggest-dirty-directory frame-num-str))))
|
||||
|
||||
;; TODO File PR/report upstream (https://github.com/nim-lang/nim-mode)
|
||||
(def-advice! +nim--suggest-get-temp-file-name-a (path)
|
||||
(defadvice! +nim--suggest-get-temp-file-name-a (path)
|
||||
"Removes invalid characters from the temp file path, including the unicode
|
||||
character that colon is replaced with, which is known to cause issues on
|
||||
windows."
|
||||
|
|
|
@ -137,14 +137,14 @@ when executed.")
|
|||
take one argument (the language specified in the src block, as a string). Stops
|
||||
at the first function to return non-nil.")
|
||||
|
||||
(def-advice! +org--src-lazy-load-library-a (lang)
|
||||
(defadvice! +org--src-lazy-load-library-a (lang)
|
||||
"Lazy load a babel package to ensure syntax highlighting."
|
||||
:before #'org-src--get-lang-mode
|
||||
(or (cdr (assoc lang org-src-lang-modes))
|
||||
(fboundp (intern-soft (format "%s-mode" lang)))
|
||||
(require (intern-soft (format "ob-%s" lang)) nil t)))
|
||||
|
||||
(def-advice! +org--babel-lazy-load-library-a (info)
|
||||
(defadvice! +org--babel-lazy-load-library-a (info)
|
||||
"Load babel libraries lazily when babel blocks are executed."
|
||||
:after-while #'org-babel-confirm-evaluate
|
||||
(let* ((lang (nth 0 info))
|
||||
|
@ -218,7 +218,7 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default
|
|||
(file+headline +org-capture-project-notes-file "Unreleased")
|
||||
"* TODO %?\n%i\n%a" :prepend t :kill-buffer t)))
|
||||
|
||||
(def-advice! +org-capture-expand-variable-file-a (file)
|
||||
(defadvice! +org--capture-expand-variable-file-a (file)
|
||||
"If a variable is used for a file path in `org-capture-template', it is used
|
||||
as is, and expanded relative to `default-directory'. This changes it to be
|
||||
relative to `org-directory', unless it is an absolute path."
|
||||
|
@ -227,7 +227,7 @@ relative to `org-directory', unless it is an absolute path."
|
|||
(expand-file-name (symbol-value file) org-directory)
|
||||
file))
|
||||
|
||||
(def-advice! +org--prevent-save-prompts-when-refiling-a (&rest _)
|
||||
(defadvice! +org--prevent-save-prompts-when-refiling-a (&rest _)
|
||||
"Fix #462: when refiling from org-capture, Emacs prompts to kill the
|
||||
underlying, modified buffer. This fixes that."
|
||||
:after 'org-refile
|
||||
|
@ -314,7 +314,7 @@ path too.")
|
|||
;; place, and I want to be able to refer back to old exports if needed.
|
||||
(setq +org-export-directory (expand-file-name +org-export-directory org-directory))
|
||||
|
||||
(def-advice! +org--export-output-file-name-a (args)
|
||||
(defadvice! +org--export-output-file-name-a (args)
|
||||
"Return a centralized export location unless one is provided or the current
|
||||
file isn't in `org-directory'."
|
||||
:filter-args #'org-export-output-file-name
|
||||
|
@ -445,7 +445,7 @@ file isn't in `org-directory'."
|
|||
conditions where a window's buffer hasn't changed at the time this hook is run."
|
||||
(run-at-time 0.1 nil #'recenter)))
|
||||
|
||||
(def-advice! +org--strip-properties-from-outline-a (orig-fn path &optional width prefix separator)
|
||||
(defadvice! +org--strip-properties-from-outline-a (orig-fn path &optional width prefix separator)
|
||||
"Remove link syntax and fix variable height text (e.g. org headings) in the
|
||||
eldoc string."
|
||||
:around #'org-format-outline-path
|
||||
|
@ -471,7 +471,7 @@ the current workspace."
|
|||
(get-current-persp)
|
||||
nil)))))
|
||||
|
||||
(def-advice! +org--exclude-agenda-buffers-from-recentf-a (orig-fn file)
|
||||
(defadvice! +org--exclude-agenda-buffers-from-recentf-a (orig-fn file)
|
||||
"Prevent temporarily opened agenda buffers from polluting recentf."
|
||||
:around #'org-get-agenda-file-buffer
|
||||
(let ((recentf-exclude (list (lambda (_file) t))))
|
||||
|
@ -719,7 +719,7 @@ between the two."
|
|||
browsers) can invoke specialized behavior from Emacs. Normally you'd simply
|
||||
require `org-protocol' and use it, but the package loads all of org for no
|
||||
compelling reason, so..."
|
||||
(def-advice! +org--server-visit-files-a (args)
|
||||
(defadvice! +org--server-visit-files-a (args)
|
||||
"Advise `server-visit-flist' to invoke `org-protocol' lazily."
|
||||
:filter-args #'server-visit-files
|
||||
(cl-destructuring-bind (files proc &optional nowait) args
|
||||
|
@ -853,7 +853,7 @@ compelling reason, so..."
|
|||
;;; Packages
|
||||
(after! toc-org
|
||||
(setq toc-org-hrefify-default "gh")
|
||||
(def-advice! +org-unfold-toc-a (&rest _)
|
||||
(defadvice! +org--unfold-toc-a (&rest _)
|
||||
:before #'toc-org-insert-toc
|
||||
(save-excursion
|
||||
(when (re-search-forward toc-org-toc-org-regexp (point-max) t)
|
||||
|
@ -882,7 +882,8 @@ compelling reason, so..."
|
|||
:commands org-clock-save
|
||||
:init
|
||||
(setq org-clock-persist t)
|
||||
(def-advice! +org-clock-load-a (&rest _)
|
||||
(defadvice! +org--clock-load-a (&rest _)
|
||||
"Lazy load org-clock until its commands are used."
|
||||
:before '(org-clock-in
|
||||
org-clock-out
|
||||
org-clock-in-last
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
;; Handle non-image files a little differently. Images should be inserted
|
||||
;; as-is, as image previews. Other files, like pdfs or zips, should be linked
|
||||
;; to, with an icon indicating the type of file.
|
||||
(def-advice! +org-dragndrop-insert-link-a (_link filename)
|
||||
(defadvice! +org--dragndrop-insert-link-a (_link filename)
|
||||
"Produces and inserts a link to FILENAME into the document.
|
||||
|
||||
If FILENAME is an image, produce an attach:%s path, otherwise use file:%s (with
|
||||
|
@ -50,7 +50,7 @@ an file icon produced by `+org-attach--icon')."
|
|||
(file-name-nondirectory (directory-file-name filename)))))))
|
||||
|
||||
(advice-add #'org-download--dir-2 :override #'ignore)
|
||||
(def-advice! +org-dragndrop-download-fullname-a (path)
|
||||
(defadvice! +org--dragndrop-download-fullname-a (path)
|
||||
"Write PATH relative to current file."
|
||||
:filter-return #'org-download--fullname
|
||||
(let ((dir (or (if buffer-file-name (file-name-directory buffer-file-name))
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
;; `rustic-setup-rls' uses `package-installed-p' unnecessarily, which breaks
|
||||
;; because Doom lazy loads package.el.
|
||||
(def-advice! +rust--disable-package-call-a (orig-fn &rest args)
|
||||
(defadvice! +rust--disable-package-call-a (orig-fn &rest args)
|
||||
:around #'rustic-setup-rls
|
||||
(cl-letf (((symbol-function 'package-installed-p)
|
||||
(symbol-function 'ignore)))
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
(set-popup-rule! "^\\*\\(?:trepanjs:\\(?:g\\|zsh\\|bash\\)db\\|pdb \\)"
|
||||
:size 20 :select nil :quit nil)
|
||||
|
||||
(def-advice! +debugger-cleanup-after-realgud-a (&optional buf)
|
||||
(defadvice! +debugger--cleanup-after-realgud-a (&optional buf)
|
||||
"Kill command buffer when debugging session ends (which closes its popup)."
|
||||
:after #'realgud:terminate
|
||||
(when (stringp buf)
|
||||
|
@ -81,7 +81,7 @@
|
|||
;; Monkey-patch `realgud:run-process' to run in a popup.
|
||||
;; TODO Find a more elegant solution
|
||||
;; FIXME Causes realgud:cmd-* to focus popup on every invocation
|
||||
(def-advice! +debugger-realgud-run-process-a
|
||||
(defadvice! +debugger--realgud-open-in-other-window-a
|
||||
(debugger-name script-filename cmd-args minibuffer-history-var &optional no-reset)
|
||||
:override #'realgud:run-process
|
||||
(let* ((cmd-buf (apply #'realgud-exec-shell debugger-name script-filename
|
||||
|
|
|
@ -29,14 +29,14 @@ buffer/window/frame switch, which is less expensive."
|
|||
nil `((,(regexp-opt +direnv--keywords 'symbols)
|
||||
(0 font-lock-keyword-face))))))
|
||||
|
||||
(def-advice! +direnv--update-a (&rest _)
|
||||
(defadvice! +direnv--update-a (&rest _)
|
||||
"Update direnv. Useful to advise functions that may run
|
||||
environment-sensitive logic like `flycheck-default-executable-find'. This fixes
|
||||
flycheck issues with direnv and on nix."
|
||||
:before #'flycheck-default-executable-find
|
||||
(direnv--maybe-update-environment))
|
||||
|
||||
(def-advice! +direnv--fail-gracefully-a (orig-fn)
|
||||
(defadvice! +direnv--fail-gracefully-a (orig-fn)
|
||||
"Don't try to update direnv if the executable isn't present."
|
||||
:around #'direnv--maybe-update-environment
|
||||
(if (executable-find "direnv")
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
(use-package! editorconfig
|
||||
:after-call (doom-switch-buffer-hook after-find-file)
|
||||
:config
|
||||
(def-advice! +editorconfig-smart-detection-a (orig-fn)
|
||||
(defadvice! +editorconfig--smart-detection-a (orig-fn)
|
||||
"Retrieve the properties for the current file. If it doesn't have an
|
||||
extension, try to guess one."
|
||||
:around #'editorconfig-call-editorconfig-exec
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
(set-popup-rule! "^\\*quickrun" :size 0.3 :ttl 0)
|
||||
|
||||
(def-advice! +eval-quickrun-auto-close-a (&rest _)
|
||||
(defadvice! +eval--quickrun-auto-close-a (&rest _)
|
||||
"Allows us to silently re-run quickrun from within the quickrun buffer."
|
||||
:before '(quickrun quickrun-region)
|
||||
(when-let (win (get-buffer-window quickrun--buffer-name))
|
||||
|
@ -22,7 +22,7 @@
|
|||
(message ""))
|
||||
(delete-window win)))
|
||||
|
||||
(def-advice! +eval-quickrun--outputter-replace-region-a ()
|
||||
(defadvice! +eval--quickrun-fix-evil-visual-region-a ()
|
||||
"Make `quickrun-replace-region' recognize evil visual selections."
|
||||
:override #'quickrun--outputter-replace-region
|
||||
(let ((output (buffer-substring-no-properties (point-min) (point-max))))
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
(set-popup-rule! "^\\*gist-" :ignore t)
|
||||
|
||||
(def-advice! +gist-list-render-a (orig-fn &rest args)
|
||||
(defadvice! +gist--open-in-popup-a (orig-fn &rest args)
|
||||
:around #'gist-list-render
|
||||
(funcall orig-fn (car args) t)
|
||||
(unless (cadr args)
|
||||
|
|
|
@ -108,7 +108,7 @@ this list.")
|
|||
;; xref to be one too.
|
||||
(remove-hook 'xref-backend-functions #'etags--xref-backend)
|
||||
;; ...however, it breaks `projectile-find-tag', unless we put it back.
|
||||
(def-advice! +lookup-projectile-find-tag-a (orig-fn)
|
||||
(defadvice! +lookup--projectile-find-tag-a (orig-fn)
|
||||
:around #'projectile-find-tag
|
||||
(let ((xref-backend-functions '(etags--xref-backend t)))
|
||||
(funcall orig-fn)))
|
||||
|
@ -143,7 +143,7 @@ this list.")
|
|||
;; Before `gnutls' is loaded, `gnutls-algorithm-priority' is treated as a
|
||||
;; lexical variable, which breaks `+lookup*fix-gnutls-error'
|
||||
(defvar gnutls-algorithm-priority)
|
||||
(def-advice! +lookup-fix-gnutls-error-a (orig-fn url)
|
||||
(defadvice! +lookup--fix-gnutls-error-a (orig-fn url)
|
||||
"Fixes integer-or-marker-p errors emitted from Emacs' url library,
|
||||
particularly, the `url-retrieve-synchronously' call in
|
||||
`dash-docs-read-json-from-url'. This is part of a systemic issue with Emacs 26's
|
||||
|
|
|
@ -86,14 +86,14 @@ It is passed a user and repository name.")
|
|||
(set-popup-rule! "^\\*?[0-9]+:\\(?:new-\\|[0-9]+$\\)" :size 0.45 :modeline t :ttl 0 :quit nil)
|
||||
(set-popup-rule! "^\\*\\(?:[^/]+/[^ ]+ #[0-9]+\\*$\\|Issues\\|Pull-Requests\\|forge\\)" :ignore t)
|
||||
|
||||
(def-advice! +magit--forge-get-repository-lazily-a (&rest _)
|
||||
(defadvice! +magit--forge-get-repository-lazily-a (&rest _)
|
||||
"Make `forge-get-repository' return nil if the binary isn't built yet.
|
||||
This prevents emacsql getting compiled, which appears to come out of the blue
|
||||
and blocks Emacs for a short while."
|
||||
:before-while #'forge-get-repository
|
||||
(file-executable-p emacsql-sqlite-executable))
|
||||
|
||||
(def-advice! +magit--forge-build-binary-lazily-a (&rest _)
|
||||
(defadvice! +magit--forge-build-binary-lazily-a (&rest _)
|
||||
"Make `forge-dispatch' only build emacsql if necessary.
|
||||
Annoyingly, the binary gets built as soon as Forge is loaded. Since we've
|
||||
disabled that in `+magit--forge-get-repository-lazily-a', we must manually
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
(setq password-store-password-length 12)
|
||||
|
||||
;; Fix hard-coded password-store location; respect PASSWORD_STORE_DIR envvar
|
||||
(def-advice! +pass-read-entry-a (entry)
|
||||
(defadvice! +pass--respect-pass-dir-envvar-a (entry)
|
||||
"Return a string with the file content of ENTRY."
|
||||
:override #'auth-source-pass--read-entry
|
||||
(with-temp-buffer
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
(after! prodigy
|
||||
(set-evil-initial-state! 'prodigy-mode 'emacs)
|
||||
|
||||
(def-advice! +prodigy-services-a (orig-fn &rest args)
|
||||
(defadvice! +prodigy--add-project-property-a (orig-fn &rest args)
|
||||
"Adds a new :project property to prodigy services, which hides the service
|
||||
unless invoked from the relevant project."
|
||||
:around #'prodigy-services
|
||||
|
|
|
@ -55,7 +55,7 @@ open a file."
|
|||
;; this is necessary in case the user opens emacs with file arguments
|
||||
(advice-add 'after-find-file :before #'+wakatime-autostart-h))
|
||||
|
||||
(def-advice! +wakatime-append-options-a (ret)
|
||||
(defadvice! +wakatime--append-options-a (ret)
|
||||
"Modifies the wakatime command string so that `+wakatime-hide-filenames' and
|
||||
`+wakatime-home' are respected."
|
||||
:filter-return #'wakatime-client-command
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
(defun +doom-disable-fringes-in-minibuffer-h (&rest _)
|
||||
(set-window-fringes (minibuffer-window) 0 0 nil)))
|
||||
|
||||
(def-advice! +doom--no-fringes-in-which-key-buffer-a (&rest _)
|
||||
(defadvice! +doom--no-fringes-in-which-key-buffer-a (&rest _)
|
||||
:after 'which-key--show-buffer-side-window
|
||||
(+doom-disable-fringes-in-minibuffer-h)
|
||||
(set-window-fringes (get-buffer-window which-key--buffer) 0 0 nil))
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
|
||||
;; Some functions modify the buffer, causing the modeline to show a false
|
||||
;; modified state, so force them to behave.
|
||||
(def-advice! +modeline--inhibit-modification-hooks-a (orig-fn &rest args)
|
||||
(defadvice! +modeline--inhibit-modification-hooks-a (orig-fn &rest args)
|
||||
:around #'ws-butler-after-save
|
||||
(with-silent-modifications (apply orig-fn args))))
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
(defun +neotree-fix-cursor-h (&rest _)
|
||||
(with-current-buffer neo-global--buffer
|
||||
(+neotree*indent-cursor))))
|
||||
(def-advice! +neotree-indent-cursor-a (&rest _)
|
||||
(defadvice! +neotree--indent-cursor-a (&rest _)
|
||||
:after '(neotree-next-line neotree-previous-line)
|
||||
(beginning-of-line)
|
||||
(skip-chars-forward " \t\r")))
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
|
||||
;;;###package company
|
||||
(def-advice! +popup--dont-select-me-a (orig-fn &rest args)
|
||||
(defadvice! +popup--dont-select-me-a (orig-fn &rest args)
|
||||
:around #'company-show-doc-buffer
|
||||
(let ((+popup--inhibit-select t))
|
||||
(apply orig-fn args)))
|
||||
|
@ -50,7 +50,7 @@
|
|||
|
||||
;; When eshell runs a visual command (see `eshell-visual-commands'), it spawns
|
||||
;; a term buffer to run it in, but where it spawns it is the problem...
|
||||
(def-advice! +popup--eshell-undedicate-popup (&rest _)
|
||||
(defadvice! +popup--eshell-undedicate-popup (&rest _)
|
||||
"Force spawned term buffer to share with the eshell popup (if necessary)."
|
||||
:before #'eshell-exec-visual
|
||||
(when (+popup-window-p)
|
||||
|
@ -62,7 +62,7 @@
|
|||
;;;###package evil
|
||||
(progn
|
||||
;; Make evil-mode cooperate with popups
|
||||
(def-advice! +popup--evil-command-window-a (hist cmd-key execute-fn)
|
||||
(defadvice! +popup--evil-command-window-a (hist cmd-key execute-fn)
|
||||
"Monkey patch the evil command window to use `pop-to-buffer' instead of
|
||||
`switch-to-buffer', allowing the popup manager to handle it."
|
||||
:override #'evil-command-window
|
||||
|
@ -81,7 +81,7 @@
|
|||
(evil-command-window-mode)
|
||||
(evil-command-window-insert-commands hist)))
|
||||
|
||||
(def-advice! +popup--evil-command-window-execute-a ()
|
||||
(defadvice! +popup--evil-command-window-execute-a ()
|
||||
"Execute the command under the cursor in the appropriate buffer, rather than
|
||||
the command buffer."
|
||||
:override #'evil-command-window-execute
|
||||
|
@ -150,7 +150,7 @@ the command buffer."
|
|||
|
||||
|
||||
;;;###package helpful
|
||||
(def-advice! +popup--helpful-open-in-origin-window-a (button)
|
||||
(defadvice! +popup--helpful-open-in-origin-window-a (button)
|
||||
"Open links in non-popup, originating window rather than helpful's window."
|
||||
:override #'helpful--navigate
|
||||
(let ((path (substring-no-properties (button-get button 'path)))
|
||||
|
@ -172,7 +172,7 @@ the command buffer."
|
|||
(setq helm-default-display-buffer-functions '(+popup-display-buffer-stacked-side-window-fn))
|
||||
|
||||
;; Fix #897: "cannot open side window" error when TAB-completing file links
|
||||
(def-advice! +popup--helm-hide-org-links-popup-a (orig-fn &rest args)
|
||||
(defadvice! +popup--helm-hide-org-links-popup-a (orig-fn &rest args)
|
||||
:around #'org-insert-link
|
||||
(cl-letf* ((old-org-completing-read (symbol-function 'org-completing-read))
|
||||
((symbol-function 'org-completing-read)
|
||||
|
@ -191,7 +191,7 @@ the command buffer."
|
|||
(apply orig-fn args)))
|
||||
|
||||
;; Fix left-over popup window when closing persistent help for `helm-M-x'
|
||||
(def-advice! +popup--helm-elisp--persistent-help-a (candidate _fun &optional _name)
|
||||
(defadvice! +popup--helm-elisp--persistent-help-a (candidate _fun &optional _name)
|
||||
:before #'helm-elisp--persistent-help
|
||||
(let (win)
|
||||
(when (and (helm-attr 'help-running-p)
|
||||
|
@ -200,7 +200,7 @@ the command buffer."
|
|||
(delete-window win))))
|
||||
|
||||
;; `helm-ag'
|
||||
(def-advice! +popup--helm-pop-to-buffer-a (orig-fn &rest args)
|
||||
(defadvice! +popup--helm-pop-to-buffer-a (orig-fn &rest args)
|
||||
:around #'helm-ag--edit
|
||||
(pop-to-buffer
|
||||
(save-window-excursion (apply orig-fn args)
|
||||
|
@ -212,7 +212,7 @@ the command buffer."
|
|||
|
||||
|
||||
;;;###package Info
|
||||
(def-advice! +popup--switch-to-info-window-a (&rest _)
|
||||
(defadvice! +popup--switch-to-info-window-a (&rest _)
|
||||
:after #'info-lookup-symbol
|
||||
(when-let (win (get-buffer-window "*info*"))
|
||||
(when (+popup-window-p win)
|
||||
|
@ -234,7 +234,7 @@ the command buffer."
|
|||
;; Org has a scorched-earth window management policy I'm not fond of. i.e. it
|
||||
;; kills all other windows just so it can monopolize the frame. No thanks. We
|
||||
;; can do better ourselves.
|
||||
(def-advice! +popup-suppress-delete-other-windows-a (orig-fn &rest args)
|
||||
(defadvice! +popup--suppress-delete-other-windows-a (orig-fn &rest args)
|
||||
:around '(org-add-log-note
|
||||
org-capture-place-template
|
||||
org-export--dispatch-ui
|
||||
|
@ -246,7 +246,7 @@ the command buffer."
|
|||
(apply orig-fn args))
|
||||
(apply orig-fn args)))
|
||||
|
||||
(def-advice! +popup--org-fix-tags-window-a (orig-fn &rest args)
|
||||
(defadvice! +popup--org-fix-tags-window-a (orig-fn &rest args)
|
||||
"Hides the mode-line in *Org tags* buffer so you can actually see its
|
||||
content and displays it in a side window without deleting all other windows.
|
||||
Ugh, such an ugly hack."
|
||||
|
@ -265,7 +265,7 @@ Ugh, such an ugly hack."
|
|||
(apply orig-fn args))
|
||||
(apply orig-fn args)))
|
||||
|
||||
(def-advice! +popup-org-src-pop-to-buffer-a (orig-fn buffer context)
|
||||
(defadvice! +popup--org-src-pop-to-buffer-a (orig-fn buffer context)
|
||||
"Hand off the src-block window to the popup system by using `display-buffer'
|
||||
instead of switch-to-buffer-*."
|
||||
:around #'org-src-switch-to-buffer
|
||||
|
@ -276,7 +276,7 @@ instead of switch-to-buffer-*."
|
|||
(setq org-src-window-setup 'popup-window)
|
||||
|
||||
;; Ensure todo, agenda, and other minor popups are delegated to the popup system.
|
||||
(def-advice! +popup-org-pop-to-buffer-a (orig-fn buf &optional norecord)
|
||||
(defadvice! +popup--org-pop-to-buffer-a (orig-fn buf &optional norecord)
|
||||
"Use `pop-to-buffer' instead of `switch-to-buffer' to open buffer.'"
|
||||
:around #'org-switch-to-buffer-other-window
|
||||
(if +popup-mode
|
||||
|
@ -287,7 +287,7 @@ instead of switch-to-buffer-*."
|
|||
(setq org-agenda-window-setup 'popup-window
|
||||
org-agenda-restore-windows-after-quit nil)
|
||||
;; Don't monopolize the frame!
|
||||
(def-advice! +popup-org-agenda-suppress-delete-other-windows-a (orig-fn &rest args)
|
||||
(defadvice! +popup--org-agenda-suppress-delete-other-windows-a (orig-fn &rest args)
|
||||
:around #'org-agenda-prepare-window
|
||||
(cond ((not +popup-mode)
|
||||
(apply orig-fn args))
|
||||
|
@ -307,7 +307,7 @@ instead of switch-to-buffer-*."
|
|||
|
||||
|
||||
;;;###package persp-mode
|
||||
(def-advice! +popup--persp-mode-restore-popups-a (&rest _)
|
||||
(defadvice! +popup--persp-mode-restore-popups-a (&rest _)
|
||||
"Restore popup windows when loading a perspective from file."
|
||||
:after #'persp-load-state-from-file
|
||||
(dolist (window (window-list))
|
||||
|
@ -334,7 +334,7 @@ instead of switch-to-buffer-*."
|
|||
|
||||
|
||||
;;;###package profiler
|
||||
(def-advice! +popup--profiler-report-find-entry-in-other-window-a (orig-fn function)
|
||||
(defadvice! +popup--profiler-report-find-entry-in-other-window-a (orig-fn function)
|
||||
:around #'profiler-report-find-entry
|
||||
(cl-letf (((symbol-function 'find-function)
|
||||
(symbol-function 'find-function-other-window)))
|
||||
|
@ -365,7 +365,7 @@ instead of switch-to-buffer-*."
|
|||
|
||||
;;;###package windmove
|
||||
;; Users should be able to hop into popups easily, but Elisp shouldn't.
|
||||
(def-advice! doom--ignore-window-parameters-a (orig-fn &rest args)
|
||||
(defadvice! +popup--ignore-window-parameters-a (orig-fn &rest args)
|
||||
"Allow *interactive* window moving commands to traverse popups."
|
||||
:around '(windmove-up windmove-down windmove-left windmove-right)
|
||||
(cl-letf (((symbol-function #'windmove-find-other-window)
|
||||
|
|
|
@ -600,8 +600,8 @@ Accepts the same arguments as `display-buffer-in-side-window'. You must set
|
|||
;; Emacs backwards compatibility
|
||||
|
||||
(unless EMACS27+
|
||||
(def-advice! +popup-set-window-dedicated-a (window)
|
||||
"Ensure `window--dispaly-buffer' respects `display-buffer-mark-dedicated'.
|
||||
(defadvice! +popup--set-window-dedicated-a (window)
|
||||
"Ensure `window--display-buffer' respects `display-buffer-mark-dedicated'.
|
||||
|
||||
This was not so until recent Emacs 27 builds, where it causes breaking errors.
|
||||
This advice ensures backwards compatibility for Emacs <= 26 users."
|
||||
|
|
|
@ -118,7 +118,7 @@ stored in `persp-save-dir'.")
|
|||
(add-to-list 'persp-add-buffer-on-after-change-major-mode-filter-functions
|
||||
#'doom-unreal-buffer-p)
|
||||
|
||||
(def-advice! +workspaces-evil-alternate-buffer-a (&optional window)
|
||||
(defadvice! +workspaces--evil-alternate-buffer-a (&optional window)
|
||||
"Make `evil-alternate-buffer' ignore buffers outside the current workspace."
|
||||
:override #'evil-alternate-buffer
|
||||
(let* ((prev-buffers
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue