Vala言語の開発環境構築 (Vim on Ubuntu20.04 on WSL2)
Valaという少しマイナーな言語がある。
GLibやGTK、GSLといったライブラリを使った開発をするなら、Valaという選択肢もある。
オブジェクト指向なので、補完も効きやすく良い。
Vala言語の開発環境を構築方法を書く。
前提条件
OS: Ubuntu 20.04 (WSL2上の)
エディタ: Vim
valacのインストール
sudo add-apt-repository ppa:vala-team
sudo apt update
sudo apt install valac
vala language serverのインストール
sudo add-apt-repository ppa:prince781/vala-language-server
sudo apt update
sudo apt install vala-language-server
Vimのvalaシンタクスハイライトのインストール
vim-plug
を使っている場合は、以下を.vimrc
のcall plug#begin()
とcall plug#end()
の間に追記。
Plug 'arrufat/vala.vim
もちろん、書き終わったら、:PlugInstall
を実行する。
vim-lspの設定
以下を.vimrc
に追記。
if executable('vala-language-server')
au User lsp_setup call lsp#register_server({
\ 'name': 'vala-language-server',
\ 'cmd': {server_info->[&shell, &shellcmdflag, 'vala-language-server']},
\ 'whitelist': ['vala', 'genie'],
\ })
endif
プロジェクト固有の設定
GTKやGSLを使用する場合、language serverがパッケージの位置がわからずエラーを出してしまう。
これを防ぐために、compile_commands.json
を書く必要がある。
例えば、GSLを使用する場合は、以下のような内容のファイルを作成する。
[
{
"directory": ".",
"command": "valac main.vala --pkg gsl",
"file": "main.vala"
}
]
なお、directory
は絶対パスのほうが普通だと思われる。
compile_commands.json
を手動で書くのはけっこう大変なので、C/C++の場合は、bearというツールがあったりするが、Valaに対応するものは見つけられなかったので、当分は手動で書く必要がありそうだ。
完成形
このようになり、補完が効くようになった。