emacs/lisp/langs/icejam-lang-javascript.el
Maciej Szlosarczyk 2ef1340e6c
Some checks failed
/ Test config on 20 (push) Failing after 49s
Replace lsp-mode with eglot
2025-09-18 15:06:30 +03:00

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