2016-01-18 03:06:04 +00:00
|
|
|
;;; packages.el --- Ansible Layer packages File for Spacemacs
|
2015-02-17 20:11:06 +00:00
|
|
|
;;
|
2021-03-22 20:11:29 +00:00
|
|
|
;; Copyright (c) 2012-2021 Sylvain Benner & Contributors
|
2015-02-17 20:11:06 +00:00
|
|
|
;;
|
|
|
|
;; Author: Brian Hicks <brian@brianthicks.com>
|
|
|
|
;; URL: https://github.com/syl20bnr/spacemacs
|
|
|
|
;;
|
|
|
|
;; This file is not part of GNU Emacs.
|
|
|
|
;;
|
2021-03-24 03:31:44 +00:00
|
|
|
;; This program is free software; you can redistribute it and/or modify
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
;; (at your option) any later version.
|
|
|
|
;;
|
|
|
|
;; This program is distributed in the hope that it will be useful,
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
;;
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
|
|
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
2016-01-07 20:20:27 +00:00
|
|
|
(setq ansible-packages
|
|
|
|
'(ansible
|
|
|
|
ansible-doc
|
|
|
|
company
|
2017-07-03 07:52:54 +00:00
|
|
|
(company-ansible :requires company)
|
2016-01-29 16:35:02 +00:00
|
|
|
jinja2-mode
|
2016-01-07 20:20:27 +00:00
|
|
|
yaml-mode))
|
2015-02-17 20:11:06 +00:00
|
|
|
|
|
|
|
(defun ansible/init-ansible ()
|
2016-03-19 12:29:24 +00:00
|
|
|
(use-package ansible
|
2018-03-04 04:37:53 +00:00
|
|
|
:defer t
|
2019-07-08 19:34:34 +00:00
|
|
|
:commands ansible-auto-decrypt-encrypt
|
2016-12-16 13:50:21 +00:00
|
|
|
:init
|
|
|
|
(progn
|
|
|
|
(add-hook 'yaml-mode-hook 'spacemacs/ansible-maybe-enable)
|
2019-07-08 19:34:34 +00:00
|
|
|
(put 'ansible-vault-password-file 'safe-local-variable #'stringp)
|
2017-04-19 19:44:49 +00:00
|
|
|
(if ansible-auto-encrypt-decrypt
|
2017-04-19 18:00:18 +00:00
|
|
|
;; add this hook to local-vars-hook to allow users to specify
|
|
|
|
;; a password file in directory local variables
|
2018-01-29 18:52:39 +00:00
|
|
|
(add-hook 'yaml-mode-local-vars-hook
|
|
|
|
'spacemacs/ansible-auto-decrypt-encrypt-vault)
|
|
|
|
(remove-hook 'yaml-mode-local-vars-hook
|
|
|
|
'spacemacs/ansible-auto-decrypt-encrypt-vault))
|
2018-05-16 18:44:47 +00:00
|
|
|
)
|
|
|
|
:config
|
|
|
|
(progn
|
2018-01-29 18:52:39 +00:00
|
|
|
(spacemacs/set-leader-keys-for-minor-mode 'ansible
|
2019-07-08 19:34:34 +00:00
|
|
|
"bd" 'ansible-decrypt-buffer
|
|
|
|
"be" 'ansible-encrypt-buffer))))
|
2015-02-17 20:11:06 +00:00
|
|
|
|
|
|
|
(defun ansible/init-ansible-doc ()
|
2016-12-16 13:50:21 +00:00
|
|
|
(use-package ansible-doc
|
2018-03-04 04:37:53 +00:00
|
|
|
:defer t
|
2016-12-16 13:50:21 +00:00
|
|
|
:init
|
|
|
|
(progn
|
2018-05-16 18:44:47 +00:00
|
|
|
(add-hook 'yaml-mode-hook 'spacemacs/ansible-doc-maybe-enable))
|
|
|
|
:config
|
|
|
|
(progn
|
|
|
|
(spacemacs/set-leader-keys-for-minor-mode 'ansible-doc-mode
|
|
|
|
"ha" 'ansible-doc)
|
|
|
|
(spacemacs|hide-lighter ansible-doc-mode))))
|
2016-01-07 20:20:27 +00:00
|
|
|
|
|
|
|
(defun ansible/post-init-company ()
|
|
|
|
;; ansible-mode requires ac-user-dictionary-files. If the
|
|
|
|
;; config is using company-mode this variable will not be
|
|
|
|
;; set, so we set it to a dummy value.
|
|
|
|
;;
|
|
|
|
;; Tracking here:
|
|
|
|
;; https://github.com/k1LoW/emacs-ansible/issues/2
|
|
|
|
(defvar ac-user-dictionary-files nil))
|
|
|
|
|
2016-12-16 13:50:21 +00:00
|
|
|
(defun ansible/init-company-ansible ()
|
|
|
|
(use-package company-ansible
|
2018-03-04 04:37:53 +00:00
|
|
|
:defer t
|
2016-12-16 13:50:21 +00:00
|
|
|
:init
|
2019-12-15 07:16:58 +00:00
|
|
|
(unless yaml-enable-lsp
|
|
|
|
;; append this hook at the end to execute it last so `company-backends'
|
|
|
|
;; variable is buffer local
|
|
|
|
(add-hook 'yaml-mode-hook 'spacemacs/ansible-company-maybe-enable t)
|
|
|
|
(spacemacs|add-company-backends :backends company-ansible
|
|
|
|
:modes ansible))))
|
2016-12-16 13:50:21 +00:00
|
|
|
|
2016-01-29 16:35:02 +00:00
|
|
|
(defun ansible/init-jinja2-mode ()
|
|
|
|
(use-package jinja2-mode
|
|
|
|
:mode ("\\.j2\\'" . jinja2-mode)
|
2018-03-04 04:37:53 +00:00
|
|
|
:defer t))
|
2016-01-29 16:35:02 +00:00
|
|
|
|
2016-01-07 20:20:27 +00:00
|
|
|
(defun ansible/post-init-yaml-mode ()
|
2016-12-16 13:50:21 +00:00
|
|
|
;; maybe move it to the layer owning `yaml-mode' at some point
|
|
|
|
(spacemacs/declare-prefix-for-mode 'yaml-mode "mh" "help")
|
|
|
|
(spacemacs/declare-prefix-for-mode 'yaml-mode "mb" "buffer")
|
|
|
|
(add-to-list 'auto-mode-alist
|
|
|
|
'("\\(group_vars/.+\\|host_vars/.+\\)" . yaml-mode)))
|