Vimとvim-lspを使ってKotlinの開発環境を整える
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