patch 8.1.1930: cannot recognize .jsx and .tsx files
Problem: Cannot recognize .jsx and .tsx files.
Solution: Recognize them as javascriptreact and typescriptreact.
(closes #4830)
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 895ac06..e702be9 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -798,7 +798,10 @@
au BufNewFile,BufRead *.jj,*.jjt setf javacc
" JavaScript, ECMAScript
-au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.mjs setf javascript
+au BufNewFile,BufRead *.js,*.javascript,*.es,*.mjs setf javascript
+
+" JavaScript with React
+au BufNewFile,BufRead *.jsx setf javascriptreact
" Java Server Pages
au BufNewFile,BufRead *.jsp setf jsp
@@ -1709,6 +1712,9 @@
" Typescript
au BufNewFile,BufReadPost *.ts setf typescript
+" TypeScript with React
+au BufNewFile,BufRead *.tsx setf typescriptreact
+
" Motif UIT/UIL files
au BufNewFile,BufRead *.uit,*.uil setf uil
diff --git a/runtime/ftplugin/javascriptreact.vim b/runtime/ftplugin/javascriptreact.vim
new file mode 100644
index 0000000..ea5c9f5
--- /dev/null
+++ b/runtime/ftplugin/javascriptreact.vim
@@ -0,0 +1,2 @@
+" Placeholder for backwards compatilibity: .jsx used to stand for JavaScript.
+source %:h/javascript.vim
diff --git a/runtime/indent/javascriptreact.vim b/runtime/indent/javascriptreact.vim
new file mode 100644
index 0000000..ea5c9f5
--- /dev/null
+++ b/runtime/indent/javascriptreact.vim
@@ -0,0 +1,2 @@
+" Placeholder for backwards compatilibity: .jsx used to stand for JavaScript.
+source %:h/javascript.vim
diff --git a/runtime/syntax/javascriptreact.vim b/runtime/syntax/javascriptreact.vim
new file mode 100644
index 0000000..ea5c9f5
--- /dev/null
+++ b/runtime/syntax/javascriptreact.vim
@@ -0,0 +1,2 @@
+" Placeholder for backwards compatilibity: .jsx used to stand for JavaScript.
+source %:h/javascript.vim