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を使っている場合は、以下を.vimrccall 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に対応するものは見つけられなかったので、当分は手動で書く必要がありそうだ。

完成形

このようになり、補完が効くようになった。

vim-vala