Need help with vala-language-server?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

154 Stars 21 Forks GNU Lesser General Public License v2.1 443 Commits 47 Opened issues


Code Intelligence for Vala & Genie

Services available


Need anything else?

Contributors list

Vala Language Server



We recommend using VSCode with the Vala plugin.

  • Guix:

    guix install vala-language-server
  • Arch Linux (via AUR):

    yay -S vala-language-server
    yay -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

vls-vscode vls-vim vls-gb

Table of Contents


  • [x] diagnostics
  • [x] code completion
    • [x] basic (member access and scope-visible completion)
    • [ ] advanced (context-sensitive suggestions)
  • [x] document symbol outline
  • [x] goto definition
  • [x] symbol references
  • [x] goto implementation
  • [x] 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.
  • [x] hover
  • [x] symbol documentation
    • [x] basic (from comments)
    • [x] 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
  • [x] search for symbols in workspace
  • [x] highlight active symbol in document
  • [x] rename symbols
  • [ ] snippets
  • [ ] code actions
  • [ ] workspaces
  • [ ] supported IDEs (see Setup below):
    • [x] vim with
      plugin installed
    • [x] Visual Studio Code
    • [x] GNOME Builder >= 3.36 with custom VLS plugin enabled (see below)
    • [ ] IntelliJ
  • [ ] supported project build systems
    • [x] meson
    • [x]
    • [ ] autotoools
    • [ ] cmake


  • glib-2.0
  • gobject-2.0
  • gio-2.0
    and either
  • gee-0.8
  • json-glib-1.0
  • jsonrpc-glib-1.0
  • libvala-0.48 / vala-0.48
    latest bugfix release
  • you also need the
    VAPI, which should come preinstalled

Install dependencies with Guix

To launch a shell with build dependencies satisfied:

guix environment vala-language-server


Building from Source

meson -Dprefix=$PREFIX build
ninja -C build
sudo ninja -C build install

This will install


With Vim

Once you have VLS installed, you can use it with



  1. Make sure coc.nvim is installed.
  2. After successful installation, in Vim run
    and add a new entry for VLS to the
    property like below:
    "languageserver": {
        "vala": {
            "command": "vala-language-server",
            "filetypes": ["vala", "genie"]


  1. Make sure vim-lsp is installed
  2. Add the following to your
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'],
        \ })

With Visual Studio Code

  • Install the Vala plugin (

With GNOME Builder

  • Support is currently available with Builder 3.35 and up
  • Running
    ninja -C build install
    should install the plugin to
    . Make sure you disable the GVLS plugin.


Want to help out? Here are some helpful resources:

  • If you're a newcomer, check out
  • Gitter room is for project discussions:
  • #vala
    on gimpnet/IRC is for general discussions about Vala and collaboration with upstream
  • Vala wiki:
  • libvala documentation:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.