🧩

Vimとvim-lspを使ってKotlinの開発環境を整える

2020/09/26に公開

vim-lspでkotlinを書きたい

Androidアプリを作成する第一歩としてKotlinの基本文法を学びたい筆者.そのためにAtCoderをKotlinで解いてみようと思い,Vim(NeoVim)でKotlinの環境を整えようとする.vim-lsp-settingsでKotlinの拡張子'kt'ファイルを作成し,:LspInstallServerを実行してみるもkotlin-language-serverではなくefm-langserverが喜々として入ってきてしまう.それでもVimを使ってKotlinを書きたい筆者の開発環境作成奮闘記です.

vim-lsp-settingsについて

ほんとに便利なvimのプラグインで大変お世話になっております.lspを使って環境を構築する際にコマンド一つでそれぞれの言語のlanguageサーバを引っ張ってきてくれます.ただ私の環境ではKotlinファイル(ktが拡張子のファイル)を開きコマンドを入力してみても期待していた環境はできませんでした.この現象が発生しているのは僕だけなのかもしれませんがkotlin vim-lspで検索してみてもいまいちパっとした解決策がなさそうでした.

原因

拡張子ktのファイルを開いてもfiletypeがkotlinにならない.

set filetype?
" filetype=

filetypeの設定はこんな感じ

filetype plugin indent on
syntax enable

解決策

ktの拡張子を持つファイルを開いたらそれはKotlinのファイルであることを教えてあげるために以下の設定をinit.vimに追加する.

autocmd BufReadPost *.kt setlocal filetype=kotlin

この設定が終わったあとにfiletypeを確認する.

filetype=kotlin

NeoVimくんがkt拡張子のファイルをkotlinだと判断してくれるようになった.これでLspInstallServerを実行すると無事kotlin-language-serverが入ってきてくれるようになった.

シンタックスハイライトが効いてくれない

kotlin-language-serverが入ってきて安心だとソースコードが一色でしか表示してくれない.

(シンタックスハイライトってLSPの範囲外なんですね...)どうすればいいのかなーって悩んでたらkotlin-vimというプラグインがKotlinのシンタックスハイライトに対応しているらしい.

Plug 'udalov/kotlin-vim'

これでシンタックスハイライトも付いてくれた.

このプラグインを入れるとkt拡張子のファイルをKotlinだと判断してくれるのでautocmd BufReadPost *.kt setlocal filetype=kotlinは必要なくなった.

Discussion