diff options
| author | Matthew Kosarek <mattkae@protonmail.com> | 2022-09-14 08:57:18 -0400 | 
|---|---|---|
| committer | Matthew Kosarek <mattkae@protonmail.com> | 2022-09-14 08:57:18 -0400 | 
| commit | f52f8ada8927a60be48619b8339aa853cab40c6a (patch) | |
| tree | 3ec2a974479ba9499208ea1f3912b18c67f8bbe4 | |
| parent | 0f75621ea1c94e7411c2f94caa821c8741fcd6b7 (diff) | |
TSX support
| -rw-r--r-- | lisp/web.el | 31 | 
1 files changed, 18 insertions, 13 deletions
diff --git a/lisp/web.el b/lisp/web.el index 8a21a76..c78d40e 100644 --- a/lisp/web.el +++ b/lisp/web.el @@ -21,9 +21,6 @@  )  (add-hook 'web-mode-hook  'my-web-mode-hook) - -(require 'eglot) -  ;; JavaScript  (require 'js2-mode)  (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) @@ -36,7 +33,6 @@    (company-quickhelp-mode t)  )  (add-hook 'js2-mode-hook 'my-js2-mode-hook) -(add-hook 'js2-mode-hook 'eglot-ensure)  (add-hook 'js2-mode-hook #'smartparens-mode)  (push '("\\.js[x]?\\'" . js2-mode) auto-mode-alist)  (define-key js2-mode-map (kbd "M-.") nil) @@ -58,21 +54,30 @@  ;; Typescript  (defun setup-ts-mode()    (interactive) +  (typescript-indent-level 2)    (company-mode t)    (company-quickhelp-mode t)  ) +(define-derived-mode typescriptreact-mode web-mode "TypescriptReact" +  "A major mode for tsx.")  (use-package typescript-mode -  :init -  (define-derived-mode typescript-tsx-mode typescript-mode "TSX") -  (add-to-list 'auto-mode-alist `(,(rx ".tsx" eos) . typescript-tsx-mode)) -  :config -  :custom -  (typescript-indent-level 2)) - - +  :mode (("\\.ts\\'" . typescript-mode) +         ("\\.tsx\\'" . typescriptreact-mode)))  (add-hook 'typescript-mode-hook #'setup-ts-mode) -(add-hook 'typescript-mode-hook 'eglot-ensure) +(add-hook 'typescriptreact-mode-hook #'setup-ts-mode) + +(use-package eglot +  :ensure t +  :defer 3 +  :hook +  ((js2-mode +    typescript-mode +    typescriptreact-mode) . eglot-ensure)) +  :config +  (cl-pushnew '((js-mode typescript-mode typescriptreact-mode) . ("typescript-language-server" "--stdio")) +              eglot-server-programs +              :test #'equal)  ;; Web goodies  (autoload 'json-mode "json-mode"  | 
