52 lines
1.5 KiB
EmacsLisp
52 lines
1.5 KiB
EmacsLisp
;;; javascript -- summary -*- lexical-binding: t; -*-
|
|
;;; Commentary:
|
|
;;; Code:
|
|
|
|
(declare-function column-enforce-n 'column-enforce-mode (number))
|
|
(declare-function icejam-set-indent 'icejam-prog-mode)
|
|
(declare-function icejam-set-eglot-capfs 'icejam-complete-at-point)
|
|
|
|
(use-package js2-mode :ensure t :defer t :after(web-mode))
|
|
|
|
(use-package typescript-ts-mode :ensure nil :defer t)
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-ts-mode))
|
|
|
|
(defun icejam-activate-typescript-ts-mode ()
|
|
"Typescript mode overrides."
|
|
(icejam-set-indent 2)
|
|
(eglot-ensure)
|
|
(column-enforce-n 100))
|
|
|
|
(add-hook 'typescript-ts-mode-hook 'icejam-activate-typescript-ts-mode)
|
|
|
|
;; (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))
|
|
|
|
(defun icejam-activate-js2-mode ()
|
|
"JS2 mode overrides."
|
|
(icejam-set-indent 2)
|
|
|
|
(when (not (string-match-p ".json" (buffer-file-name)))
|
|
(eglot-ensure))
|
|
|
|
(column-enforce-n 80)
|
|
(setq-local js2-basic-offset 2)
|
|
(setq-local js2-strict-missing-semi-warning nil)
|
|
(setq js2-mode-show-parse-errors nil)
|
|
(setq js2-mode-show-strict-warnings nil)
|
|
|
|
(setq-local flycheck-check-syntax-automatically '(save mode-enabled))
|
|
|
|
(icejam-set-eglot-capfs))
|
|
|
|
(add-hook 'js2-mode-hook 'icejam-activate-js2-mode)
|
|
|
|
(provide 'icejam-lang-javascript)
|
|
;;; icejam-lang-javascript.el ends here
|