From 5c45a9eff9158f197bbebd08ff328d7789cc6b79 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 26 Dec 2019 14:55:43 -0500 Subject: [PATCH] Fall back to typescript-mode for *.tsx #2252 --- modules/lang/javascript/config.el | 11 ++++++++++- modules/lang/web/+html.el | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 93c839fae..02f513175 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -94,7 +94,16 @@ (if (= n 1) (rjsx-maybe-reparse)))) -(after! typescript-mode +(use-package! typescript-mode + :defer t + :init + ;; REVIEW Fix #2252. This is overwritten if the :lang web module is enabled. + ;; We associate TSX files with `web-mode' by default instead because + ;; `typescript-mode' does not officially support JSX/TSX. See + ;; https://github.com/emacs-typescript/typescript.el/issues/4 + (unless (featurep! :lang web) + (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-mode))) + :config (add-hook 'typescript-mode-hook #'rainbow-delimiters-mode) (setq-hook! 'typescript-mode-hook comment-line-break-function #'js2-line-break) diff --git a/modules/lang/web/+html.el b/modules/lang/web/+html.el index 424cad0c3..4870ab20c 100644 --- a/modules/lang/web/+html.el +++ b/modules/lang/web/+html.el @@ -1,6 +1,9 @@ ;;; lang/web/+html.el -*- lexical-binding: t; -*- (use-package! web-mode + ;; REVIEW We associate TSX files with `web-mode' because `typescript-mode' + ;; does not officially support JSX/TSX. See + ;; https://github.com/emacs-typescript/typescript.el/issues/4 :mode "\\.\\(?:as\\(?:[cp]x\\)\\|blade\\.php\\|erb\\|hbs\\|j\\(?:inja\\|sp\\)\\|mustache\\|p?html?\\|svelte\\|t\\(?:pl\\.php\\|sx\\|wig\\)\\|vue\\)\\'" :mode "wp-content/themes/.+/.+\\.php\\'" :mode "templates/.+\\.php\\'"