3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WACULAdvent Calendar 2015

Day 21

dtsm + Vim + Uniteで.d.ts管理が幸せになる話

Last updated at Posted at 2015-12-20

久々にTypeScript + Vimのお話です。

TypeScriptには欠かせない.d.tsファイルですが、管理には何を使ってますか?
僕は @vvakame 氏のdtsmを使っていますが、やはりVimmerとしてはVimからの操作で完結したいものです。

ということで、vim-dtsmというVim プラギンを作りました。

screencast

:Unite dtsm で.d.tsの一覧が表示されるので、必要であれば、Iで絞り込んでcandidateを選択すると install --saveしてくれます。

本家のdtsmでもdtsm search -idtsm 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に書いてあります。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?