From d829825f9e96dc46691f572e9bb8e8348d72ff3e Mon Sep 17 00:00:00 2001 From: Kosta Harlan Date: Mon, 20 Apr 2015 09:41:23 -0400 Subject: [PATCH] Set gtags layer keybindings for php-mode --- contrib/lang/php/README.md | 9 ++++-- contrib/lang/php/config.el | 15 +++++++++ contrib/lang/php/packages.el | 60 ++++++++++++++++++++++++++++++++++-- 3 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 contrib/lang/php/config.el diff --git a/contrib/lang/php/README.md b/contrib/lang/php/README.md index 8ca614220..41d3e06c9 100644 --- a/contrib/lang/php/README.md +++ b/contrib/lang/php/README.md @@ -11,10 +11,15 @@ ## Description -This layer adds PHP language support to Spacemacs +This layer adds PHP language support to Spacemacs. Features: -- Edit php files using [php-mode][] +- Edit PHP files using [php-mode][] +- Edit Drupal files +- Run tests with PHPUnit +- Reformat code with PHP CBF + +The `gtags` layer is strongly recommended. ## Install diff --git a/contrib/lang/php/config.el b/contrib/lang/php/config.el new file mode 100644 index 000000000..eb13ba4f3 --- /dev/null +++ b/contrib/lang/php/config.el @@ -0,0 +1,15 @@ +;;; config.el --- PHP Layer config File for Spacemacs +;; +;; Copyright (c) 2012-2014 Sylvain Benner +;; Copyright (c) 2014-2015 Sylvain Benner & Contributors +;; +;; Author: Kosta Harlan +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +;; variables + +(spacemacs|defvar-company-backends php-mode) diff --git a/contrib/lang/php/packages.el b/contrib/lang/php/packages.el index 6bb6fe490..bbefe6d9e 100644 --- a/contrib/lang/php/packages.el +++ b/contrib/lang/php/packages.el @@ -10,9 +10,65 @@ ;; ;;; License: GPLv3 -(setq php-packages '(php-mode)) +(defvar php-packages '( + php-mode + phpcbf + helm-gtags + ggtags + php-extras + flycheck + company + php-auto-yasnippets + phpunit + drupal-mode + ) + ) (defun php/init-php-mode () (use-package php-mode :defer t - :mode ("\\.php\\'" . php-mode))) + :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 + ) + ) + +(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))