2019年3月31日日曜日

Debian 上の Vim に typesript-language-server を導入する

typescript-language-server の挙動を検証する必要が出てきたので、環境を構築する。

Debian 最小構成に、 vim と vim-lsp, typescript-language-server 環境を載せていく。

環境

  • OS: Debian buster(debian:buster-slim の docker イメージ)

必要なパッケージをインストール

apt-get update
apt-get -y upgrade
apt-get install -y npm vim git

typesript-language-server インストール

以下のコマンドで実行可能な環境を構築できる。

npm install -g typescript typescript-language-server

typesript-language-server 動作確認

下記コマンドを実行。

typescript-language-server --version

バージョンが出力されれば OK.

vim-lsp のインストール

  • Vim のパッケージ機能を使ってプラグインの管理を行う
  • vim-lsp と async.vim を配置する
  • vim-lsp は使うときだけ有効にしたいので、 opt ディレクトリに入れる

~/.vim/pack/lsp/opt にインストールする場合、 以下のコマンドで実行可能な環境を構築できる。

mkdir -p ~/.vim/pack/lsp/opt
cd ~/.vim/pack/lsp/opt
git clone https://github.com/prabirshrestha/vim-lsp.git
git clone https://github.com/prabirshrestha/async.vim.git

typesript-language-server を使うための設定

~/.vimrc に以下を記述。

syntax on
filetype plugin indent on

""" for typesript development
command! Tsd call StartTypescriptDevelopment()
function! StartTypescriptDevelopment()
    packadd async.vim
    packadd vim-lsp

    let g:lsp_log_verbose = 1
    let g:lsp_log_file = expand('~/vim-lsp.log')

    autocmd BufNewFile,BufRead *.ts set filetype=typescript

    autocmd User lsp_setup call lsp#register_server({
        \ 'name': 'typescript-language-server',
        \ 'cmd': {server_info->[
        \     'typescript-language-server', '--stdio'
        \ ]},
        \ 'whitelist': ['typescript'],
        \ })

    call lsp#enable()
    autocmd FileType typescript setlocal omnifunc=lsp#complete
endfunction

動作確認

vim を開いて :Tsd -> :e test.ts として、typescript を書いていくとオムニ補完に typescript-language-server が使われる。

以上。

0 件のコメント:

コメントを投稿