2018-05-25 00:46:11 +02:00
|
|
|
;;; feature/lookup/autoload/docsets.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###if (featurep! +docsets)
|
|
|
|
|
2018-06-15 21:37:36 +02:00
|
|
|
(defvar-local helm-dash-docsets nil
|
|
|
|
"Docsets to use for this buffer.")
|
|
|
|
|
|
|
|
(defvar-local counsel-dash-docsets nil
|
|
|
|
"Docsets to use for this buffer.")
|
|
|
|
|
2018-06-15 13:31:34 +02:00
|
|
|
;;;###autodef
|
|
|
|
(defun set-docset! (modes &rest docsets)
|
|
|
|
"Registers a list of DOCSETS (strings) for MODES (either one major mode
|
|
|
|
symbol or a list of them).
|
|
|
|
|
|
|
|
Used by `+lookup/in-docsets' and `+lookup/documentation'."
|
|
|
|
(dolist (mode (doom-enlist modes))
|
2018-06-21 13:58:16 +02:00
|
|
|
(let ((fn (intern (format "+lookup|init-docsets--%s" mode)))
|
|
|
|
(hook (intern (format "%s-hook" mode))))
|
|
|
|
(cond ((null (car-safe docsets))
|
|
|
|
(remove-hook hook fn)
|
2018-06-22 01:10:08 +02:00
|
|
|
(unintern fn nil))
|
2018-06-21 13:58:16 +02:00
|
|
|
((fset fn
|
|
|
|
(lambda ()
|
|
|
|
(let ((var-sym (if (featurep! :completion ivy)
|
|
|
|
'counsel-dash-docsets
|
|
|
|
'helm-dash-docsets)))
|
2018-06-15 13:31:34 +02:00
|
|
|
(set var-sym
|
2018-06-21 13:58:16 +02:00
|
|
|
(append (symbol-value var-sym)
|
|
|
|
docsets)))))
|
|
|
|
(add-hook hook fn))))))
|
2018-06-15 13:31:34 +02:00
|
|
|
|
2018-05-25 00:46:11 +02:00
|
|
|
;;;###autoload
|
|
|
|
(def-setting! :docset (modes &rest docsets)
|
|
|
|
"Registers a list of DOCSETS (strings) for MODES (either one major mode
|
|
|
|
symbol or a list of them).
|
|
|
|
|
|
|
|
If MODES is a minor mode, you can use :add or :remove as the first element of
|
|
|
|
DOCSETS, to instruct it to append (or remove) those from the docsets already set
|
|
|
|
by a major-mode, if any.
|
|
|
|
|
|
|
|
Used by `+lookup/in-docsets' and `+lookup/documentation'."
|
2018-06-15 13:31:34 +02:00
|
|
|
:obsolete set-docset!
|
|
|
|
`(set-docset! ,modes ,@docsets))
|
2018-05-25 00:46:11 +02:00
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(autoload 'helm-dash-installed-docsets "helm-dash")
|
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(autoload 'helm-dash-docset-installed-p "helm-dash")
|