0
1

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.

aleとasyncomplete.vimを使ってTypeScriptの入力補完を行う

Last updated at Posted at 2019-10-06

概要

aleasyncomplete.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 = '''
let g:ale_linters_explicit = 1 " 必要なlinterのみ有効化したいため
let g:ale_linters = {
  \   'typescript': ['tsserver']
  \   }
'''
depends = 'asyncomplete.vim'

[[plugins]]
repo = 'prabirshrestha/asyncomplete.vim'
on_func = 'asyncomplete#enable_for_buffer'
hook_source = '''
let g: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 call s:typescript()
augroup END

参考

以下を参考にさせていただきました。

https://qiita.com/hokorobi/items/b4be36253262373fbefc
https://github.com/dense-analysis/ale/pull/2627

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?