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に対応するものは見つけられなかったので、当分は手動で書く必要がありそうだ。
完成形
このようになり、補完が効くようになった。
