diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 4c303d848..1dfaa4215 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -47,14 +47,15 @@ :mode "components/.+\\.js$" :init (defun +javascript-jsx-file-p () + "Detect React or preact imports early in the file." (and buffer-file-name (string= (file-name-extension buffer-file-name) "js") - (re-search-forward "\\(^\\s-*import React\\|\\( from \\|require(\\)[\"']react\\)" + (re-search-forward "\\(^\\s-*import +\\(?:pr\\|R\\)eact\\|\\( from \\|require(\\)[\"']p?react\\)" magic-mode-regexp-match-limit t) (progn (goto-char (match-beginning 1)) (not (sp-point-in-string-or-comment))))) - (push (cons #'+javascript-jsx-file-p 'rjsx-mode) magic-mode-alist) + (push '(+javascript-jsx-file-p . rjsx-mode) magic-mode-alist) :config (set! :electric 'rjsx-mode :chars '(?\} ?\) ?. ?>)) (add-hook! 'rjsx-mode-hook