久々にTypeScript + Vimのお話です。
TypeScriptには欠かせない.d.tsファイルですが、管理には何を使ってますか?
僕は @vvakame 氏のdtsmを使っていますが、やはりVimmerとしてはVimからの操作で完結したいものです。
ということで、vim-dtsmというVim プラギンを作りました。
:Unite dtsm
で.d.tsの一覧が表示されるので、必要であれば、Iで絞り込んでcandidateを選択すると install --save
してくれます。
本家のdtsmでもdtsm search -i
やdtsm install -i
でpecoと連動したincremental searchが出来るんですが、この手の操作はUnite.vimの方が慣れてるので、Uniteのsource化しました。
殆ど書くことが無いので、Unite sourceのコードでも貼り付けときますね。Uniteのsource作るのがどんだけ簡単かが伝われば幸いかと。
autoload/unite/sources/dtsm.vim
scriptencoding utf-8
let s:source = {
\ 'name': 'dtsm',
\ 'description': '.d.ts files you can installe',
\ }
function! s:source.gather_candidates(args, context)
let stdouts = systemlist('dtsm search '.join(a:args, ' '))
let result = []
if len(stdouts) < 3
return
endif
call remove(stdouts, 0, 1)
for type_file_name in stdouts
call add(result, {
\ 'word': type_file_name,
\ 'kind': 'command',
\ 'source': 'dtsm',
\ 'action__command': 'DtsmInstall '.type_file_name
\ })
endfor
return result
endfunction
function! unite#sources#dtsm#define()
return s:source
endfunction
インストールとか細かいEx commandについては、レポジトリのREADMEに書いてあります。