php layer: refactor package configuration

This commit is contained in:
syl20bnr 2015-04-22 00:34:55 -04:00
parent d829825f9e
commit ff8b339813
2 changed files with 47 additions and 48 deletions

View file

@ -1,12 +1,14 @@
#PHP contribution layer for Spacemacs
![logo](img/php.png)
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc/generate-toc again -->
**Table of Contents**
- [PHP contribution layer for Spacemacs](#php-contribution-layer-for-spacemacs)
- [Description](#description)
- [Install](#install)
- [Key bindings](#key-bindings)
<!-- markdown-toc end -->
@ -19,7 +21,8 @@ Features:
- Run tests with PHPUnit
- Reformat code with PHP CBF
The `gtags` layer is strongly recommended.
The `gtags` layer is recommended to benefit from better `eldoc` and
`helm-gtags`.
## Install
@ -28,4 +31,9 @@ To use this contribution add it to your `~/.spacemacs`
```elisp
(setq-default dotspacemacs-configuration-layers '(php))
```
## Key bindings
TODO ! :-)
[php-mode]: https://github.com/ejmr/php-mode

View file

@ -10,65 +10,56 @@
;;
;;; License: GPLv3
(defvar php-packages '(
php-mode
phpcbf
helm-gtags
ggtags
php-extras
flycheck
company
php-auto-yasnippets
phpunit
drupal-mode
)
)
(setq php-packages '(
company
drupal-mode
eldoc
ggtags
helm-gtags
php-auto-yasnippets
php-extras
php-mode
phpcbf
phpunit
flycheck
))
(defun php/init-drupal-mode ()
(use-package drupal-mode
:defer t))
(defun php/post-init-eldoc ()
(add-hook 'php-mode-hook 'eldoc-mode))
(defun php/post-init-ggtags ()
(when (configuration-layer/package-usedp 'eldoc)
(add-hook 'php-mode-hook 'setq-local eldoc-documentation-function
'ggtags-eldoc-function)))
(defun php/post-init-helm-gtags ()
(spacemacs/gtags-define-keys-for-mode 'php-mode))
(defun php/init-php-auto-yasnippets ()
(use-package php-auto-yasnippets
:defer t))
(defun php/init-php-extras ()
(use-package php-extras
:defer t))
(defun php/init-php-mode ()
(use-package php-mode
:defer t
:mode ("\\.php\\'" . php-mode)
:config
(progn
(add-hook 'php-mode-hook 'eldoc-mode)
(add-hook 'php-mode-hook 'setq-local eldoc-documentation-function #'ggtags-eldoc-function)
(add-hook 'php-mode-hook
(lambda ()
(set (make-local-variable 'company-backends)
'((company-yasnippet company-gtags company-capf company-dabbrev-code company-keywords company-files php-extras-company)))))
)))
(defun php/init-php-extras ()
(use-package php-extras
:defer t
)
)
:mode ("\\.php\\'" . php-mode)))
(defun php/init-phpcbf ()
(use-package phpcbf
:defer t
)
)
(defun php/init-php-auto-yasnippets ()
(use-package php-auto-yasnippets
:defer t))
(defun php/init-phpunit ()
(use-package phpunit
:defer t))
(defun php/init-drupal-mode ()
(use-package drupal-mode
:defer t
)
)
(when (configuration-layer/layer-usedp 'auto-completion)
(defun php/post-init-company ()
(spacemacs|add-company-hook php-mode))
)
(defun php/post-init-helm-gtags ()
(spacemacs/gtags-define-keys-for-mode 'php-mode))
(spacemacs|add-company-hook php-mode)))