We recommend using VSCode with the Vala plugin.
-
Guix:
guix install vala-language-server
-
Arch Linux (via AUR):
yay -S vala-language-server
oryay -S vala-language-server-git
-
Alpine Linux Edge:
apk add vala-language-server
-
Ubuntu 18.04, 20.04 and elementaryOS
In order to install VLS, you need Vala 0.48 or later, which is only available by default on Ubuntu 20.04. You can get an up-to-date version of Vala from the Vala Team's Vala-Next repository. First you need to remove older Vala components:
sudo apt-add-repository ppa:vala-team/next # If you have 0.40 and 0.48, there may be random issues popping out sudo apt-get remove valac-0.40-vapi "libvala.*-0.40-0" sudo apt-get install valac-0.48 valac-bin
Now you can install the Vala Language Server:
sudo add-apt-repository ppa:prince781/vala-language-server sudo apt-get update sudo apt-get install vala-language-server
-
Fedora 32:
sudo dnf copr enable prince781/vala-language-server sudo dnf -y install vala-language-server
- diagnostics
- code completion
- basic (member access and scope-visible completion)
- advanced (context-sensitive suggestions)
- document symbol outline
- goto definition
- symbol references
- goto implementation
- signature help
- active parameter support requires upstream changes in vala and is disabled by default. use
meson -Dactive_parameter=true
to enable. see this MR. VLS by default uses a workaround that should satisfy 90% of cases.
- active parameter support requires upstream changes in vala and is disabled by default. use
- hover
- symbol documentation
- basic (from comments)
- advanced (from GIR and VAPI files)
- this feature may be a bit unstable. If it breaks things, use
meson -Dparse_system_girs=false
to disable
- this feature may be a bit unstable. If it breaks things, use
- search for symbols in workspace
- highlight active symbol in document
- rename symbols
- snippets
- code actions
- workspaces
- supported IDEs (see Setup below):
- vim with
vim-lsp
plugin installed - Visual Studio Code
- GNOME Builder >= 3.36 with custom VLS plugin enabled (see below)
- IntelliJ
- vim with
- supported project build systems
- meson
-
compile_commands.json
- autotoools
- cmake
glib-2.0
gobject-2.0
gio-2.0
and eithergio-unix-2.0
orgio-windows-2.0
gee-0.8
json-glib-1.0
jsonrpc-glib-1.0
libvala-0.48 / vala-0.48
latest bugfix release- you also need the
posix
VAPI, which should come preinstalled
To launch a shell with build dependencies satisfied:
guix environment vala-language-server
meson -Dprefix=$PREFIX build
ninja -C build
sudo ninja -C build install
This will install vala-language-server
to $PREFIX/bin
Once you have VLS installed, you can use it with vim
.
- Make sure coc.nvim is installed.
- After successful installation, in Vim run
:CocConfig
and add a new custom entry for VLS like below:
{
...
"vala": {
"command": "vala-language-server",
"filetypes": ["vala", "genie"]
},
...
}
- Make sure vim-lsp is installed
- Add the following to your
.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
- Install the Vala plugin (https://marketplace.visualstudio.com/items?itemName=prince781.vala)
- Support is currently available with Builder 3.35 and up
- Running
ninja -C build install
should install the plugin to$PREFIX/lib/gnome-builder/plugins
. Make sure you disable the GVLS plugin.
Want to help out? Here are some helpful resources:
- If you're a newcomer, check out https://github.com/benwaffle/vala-language-server/issues?q=is%3Aissue+is%3Aopen+label%3Anewcomers
- Gitter room is for project discussions: https://gitter.im/vala-language-server/community
#vala
on gimpnet/IRC is for general discussions about Vala and collaboration with upstream- Vala wiki: https://wiki.gnome.org/Projects/Vala/
- libvala documentation: