From f62bec1463593d6363cf87bf5ba6274e872f6627 Mon Sep 17 00:00:00 2001 From: brianhuster Date: Sun, 20 Apr 2025 22:25:45 +0700 Subject: [PATCH 1/2] runtime(ftplugin): make ft-typescript use javascript.vim Typescript (and JavascriptReact, TypescriptReact) are just super-sets of Javascript. So to avoid duplication, we should make them source ft-javascript. --- runtime/ftplugin/javascript.vim | 17 +---------------- runtime/ftplugin/javascript_extra.vim | 14 ++++++++++++++ runtime/ftplugin/typescript.vim | 24 +----------------------- 3 files changed, 16 insertions(+), 39 deletions(-) create mode 100644 runtime/ftplugin/javascript_extra.vim diff --git a/runtime/ftplugin/javascript.vim b/runtime/ftplugin/javascript.vim index 455b794cf0..7b6b1487b3 100644 --- a/runtime/ftplugin/javascript.vim +++ b/runtime/ftplugin/javascript.vim @@ -27,23 +27,8 @@ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// setlocal commentstring=//\ %s -" Change the :browse e filter to primarily show JavaScript-related files. -if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") - let b:browsefilter = - \ "JavaScript Files (*.js)\t*.js\n" - \ .. "JSX Files (*.jsx)\t*.jsx\n" - \ .. "JavaScript Modules (*.es, *.es6, *.cjs, *.mjs, *.jsm)\t*.es;*.es6;*.cjs;*.mjs;*.jsm\n" - \ .. "Vue Templates (*.vue)\t*.vue\n" - \ .. "JSON Files (*.json)\t*.json\n" - if has("win32") - let b:browsefilter ..= "All Files (*.*)\t*\n" - else - let b:browsefilter ..= "All Files (*)\t*\n" - endif -endif - " The following suffixes should be implied when resolving filenames -setlocal suffixesadd+=.js,.jsx,.es,.es6,.cjs,.mjs,.jsm,.vue,.json +setlocal suffixesadd+=.tsx,.jsx,.ts,.d.ts,.vue,.mjs,.js,.cjs,.json " The following suffixes should have low priority " .snap jest snapshot diff --git a/runtime/ftplugin/javascript_extra.vim b/runtime/ftplugin/javascript_extra.vim new file mode 100644 index 0000000000..19f2a09f7a --- /dev/null +++ b/runtime/ftplugin/javascript_extra.vim @@ -0,0 +1,14 @@ +" Change the :browse e filter to primarily show JavaScript-related files. +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = + \ "JavaScript Files (*.js)\t*.js\n" + \ .. "JSX Files (*.jsx)\t*.jsx\n" + \ .. "JavaScript Modules (*.es, *.es6, *.cjs, *.mjs, *.jsm)\t*.es;*.es6;*.cjs;*.mjs;*.jsm\n" + \ .. "Vue Templates (*.vue)\t*.vue\n" + \ .. "JSON Files (*.json)\t*.json\n" + if has("win32") + let b:browsefilter ..= "All Files (*.*)\t*\n" + else + let b:browsefilter ..= "All Files (*)\t*\n" + endif +endif diff --git a/runtime/ftplugin/typescript.vim b/runtime/ftplugin/typescript.vim index fb5f4e135f..05ce70cd8b 100644 --- a/runtime/ftplugin/typescript.vim +++ b/runtime/ftplugin/typescript.vim @@ -4,26 +4,7 @@ " Last Change: 2024 Jan 14 " 2024 May 23 by Riley Bruins ('commentstring') -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 - -let s:cpo_save = &cpo -set cpo-=C - -" Set 'formatoptions' to break comment lines but not other lines, -" and insert the comment leader when hitting or using "o". -setlocal formatoptions-=t formatoptions+=croql - -" Set 'comments' to format dashed lists in comments. -setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// - -setlocal commentstring=//\ %s - -setlocal suffixesadd+=.ts,.d.ts,.tsx,.js,.jsx,.cjs,.mjs - -let b:undo_ftplugin = "setl fo< com< cms< sua<" +runtime! ftplugin/javascript.vim " Change the :browse e filter to primarily show TypeScript-related files. if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") @@ -40,6 +21,3 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") endif let b:undo_ftplugin .= " | unlet! b:browsefilter" endif - -let &cpo = s:cpo_save -unlet s:cpo_save From 492d0de0107242284310a87bfb804b465b66036b Mon Sep 17 00:00:00 2001 From: brianhuster Date: Sun, 20 Apr 2025 22:42:28 +0700 Subject: [PATCH 2/2] update --- runtime/ftplugin/javascript.vim | 2 +- runtime/ftplugin/javascriptreact.vim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/ftplugin/javascript.vim b/runtime/ftplugin/javascript.vim index 7b6b1487b3..6c8b3d190a 100644 --- a/runtime/ftplugin/javascript.vim +++ b/runtime/ftplugin/javascript.vim @@ -28,7 +28,7 @@ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// setlocal commentstring=//\ %s " The following suffixes should be implied when resolving filenames -setlocal suffixesadd+=.tsx,.jsx,.ts,.d.ts,.vue,.mjs,.js,.cjs,.json +setlocal suffixesadd+=.tsx,.jsx,.ts,.d.ts,.vue,.mjs,.js,.cjs,.json,.jsm,.es6,.es " The following suffixes should have low priority " .snap jest snapshot diff --git a/runtime/ftplugin/javascriptreact.vim b/runtime/ftplugin/javascriptreact.vim index b9c39d5e68..8658a7a9d4 100644 --- a/runtime/ftplugin/javascriptreact.vim +++ b/runtime/ftplugin/javascriptreact.vim @@ -4,4 +4,4 @@ " Last Change: 2020 Aug 19 " Placeholder for backwards compatilibity: .jsx used to stand for JavaScript. -runtime! ftplugin/javascript.vim +runtime! ftplugin/javascript.vim ftplugin/javascript_*.vim