emacs/lisp/langs/icejam-lang-web.el
Maciej Szlosarczyk a68257ee41
All checks were successful
/ Test config on 20 (push) Successful in 26s
Prefer setopt to :custom from use-package
The following does not provide completion for variables:

  (use-package thing :custom (thing-thing :ok))
2024-10-31 14:36:47 +02:00

48 lines
1.3 KiB
EmacsLisp

;;; web -- summary -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'icejam-lsp)
(require 'icejam-flycheck)
(use-package web-mode :after (lsp flycheck) :ensure t :defer t)
;; Eex Web mode
(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.leex\\'" . web-mode))
;; ERB mode
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
;; Vue JS
(add-to-list 'auto-mode-alist '("\\.vue\\'" . web-mode))
(setq web-mode-extra-auto-pairs
'(("eex" . (("<%" "%>")))
("leex" . (("<%" "%>")))
("erb" . (("<%" "%>")
("beg" "end")))))
(defun icejam-activate-web-mode ()
"Web mode overrides."
;; Indent web mode scripts by 2
(setq-local web-mode-script-padding 2)
(setq-local web-mode-code-indent-offset 2)
(setq-local web-mode-markup-indent-offset 2)
(setq-local lsp-eldoc-enable-hover nil)
(setq-local flycheck-check-syntax-automatically '(save mode-enabled))
(add-to-list (make-local-variable 'company-backends)
'(company-capf company-yasnippet))
(when (string-match-p ".jsx" (buffer-file-name))
(lsp))
(when (string-match-p ".tsx" (buffer-file-name))
(lsp))
(when (string-match-p ".vue" (buffer-file-name))
(lsp)))
(add-hook 'web-mode-hook 'icejam-activate-web-mode)
(provide 'icejam-lang-web)
;;; icejam-lang-web.el ends here