From 6257322d751dc36eaaf509682da164f6aef3ff90 Mon Sep 17 00:00:00 2001 From: Matthew Kosarek Date: Sat, 3 Sep 2022 12:01:26 -0400 Subject: Big upgrade to javascript/typescript to use a lanugage server --- lisp/web.el | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 lisp/web.el (limited to 'lisp/web.el') diff --git a/lisp/web.el b/lisp/web.el new file mode 100644 index 0000000..ae8f96c --- /dev/null +++ b/lisp/web.el @@ -0,0 +1,53 @@ + +;;; Code: +;; web mode +(use-package web-mode + :mode ("\\.html\\'" . web-mode) + :config (setq + web-mode-markup-indent-offset 2 + web-mode-code-indent-offset 2 + web-mode-enable-current-element-highlight t + web-mode-enable-current-column-highlight t + )) +(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.css\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.js\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.php\\'" . web-mode)) +(defun my-web-mode-hook () + "Hooks for Web mode." + (setq web-mode-markup-indent-offset 2) + (setq web-mode-css-indent-offset 2) + (setq web-mode-code-indent-offset 2) +) +(add-hook 'web-mode-hook 'my-web-mode-hook) + + +(require 'eglot) + +;; JavaScript +(require 'js2-mode) +(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) +(add-hook 'js2-mode-hook #'js2-imenu-extras-mode) + +(defun my-js2-mode-hook() + "Hooks for Javscript 2 Mode." + (setq js-indent-level 2) + (company-mode t) + (company-quickhelp-mode t) +) +(add-hook 'js2-mode-hook 'my-js2-mode-hook) +(add-hook 'js2-mode-hook 'eglot-ensure) +(push '("\\.js[x]?\\'" . js2-mode) auto-mode-alist) + +;; JS2-Refactor +(use-package js2-refactor) +(add-hook 'js2-mode-hook #'js2-refactor-mode) +(js2r-add-keybindings-with-prefix "C-c C-r") + +;; Web goodies +(autoload 'json-mode "json-mode" + "Use the json-mode package to provide 'json-mode on-demand." + t) + +(provide 'web) +;;; web.el ends here -- cgit v1.2.1