From 3cc1b5c5b970af7ee3612ecba038c7fd3a16992d Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 3 Oct 2020 09:54:55 -0400 Subject: [PATCH] runtime/typescript: 3d1cde8a2f28dce2c82d2b2b4c5e35e6662030e0 Port typescript ftplugin and compiler files only. https://github.com/vim/vim/commit/3d1cde8a2f28dce2c82d2b2b4c5e35e6662030e0 --- runtime/compiler/ts-node.vim | 29 +++++++++++++++++++++ runtime/compiler/tsc.vim | 26 +++++++++++++++++++ runtime/ftplugin/typescript.vim | 39 ++++++++++++++++++++++++++++ runtime/ftplugin/typescriptreact.vim | 33 +++++++++++++++++++++++ 4 files changed, 127 insertions(+) create mode 100644 runtime/compiler/ts-node.vim create mode 100644 runtime/compiler/tsc.vim create mode 100644 runtime/ftplugin/typescript.vim create mode 100644 runtime/ftplugin/typescriptreact.vim diff --git a/runtime/compiler/ts-node.vim b/runtime/compiler/ts-node.vim new file mode 100644 index 0000000000..14f0ea790c --- /dev/null +++ b/runtime/compiler/ts-node.vim @@ -0,0 +1,29 @@ +" Vim compiler file +" Compiler: TypeScript Runner +" Maintainer: Doug Kearns +" Last Change: 2020 Feb 10 + +if exists("current_compiler") + finish +endif +let current_compiler = "node" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo&vim + +" CompilerSet makeprg=npx\ ts-node + +CompilerSet makeprg=ts-node +CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m, + \%E%f:%l, + \%+Z%\\w%\\+Error:\ %.%#, + \%C%p^%\\+, + \%C%.%#, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/compiler/tsc.vim b/runtime/compiler/tsc.vim new file mode 100644 index 0000000000..a246fc7751 --- /dev/null +++ b/runtime/compiler/tsc.vim @@ -0,0 +1,26 @@ +" Vim compiler file +" Compiler: TypeScript Compiler +" Maintainer: Doug Kearns +" Last Change: 2020 Feb 10 + +if exists("current_compiler") + finish +endif +let current_compiler = "tsc" + +if exists(":CompilerSet") != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo&vim + +" CompilerSet makeprg=npx\ tsc + +CompilerSet makeprg=tsc +CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m, + \%trror\ TS%n:\ %m, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/typescript.vim b/runtime/ftplugin/typescript.vim new file mode 100644 index 0000000000..f701ae96cd --- /dev/null +++ b/runtime/ftplugin/typescript.vim @@ -0,0 +1,39 @@ +" Vim filetype plugin file +" Language: TypeScript +" Maintainer: Doug Kearns +" Last Change: 2019 Aug 30 + +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 + +" Change the :browse e filter to primarily show TypeScript-related files. +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter="TypeScript Files (*.ts)\t*.ts\n" . + \ "TypeScript Declaration Files (*.d.ts)\t*.d.ts\n" . + \ "TSX Files (*.tsx)\t*.tsx\n" . + \ "JavaScript Files (*.js)\t*.js\n" . + \ "JavaScript Modules (*.es, *.cjs, *.mjs)\t*.es;*.cjs;*.mjs\n" . + \ "JSON Files (*.json)\t*.json\n" . + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setl fo< com< cms< sua< | unlet! b:browsefilter" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/typescriptreact.vim b/runtime/ftplugin/typescriptreact.vim new file mode 100644 index 0000000000..3bd6001a18 --- /dev/null +++ b/runtime/ftplugin/typescriptreact.vim @@ -0,0 +1,33 @@ +" Vim filetype plugin file +" Language: TypeScript React +" Maintainer: Doug Kearns +" Last Change: 2020 Aug 09 + +let s:match_words = "" +let s:undo_ftplugin = "" + +runtime! ftplugin/typescript.vim + +let s:cpo_save = &cpo +set cpo-=C + +if exists("b:match_words") + let s:match_words = b:match_words +endif +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin +endif + +" Matchit configuration +if exists("loaded_matchit") + let b:match_ignorecase = 0 + let b:match_words = s:match_words . + \ '<:>,' . + \ '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,' . + \ '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>' +endif + +let b:undo_ftplugin = "unlet! b:match_words b:match_ignorecase | " . s:undo_ftplugin + +let &cpo = s:cpo_save +unlet s:cpo_save