spacemacs/layers/+tools/ycmd/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

47 lines
1.2 KiB
EmacsLisp

;;; packages.el --- Ycmd Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2017 Sylvain Benner & Contributors
;;
;; Author: Brian Hicks <brian@brianthicks.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq ycmd-packages
'(
(company-ycmd :depends company)
(flycheck-ycmd :depends flycheck)
eldoc
ycmd
))
(unless (boundp 'ycmd-server-command)
(message (concat "YCMD won't work unless you set the ycmd-server-command "
"variable to the path to a ycmd install.")))
(defun ycmd/init-company-ycmd ()
(use-package company-ycmd
:defer t
:commands company-ycmd))
(defun ycmd/init-flycheck-ycmd ()
(use-package flycheck-ycmd
:defer t
:init (add-hook 'ycmd-mode-hook 'flycheck-ycmd-setup)))
(defun ycmd/post-init-eldoc ()
(add-hook 'ycmd-mode-hook 'ycmd-eldoc-setup))
(defun ycmd/init-ycmd ()
(use-package ycmd
:defer t
:init
(progn
(unless (boundp 'ycmd-global-config)
(setq-default ycmd-global-config
(concat (configuration-layer/get-layer-path 'ycmd)
"global_conf.py")))
(setq-default ycmd-parse-conditions '(save mode-enabled)))))