概要
aleとasyncomplete.vimを使って、TypeScriptの入力補完を行うための設定について記載します。
前提
- プラグインの管理はdein.vimで行っています。
- tsserverを使用するため、typescriptがプロジェクトローカルまたはグローバルにインストールされている必要があります。
依存関係
必要になるまでaleを有効化したくないため、on_cmd
にコマンドを列挙しています。
各プラグインの設定はhook_source
で行っています。
[[plugins]]
repo ='dense-analysis/ale'
on_cmd =['ALELint','ALEToggle','ALEEnable','ALEToggleBuffer','ALEEnableBuffer']
hook_source ='''
letg:ale_linters_explicit=1 " 必要なlinterのみ有効化したいため
letg:ale_linters={ \'typescript':['tsserver'] \}'''
[[plugins]]
repo ='prabirshrestha/asyncomplete.vim'
on_func ='asyncomplete#enable_for_buffer'
hook_source ='''
letg:asyncomplete_enable_for_all=0 " TypeScriptファイルの編集時のみ使用したいため
set completeopt+=preview
autocmd User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#ale#get_source_options({\'priority':10\}))'''
vimrc
下記の設定をvimrcに記載します。
設定後、vimrc等必要なファイルの再読み込みを行うと、入力補完が効くようになると思います。
" .tsファイルを開いたときに、aleとasyncomplete.vimを有効化しています。function!s:typescript() abort
ALEEnable
call asyncomplete#enable_for_buffer()
map <buffer><C-]><Plug>(ale_go_to_definition)
imap <buffer><C-Space><Plug>(asyncomplete_force_refresh)endfunction
augroup TypeScript
autocmd!
autocmd FileType typescript calls:typescript()
augroup END
参考
以下を参考にさせていただきました。
https://qiita.com/hokorobi/items/b4be36253262373fbefc
https://github.com/dense-analysis/ale/pull/2627