diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index d5204cc8c..8c4c0898f 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -37,15 +37,37 @@ :n "S" #'+javascript/skewer-this-buffer)) +(def-package! typescript-mode + :mode "\\.ts$" + :config + (add-hook 'typescript-mode-hook #'rainbow-delimiters-mode) + (set! :electric 'typescript-mode :chars '(?\} ?\)) :words '("||" "&&"))) + + (def-package! tide :hook (js2-mode . tide-setup) + :hook (typescript-mode . tide-setup) + :init + (defun +javascript|init-tide-in-web-mode () + (when (string= (file-name-extension (or buffer-file-name "")) "tsx") + (tide-setup))) + (add-hook 'web-mode-hook #'+javascript|init-tide-in-web-mode) :config - (set! :company 'js2-mode 'company-tide) - (set! :lookup 'js2-mode + (set! :company '(js2-mode typescript-mode) 'company-tide) + (set! :lookup '(js2-mode typescript-mode) :definition #'tide-jump-to-definition :references #'tide-references :documentation #'tide-documentation-at-point) - (add-hook! 'tide-mode-hook #'(eldoc-mode tide-hl-identifier-mode))) + (add-hook! 'tide-mode-hook #'(eldoc-mode tide-hl-identifier-mode)) + + (def-menu! +javascript/refactor-menu + "TODO" + '(("rename symbol" :exec tide-rename-symbol) + ("restart tide server" :exec tide-restart-server))) + + (map! :map tide-mode-map + :localleader + :n "r" #'+javascript/refactor-menu)) ;; A find-{definition,references} backend for js2-mode. NOTE The xref API is diff --git a/modules/lang/typescript/config.el b/modules/lang/typescript/config.el deleted file mode 100644 index 566a2d925..000000000 --- a/modules/lang/typescript/config.el +++ /dev/null @@ -1,38 +0,0 @@ -;;; lang/typescript/config.el -*- lexical-binding: t; -*- - -(def-package! typescript-mode - :mode "\\.ts$" - :config - (add-hook 'typescript-mode-hook #'rainbow-delimiters-mode) - (set! :electric 'typescript-mode :chars '(?\} ?\)) :words '("||" "&&"))) - - -(def-package! tide - :hook (typescript-mode . tide-setup) - :init - (defun +typescript|init-tide-in-web-mode () - (when (string= (file-name-extension (or buffer-file-name "")) "tsx") - (tide-setup))) - (add-hook 'web-mode-hook #'+typescript|init-tide-in-web-mode) - :config - (set! :company-backend 'typescript-mode '(company-tide)) - (set! :lookup 'typescript-mode - :definition #'tide-jump-to-definition - :references #'tide-references - :documentation #'tide-documentation-at-point) - - (setq tide-format-options - '(:insertSpaceAfterFunctionKeywordForAnonymousFunctions t - :placeOpenBraceOnNewLineForFunctions nil)) - - (def-menu! +typescript/refactor-menu - "TODO" - '(("rename symbol" :exec tide-rename-symbol) - ("restart tide server" :exec tide-restart-server))) - - (map! :map tide-mode-map - :localleader - :n "r" #'+typescript/refactor-menu) - - (add-hook! 'tide-mode-hook #'(flycheck-mode eldoc-mode))) - diff --git a/modules/lang/typescript/packages.el b/modules/lang/typescript/packages.el deleted file mode 100644 index 41af79318..000000000 --- a/modules/lang/typescript/packages.el +++ /dev/null @@ -1,6 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; lang/typescript/packages.el - -(package! tide) -(package! typescript-mode) -