From a0ae976555e7e822766ff9d3bfb9050ff0de3ba0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 4 Apr 2017 03:36:21 -0400 Subject: [PATCH] lang/javascript: more intelligent JSX detection --- modules/lang/javascript/config.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 1ed285932..d48156bc0 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -104,6 +104,18 @@ :commands rjsx-mode :mode "\\.jsx$" :mode "components/.+\\.js$" + :init + ;; auto-detect JSX file + (push (cons (lambda () + (and (equal (file-name-extension buffer-file-name) "js") + (re-search-forward "\\(^\\s-*import React\\|\\( from \\|require(\\)[\"']react\\)" + magic-mode-regexp-match-limit t) + (progn + (goto-char (match-beginning 1)) + (not (sp-point-in-string-or-comment))))) + 'rjsx-mode) + magic-mode-alist) + :config ;; disable electric keys (I use snippets and `emmet-mode' instead) (define-key rjsx-mode-map "<" nil)