spacemacs/layers/+tools/dash/packages.el
Eivind Fonn 08561d8631 core: implement :depends for package declarations
This replaces the older pattern
:toggle (configuration-layer/package-usedp ..)

This implementation ensures that :disabled-for honors dependent packages, i.e.
if package a depends on package b, which is owned by layer c, and layer c is
disabled for layer d, then neither package a nor b will be configured for layer
d. Previously, this was only true for package a, but not b.

This commit also fixes:

- configuration-layer/describe-package now shows which post-init and pre-init
  functions are disabled, if any
- Does not recreate all layer objects unconditionally when calling
  configuration-layer/discover-layers. Previously, this led to all layers being
  recreated after e.g. `SPC h SPC`, without any of the dotfile information.
  Since this information is now necessary for
  configuration-layer/describe-package, it’s important that we don’t clear the
  indexed layers when invoking this function.
2017-06-22 11:53:05 +02:00

42 lines
1.3 KiB
EmacsLisp

;; see conditional package inclusion
(setq dash-packages
'(
(dash-at-point :toggle (spacemacs/system-is-mac))
(helm-dash :depends helm)
(counsel-dash :depends ivy)
(zeal-at-point :toggle (or (spacemacs/system-is-linux)
(spacemacs/system-is-mswindows)))))
(defun dash/init-helm-dash ()
(use-package helm-dash
:defer t
:init (spacemacs/set-leader-keys
"dh" 'helm-dash-at-point
"dH" 'helm-dash)
:config (dash//activate-package-docsets helm-dash-docset-newpath)))
(defun dash/init-counsel-dash ()
(use-package counsel-dash
:defer t
:init (spacemacs/set-leader-keys
"dh" 'counsel-dash-at-point
"dH" 'counsel-dash)
:config (dash//activate-package-docsets helm-dash-docset-newpath)))
(defun dash/init-dash-at-point ()
(use-package dash-at-point
:defer t
:init (spacemacs/set-leader-keys
"dd" 'dash-at-point
"dD" 'dash-at-point-with-docset)))
(defun dash/init-zeal-at-point ()
(use-package zeal-at-point
:defer t
:init (spacemacs/set-leader-keys
"dd" 'zeal-at-point
"dD" 'zeal-at-point-set-docset)
:config
;; This lets users seach in multiple docsets
(push '(web-mode . "html,css,javascript") zeal-at-point-mode-alist)))