2017-02-19 18:57:16 -05:00
|
|
|
;;; lang/php/config.el
|
2015-06-15 09:06:10 +02:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
;; (@def-package hack-mode
|
|
|
|
;; :mode "\\.hh$"
|
|
|
|
;; :config
|
|
|
|
;; (@set :company-backend 'hack-mode '(company-capf)))
|
2016-04-19 02:45:28 -04:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
|
|
|
|
(@def-package php-mode
|
|
|
|
:mode ("\\.php[s345]?$" "\\.inc$")
|
2016-04-10 18:50:28 -04:00
|
|
|
:interpreter "php"
|
2015-06-15 09:06:10 +02:00
|
|
|
:init
|
2016-04-08 14:07:16 -04:00
|
|
|
(add-hook 'php-mode-hook 'flycheck-mode)
|
2015-06-15 09:06:10 +02:00
|
|
|
:config
|
2017-02-19 18:57:16 -05:00
|
|
|
(setq php-template-compatibility nil)
|
2016-05-01 01:10:30 -04:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
(@set :repl 'php-mode 'php-boris)
|
|
|
|
(@set :company-bakend 'php-mode '(php-extras-company company-yasnippet))
|
2016-04-23 22:08:46 -04:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
(@add-hook php-mode (setq-local sp-max-pair-length 6))
|
2016-10-05 12:50:02 +02:00
|
|
|
|
2016-04-23 22:08:46 -04:00
|
|
|
(sp-with-modes '(php-mode)
|
|
|
|
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
|
|
|
(sp-local-pair "/**" "*/" :post-handlers '(("||\n[i]" "RET") ("||\n[i]" "SPC")))
|
|
|
|
(sp-local-pair "<? " " ?>")
|
|
|
|
(sp-local-pair "<?php " " ?>")
|
|
|
|
(sp-local-pair "<?=" " ?>")
|
|
|
|
(sp-local-pair "<?" "?>" :when '(("RET")) :post-handlers '("||\n[i]"))
|
2017-02-19 18:57:16 -05:00
|
|
|
(sp-local-pair "<?php" "?>" :when '(("RET")) :post-handlers '("||\n[i]")))
|
|
|
|
|
|
|
|
(@map :map php-mode-map
|
|
|
|
:localleader
|
|
|
|
:nv ";" 'doom/append-semicolon
|
|
|
|
|
|
|
|
:prefix "r"
|
|
|
|
:n "cv" 'php-refactor--convert-local-to-instance-variable
|
|
|
|
:n "u" 'php-refactor--optimize-use
|
|
|
|
:v "xm" 'php-refactor--extract-method
|
|
|
|
:n "rv" 'php-refactor--rename-local-variable
|
|
|
|
|
|
|
|
:prefix "t"
|
|
|
|
:n "r" 'phpunit-current-project
|
|
|
|
:n "a" 'phpunit-current-class
|
|
|
|
:n "s" 'phpunit-current-test))
|
|
|
|
|
2015-06-15 09:06:10 +02:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
(@def-package php-extras
|
2016-04-23 22:08:46 -04:00
|
|
|
:after php-mode
|
2017-02-19 18:57:16 -05:00
|
|
|
:init
|
|
|
|
(add-hook 'php-mode-hook 'eldoc-mode)
|
2016-04-23 22:08:46 -04:00
|
|
|
:config
|
2017-02-22 04:28:45 -05:00
|
|
|
(setq php-extras-eldoc-functions-file (concat doom-cache-dir "php-extras-eldoc-functions"))
|
2017-02-19 18:57:16 -05:00
|
|
|
|
|
|
|
;; company will set up itself
|
|
|
|
(advice-add 'php-extras-company-setup :override 'ignore)
|
|
|
|
|
|
|
|
;; Make expensive php-extras generation async
|
2015-11-17 02:09:34 -05:00
|
|
|
(unless (file-exists-p (concat php-extras-eldoc-functions-file ".el"))
|
|
|
|
(async-start `(lambda ()
|
|
|
|
,(async-inject-variables "\\`\\(load-path\\|php-extras-eldoc-functions-file\\)$")
|
|
|
|
(require 'php-extras-gen-eldoc)
|
|
|
|
(php-extras-generate-eldoc-1 t))
|
|
|
|
(lambda (_)
|
|
|
|
(load (concat php-extras-eldoc-functions-file ".el"))
|
2016-04-23 22:08:46 -04:00
|
|
|
(message "PHP eldoc updated!")))))
|
2016-03-28 21:39:13 -04:00
|
|
|
|
2016-05-19 03:18:57 -04:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
(@def-package php-refactor-mode
|
|
|
|
:commands php-refactor-mode
|
|
|
|
:init (add-hook 'php-mode-hook 'php-refactor-mode))
|
|
|
|
|
|
|
|
|
|
|
|
(@def-package phpunit
|
|
|
|
:commands (phpunit-current-test phpunit-current-class phpunit-current-project))
|
|
|
|
|
|
|
|
|
|
|
|
(@def-package php-boris :commands php-boris)
|
2015-11-25 06:00:49 -05:00
|
|
|
|
2017-02-19 18:57:16 -05:00
|
|
|
|
|
|
|
;;
|
|
|
|
;; Projects
|
2016-04-16 21:36:24 -04:00
|
|
|
;;
|
2017-02-19 18:57:16 -05:00
|
|
|
|
|
|
|
;; (@def-project laravel "laravel"
|
|
|
|
;; :modes (php-mode yaml-mode web-mode nxml-mode js2-mode scss-mode)
|
|
|
|
;; :files ("artisan" "server.php"))
|
|
|
|
|
|
|
|
;; (defvar php-composer-conf (make-hash-table :test 'equal))
|
|
|
|
;; (@def-project composer "composer"
|
|
|
|
;; :modes (web-mode php-mode)
|
|
|
|
;; :files ("composer.json")
|
|
|
|
;; :when
|
|
|
|
;; (lambda (&rest _)
|
|
|
|
;; (let* ((project-path (doom/project-root))
|
|
|
|
;; (hash (gethash project-path php-composer-conf))
|
|
|
|
;; (package-file (expand-file-name "composer.json" project-path))
|
|
|
|
;; deps)
|
|
|
|
;; (awhen (and (not hash) (file-exists-p package-file)
|
|
|
|
;; (json-read-file package-file))
|
|
|
|
;; (puthash project-path it php-composer-conf)))
|
|
|
|
;; t))
|
|
|
|
|