From b49d4642ab6c06a0867e4eb64993c7aa9bae7844 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Sat, 16 Jan 2021 11:30:09 +0200 Subject: [PATCH] Add PHP and vue.js --- .gitignore | 1 + init.el | 3 ++- languages/javascript.el | 5 +++++ languages/php.el | 49 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 languages/php.el diff --git a/.gitignore b/.gitignore index ff1cae2..a6fafc2 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ tramp url/* transient/* .lsp-session-* +lsp-cache eshell/* .yas-compiled-snippets.el ac-comphist.dat diff --git a/init.el b/init.el index 1eaadd2..e3534b1 100644 --- a/init.el +++ b/init.el @@ -57,6 +57,7 @@ (require 'languages/clang "$HOME/.emacs.d/languages/clang.el") (require 'languages/clojure "$HOME/.emacs.d/languages/clojure.el") (require 'languages/ocaml "$HOME/.emacs.d/languages/ocaml.el") +(require 'languages/php "$HOME/.emacs.d/languages/php.el") (require 'languages/markdown "$HOME/.emacs.d/languages/markdown.el") (require 'languages/other "$HOME/.emacs.d/languages/other.el") @@ -66,7 +67,7 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(package-selected-packages - '(dap-mode undo-tree helpful lsp-haskell dashboard fsharp-mode dash-at-point racer racer-mode flycheck-rust rust-mode haskell-mode dune which-key erlang gitignore-mode yaml-mode nginx-mode ansible terraform-mode dockerfile-mode reason-mode merlin tuareg clj-refactor cider clojure-mode elixir-mode js2-mode web-mode enh-ruby-mode ruby-end rspec-mode planet-theme flatui-theme base16-theme smart-mode-line lsp-ui lsp-mode deft counsel-projectile flycheck company yasnippet-snippets yasnippet visual-regexp column-enforce-mode rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package)) + '(jenkinsfile-mode vue-mode dap-mode undo-tree helpful lsp-haskell dashboard fsharp-mode dash-at-point racer racer-mode flycheck-rust rust-mode haskell-mode dune which-key erlang gitignore-mode yaml-mode nginx-mode ansible terraform-mode dockerfile-mode reason-mode merlin tuareg clj-refactor cider clojure-mode elixir-mode js2-mode web-mode enh-ruby-mode ruby-end rspec-mode planet-theme flatui-theme base16-theme smart-mode-line lsp-ui lsp-mode deft counsel-projectile flycheck company yasnippet-snippets yasnippet visual-regexp column-enforce-mode rainbow-mode rainbow-delimiters magit hydra counsel keyfreq exec-path-from-shell buffer-move use-package)) '(safe-local-variable-values '((haskell-process-use-ghci . t) (haskell-indent-spaces . 4)))) diff --git a/languages/javascript.el b/languages/javascript.el index aff5768..5831d9b 100644 --- a/languages/javascript.el +++ b/languages/javascript.el @@ -10,6 +10,10 @@ :requires (web-mode company-web lsp-mode lsp-ui) :ensure t) +(use-package vue-mode + :ensure t + :defer t) + ;; Use js2-mode for javascript editing (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) (add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode)) @@ -39,6 +43,7 @@ '(company-capf company-yasnippet))) (add-hook 'js2-mode-hook 'activate-js2-mode) +(add-hook 'vue-mode-hook 'lsp) (provide 'languages/javascript) ;;; javascript.el ends here diff --git a/languages/php.el b/languages/php.el new file mode 100644 index 0000000..4dd3c04 --- /dev/null +++ b/languages/php.el @@ -0,0 +1,49 @@ +;;; php.el --- summary + +;; Author: Maciej Szlosarczyk +;; Maintainer: Maciej Szlosarczyk +;; Version: 0.1-snapshot + +;;; Commentary: + +;; php related settings + +;;; Code: + +(require 'pkg/prog-mode "$HOME/.emacs.d/pkg/prog-mode.el") +(require 'pkg/flycheck "$HOME/.emacs.d/pkg/flycheck.el") +(require 'pkg/hydra "$HOME/.emacs.d/pkg/hydra.el") + +(use-package php-mode + :requires (lsp-mode lsp-ui) + :ensure t) + +(defhydra my-php/context-hydra (:color teal :hint nil) + " + ^PHP actions^ +^^^^^^^^----------------------------------------------------------------------- +_r_: Reload buffer +_i_: Indent buffer _m_: iMenu +" + ("q" nil "cancel" :color blue) + + ("r" revert-buffer-no-confirm) + ("i" indent-region) + + ("m" lsp-ui-imenu)) + +(defun activate-php-mode () + "All things php." + (set-indent 4) + (column-enforce-n 80) + + (define-key php-mode-map (kbd "C-c l") 'my-php/context-hydra/body) + + ;; Company list override + (add-to-list (make-local-variable 'company-backends) + '(company-capf company-yasnippet))) + +(add-hook 'php-mode-hook 'activate-php-mode) + +(provide 'languages/php) +;;; php.el ends here