rustup を Vim から呼び出すプラグインを作りました
タイトルの通りです。
少し前に rustup
のメジャーアップデートがアナウンスされたばかりですがそれとは関係ないです。
Vim のタブライン上に使用中の Rust のツールチェインを表示するように設定を弄っているときに思いつき、この手のプラグインが見つからなかったことを踏まえて勢いで作りました。
Rust 的にも Vim script 的にも特に難しいことをしていることはなく、単に関数名に対応したコマンドライン引数で rustup
を実行し、得られる標準出力を文字列を返す仕様にしました。
一応セールスポイントを挙げておくと、 rustup#active_toolchain()
という関数を呼び出すことで現在有効になっているツールチェインを取得することができるようになっています。
使用例として、タブラインの右端に現在使用しているチャンネルを表示するための設定を下に書いておきました(Vim まわりの知識が乏しいのであまり良い例ではないですがご了承ください)。
let s:current_rustup_toolchain = '' function! s:rustup_toolchain() if s:current_rustup_toolchain !=# '' return s:current_rustup_toolchain endif try let s:current_rustup_toolchain = rustup#active_toolchain() catch endtry endfunction function! s:make_tabline() let envstatus = '' let toolchain = s:rustup_toolchain() if toolchain !=# '' let toolchain = split(toolchain, '-')[0] let envstatus = envstatus . '[rust:' . toolchain . ']' endif return '%#TabLineFill#%T%=' . envstatus endfunction set showtabline=2 set tabline=%!tabline#make_tabline() augroup TabLine autocmd! autocmd VimEnter * call s:tabline() augroup END
あまり活用する機会が無い気もしますが、Rustacean かつ Vimmer な方々はぜひお試しください。