Make js-jsx-regexps case-sensitive

The regexp in this list used a capitalized “React” because it actually
should be capitalized like that.  Otherwise, the following code would
produce a false positive match: import Thing from './react/Thing'

* lisp/progmodes/js.el (js-jsx-regexps): Update docstring.
(js-jsx--detect-and-enable): Match case-sensitively when determining
whether JSX should be enabled.
parent 2f600e97
Pipeline #3258 failed with stage
in 54 minutes and 23 seconds
......@@ -4484,7 +4484,7 @@ their `mode-name' updates to show enabled syntax extensions."
(defvar js-jsx-regexps
(list "\\_<\\(?:var\\|let\\|const\\|import\\)\\_>.*?React")
"Regexps for detecting JSX in JavaScript buffers.
"Case-sensitive regexps for detecting JSX in JavaScript buffers.
When `js-jsx-detect-syntax' is non-nil and any of these regexps
match text near the beginning of a JavaScript buffer,
`js-jsx-syntax' (which see) will be made buffer-local and set to
......@@ -4504,7 +4504,9 @@ is non-nil. Return t after enabling, nil otherwise."
(catch 'match
(mapc
(lambda (regexp)
(if (re-search-forward regexp 4000 t) (throw 'match t)))
(when (let (case-fold-search)
(re-search-forward regexp 4000 t))
(throw 'match t)))
js-jsx-regexps)
nil))))
(js-jsx-enable)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment