All Projects → benwaffle → Vala Language Server

benwaffle / Vala Language Server

Licence: lgpl-2.1
Code Intelligence for Vala & Genie

Programming Languages

vala
323 projects

Projects that are alternatives of or similar to Vala Language Server

Vshaxe
Haxe Support for Visual Studio Code
Stars: ✭ 234 (+50%)
Mutual labels:  vscode, language-server
Vscode As3mxml
ActionScript & MXML language extension for Visual Studio Code. Develop apps for Adobe AIR, Adobe Flash Player, or Apache Royale.
Stars: ✭ 205 (+31.41%)
Mutual labels:  vscode, language-server
Elm Language Client Vscode
Improving your Elm experience since 2019
Stars: ✭ 162 (+3.85%)
Mutual labels:  vscode, language-server
Vscode Intelephense
PHP intellisense for Visual Studio Code
Stars: ✭ 872 (+458.97%)
Mutual labels:  vscode, language-server
Kotlin Language Server
Intelligent Kotlin support for any editor/IDE using the Language Server Protocol
Stars: ✭ 650 (+316.67%)
Mutual labels:  vscode, language-server
Vscode Solargraph
A Visual Studio Code extension for Solargraph.
Stars: ✭ 292 (+87.18%)
Mutual labels:  vscode, language-server
Langserver Swift
A Swift implementation of the open Language Server Protocol.
Stars: ✭ 171 (+9.62%)
Mutual labels:  vscode, language-server
Monaco Languageclient
NPM module to connect Monaco editor with language servers
Stars: ✭ 419 (+168.59%)
Mutual labels:  vscode, language-server
Vscode Gnome Theme
A GNOME👣 theme for VSCode💻
Stars: ✭ 24 (-84.62%)
Mutual labels:  vscode, gnome
Vscode Swift
An extension for VS Code which provides support for the Swift language.
Stars: ✭ 132 (-15.38%)
Mutual labels:  vscode, language-server
Gnome Shell Extension Gsconnect
KDE Connect implementation for GNOME
Stars: ✭ 2,137 (+1269.87%)
Mutual labels:  gnome
Browser Preview
🎢Preview html file in your default browser
Stars: ✭ 148 (-5.13%)
Mutual labels:  vscode
Gatsby Personal Starter Blog
Gatsby starter for a personal site & blog
Stars: ✭ 153 (-1.92%)
Mutual labels:  vscode
Vscode Codeql
An extension for Visual Studio Code that adds rich language support for CodeQL
Stars: ✭ 154 (-1.28%)
Mutual labels:  vscode
Vscode Gist
vscode extension for quick gists
Stars: ✭ 146 (-6.41%)
Mutual labels:  vscode
Metago
MetaGo provides fast cursor movement/selection for keyboard focused users in vscode
Stars: ✭ 151 (-3.21%)
Mutual labels:  vscode
Vsnotes
Simple VS Code extension for plain text note taking.
Stars: ✭ 146 (-6.41%)
Mutual labels:  vscode
Electron React Typescript Webpack Boilerplate
Pre-configured boilerplate for Electron + React + TypeScript + Webpack
Stars: ✭ 146 (-6.41%)
Mutual labels:  vscode
Smuxi
Smuxi is an user-friendly and free IRC client for Linux, Windows and Mac OS X based on GNOME / GTK+
Stars: ✭ 145 (-7.05%)
Mutual labels:  gnome
Vscode Markdown
Markdown All in One
Stars: ✭ 2,113 (+1254.49%)
Mutual labels:  vscode

Vala Language Server

Gitter

Installation

We recommend using VSCode with the Vala plugin.

  • Guix: guix install vala-language-server

  • Arch Linux (via AUR): yay -S vala-language-server or 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

Features

  • [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 vim-lsp 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] compile_commands.json
    • [ ] autotoools
    • [ ] cmake

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
  • libvala-0.48 / vala-0.48 latest bugfix release
  • you also need the posix VAPI, which should come preinstalled

Install dependencies with Guix

To launch a shell with build dependencies satisfied:

guix environment vala-language-server

Setup

Building from Source

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

This will install vala-language-server to $PREFIX/bin

With Vim

Once you have VLS installed, you can use it with vim.

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

With Visual Studio Code

With GNOME Builder

  • 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.

Contributing

Want to help out? Here are some helpful resources:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].