Skip to content

JCWasmx86/vala-language-server

This branch is 1 commit ahead of, 37 commits behind vala-lang/vala-language-server:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

06443ee · May 25, 2022
May 25, 2022
Apr 15, 2022
May 30, 2021
Apr 9, 2022
May 25, 2022
Apr 25, 2022
Oct 2, 2020
Apr 25, 2022
Nov 23, 2017
Jul 30, 2017
Oct 3, 2019
Oct 27, 2018
Apr 15, 2022
Jul 9, 2021
Oct 12, 2019
Apr 25, 2022
Jun 29, 2021
Jul 9, 2021

Repository files navigation

Vala Language Server

This is a language server for the Vala programming language.

Installation

We recommend using VSCode with the Vala plugin.

  • Arch Linux (via AUR): yay -S vala-language-server or yay -S vala-language-server-git

  • Ubuntu, Fedora, Debian, openSUSE, and Mageia: install from the OBS repo

  • elementaryOS: sudo apt install vala-language-server

  • Alpine Linux: apk add vala-language-server

  • Guix: guix install vala-language-server

Packaging status

VLS with VSCode VLS with Vim with coc.nvim and vista plugins VLS with GNOME Builder

Table of Contents

Features

  • diagnostics
  • code completion
    • member access and scope-visible completion
    • context-sensitive suggestions
      • completions for abstract methods/properties to implement
  • symbol outline
  • goto definition
  • symbol references
  • goto implementation
  • signature help
  • hover
  • symbol documentation
    • from comments in source code
    • from GIR and VAPI files
  • search for symbols in workspace
  • highlight active symbol in document
  • rename
  • snippets
    • for implementing abstract methods/properties
  • code lenses
  • code actions / quick fixes
  • code formatting
  • call hierarchy
  • workspaces
  • supported projects
    • meson
    • compile_commands.json
    • Vala script (file beginning with #!/usr/bin/env -S vala shebang)
    • cmake
    • autotools

Dependencies

  • glib-2.0
  • gobject-2.0
  • gio-2.0 and either gio-unix-2.0 or gio-windows-2.0
  • gee-0.8
  • json-glib-1.0
  • jsonrpc-glib-1.0 >= 3.28
  • libvala >= 0.48.12
  • you also need the posix VAPI, which should come preinstalled

Uncrustify is required for formatting.

Install dependencies with Guix

If you're using Guix, to launch a shell with build dependencies satisfied:

guix environment vala-language-server

Building from Source

meson -Dprefix=/usr build
ninja -C build
sudo ninja -C build install

This will install vala-language-server to /usr/bin

Editors

An important note: VLS cannot know what arguments are used for the file you are editing unless it can locate a build script, compile commands list, or shebang to analyze. (This is generally true for most language servers of compiled languages.) Before making an issue, check whether you have a build script or shebang for your file.

vim and neovim

coc.nvim

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

vim-lsp

  1. Make sure vim-lsp is installed
  2. 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

nvim-lspconfig

Visual Studio Code

GNOME Builder

  • requires GNOME Builder >= 3.35
  • Running ninja -C build install should install the third-party plugin to $PREFIX/lib/gnome-builder/plugins. Enable Vala and disable GNOME Vala Language Server.

Kate

  • officially supported in Kate git master

Emacs

Sublime Text

  • Install the Vala-TMBundle and LSP packages
  • Add this to your LSP.sublime-settings:
{
    "clients": {
        "vala-language-server": {
            "command": [
                "/usr/bin/vala-language-server"
            ],
            "selector": "source.vala | source.genie",
            "enabled": true
        }
    }
}
  • Run Tools > LSP > Enable Language Server Globally... > vala-language-server

Contributing

Want to help out? Here are some helpful resources:

About

Code Intelligence for Vala & Genie

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vala 97.9%
  • Python 1.1%
  • Other 1.0%