From f0f2c92b8d308b33319a34af9cbb5e396b068ad2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 27 Jul 2018 01:31:53 +0200 Subject: [PATCH] lang/php: prioritize phpctags in PATH And fail more gracefully if phpctags isn't installed --- modules/lang/php/autoload.el | 9 +++++++++ modules/lang/php/config.el | 11 +++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/lang/php/autoload.el b/modules/lang/php/autoload.el index 53ce77a57..b5a6f9fb4 100644 --- a/modules/lang/php/autoload.el +++ b/modules/lang/php/autoload.el @@ -13,3 +13,12 @@ ignore the cache." (require 'json) (json-read-file package-file)))) (puthash project-root data +php-composer-conf)))))) + +;;;###autoload +(defun +php|init-ac-php-core-eldoc () + "Initialize eldoc support for `php-mode' with `ac-php-core'. Fails gracefully +if phpctags isn't installed." + (require 'company-php) + (if (file-exists-p ac-php-ctags-executable) + (ac-php-core-eldoc-setup) + (message "phpctags is missing; eldoc support is disabled"))) diff --git a/modules/lang/php/config.el b/modules/lang/php/config.el index ea01efcb4..22d5788c9 100644 --- a/modules/lang/php/config.el +++ b/modules/lang/php/config.el @@ -74,10 +74,17 @@ (def-package! company-php :when (featurep! :completion company) :commands (ac-php-remake-tags ac-php-remake-tags-all) - :hook (php-mode . ac-php-core-eldoc-setup) :init (add-to-list '+php--company-backends 'company-ac-php-backend nil #'eq) - :config (setq ac-php-tags-path (concat doom-cache-dir "ac-php/"))) + (add-hook 'php-mode-hook #'+php|init-ac-php-core-eldoc) + :config + (setq ac-php-tags-path (concat doom-cache-dir "ac-php/")) + ;; prioritize phpctags in PATH + (when (file-in-directory-p ac-php-ctags-executable ac-php-root-directory) + (setq ac-php-ctags-executable + (or (executable-find "phpctags") + (if (file-exists-p ac-php-ctags-executable) + ac-php-ctags-executable))))) ;;