Disable lookup handlers if minor mode is disabled
This commit is contained in:
parent
7f5d961d89
commit
380c3ac268
1 changed files with 23 additions and 20 deletions
|
@ -64,11 +64,9 @@ This can be passed nil as its second argument to unset handlers for MODES. e.g.
|
|||
(cond ((null (car plist))
|
||||
(remove-hook hook fn)
|
||||
(unintern fn nil))
|
||||
((fset fn
|
||||
((fset
|
||||
fn
|
||||
(lambda ()
|
||||
(when (or (eq major-mode mode)
|
||||
(and (boundp mode)
|
||||
(symbol-value mode)))
|
||||
(cl-mapc #'+lookup--set-handler
|
||||
(list definition
|
||||
references
|
||||
|
@ -80,19 +78,24 @@ This can be passed nil as its second argument to unset handlers for MODES. e.g.
|
|||
'+lookup-documentation-functions
|
||||
'+lookup-file-functions
|
||||
'xref-backend-functions)
|
||||
(make-list 5 async)))))
|
||||
(make-list 5 async)
|
||||
(make-list 5 (or (eq major-mode mode)
|
||||
(and (boundp mode)
|
||||
(symbol-value mode)))))))
|
||||
(add-hook hook fn))))))
|
||||
|
||||
|
||||
;;
|
||||
;;; Helpers
|
||||
|
||||
(defun +lookup--set-handler (spec functions-var &optional async)
|
||||
(defun +lookup--set-handler (spec functions-var &optional async enable)
|
||||
(when spec
|
||||
(cl-destructuring-bind (fn . plist)
|
||||
(doom-enlist spec)
|
||||
(if (not enable)
|
||||
(remove-hook functions-var fn 'local)
|
||||
(put fn '+lookup-async (or (plist-get plist :async) async))
|
||||
(add-hook functions-var fn nil t))))
|
||||
(add-hook functions-var fn nil 'local)))))
|
||||
|
||||
(defun +lookup--run-handler (handler identifier)
|
||||
(if (commandp handler)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue