Skip to content

0.48.1

Compare
Choose a tag to compare
@Prince781 Prince781 released this 29 Oct 19:09

what's new

code help

  • minor fixes to completion suggestions: error codes are now displayed, and avoid spurious suggestions when typing > in some cases
  • show suggestions and signature help for this and base accesses and constructor invocations
  • show suggestions for class symbols

VLS now supports document- and project-wide symbol renaming

VLS now supports the textDocument/rename and textDocument/prepareRename portions of the language server protocol, making it easier to refactor your code.

renaming of local variables
renaming of symbols, such as namespaces, referenced by many files in the project

greatly improved rendering of documentation, support for ValaDoc and GTK-Doc comments

VLS now runs an internal parser on comments written in ValaDoc and GTK-Doc format. As a result, documentation looks much cleaner and more beautiful. Lists, tables, links, code snippets, parameters, and images are now properly rendered. VLS even goes the extra mile by converting C symbol names to their equivalent in Vala, wherever they appear in documentation. For example, g_timeout_add_full() becomes GLib.Timeout.add(), GVariantIter becomes GLib.VariantIter, etc.

before:
gvariant doc before
gvarianttype doc before

after:
gvariant doc after
gvarianttype doc after

In addition, some fixes to symbol lookup have been made, allowing you to see documentation for more symbols on hover.

vala-language-server(1) man page

VLS now has a man page. Thanks to @Cogitri (Rasmus Thomsen), you can now do man vala-language-server to get information about VLS. We plan on expanding this manual as VLS becomes more configurable.

fixes

  • show more symbol modifiers/improve rendering on properties, fields, methods, and setters (1307a92)
  • gracefully handle duplicate invalid constructors (#135)
  • mesonproject: handle new behavior in Meson 0.55 (#139, #149, 485fcf6)
  • fix null generic type arguments when hovering over named constructors (83536db)
  • improve signature help with anonymous function calls and delegates (e0412a3)
  • the GNOME Builder plugin is configured automatically to the version of GNOME Builder preinstalled; otherwise, version 3.38 is assumed
  • project: don't ignore the last build target in a project when looking for dependents of a build target (#124)

packaging

We are in the process of transitioning to Open Build Service to package VLS for rpm- and deb- based distributions. Currently, you can install VLS 0.48.1 through our OBS repository for Debian Testing and Unstable, Fedora 33 and Rawhide, and Ubuntu 20.10. Fedora 32 and Ubuntu 20.04 currently only have VLS 0.48.0 due to a dependency on libvala 0.48.7. You can also get VLS for other distros in these ways:

  • Guix: guix install vala-language-server (thanks to @ryanprior)

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

  • Alpine Linux Edge: apk add vala-language-server (thanks to @Cogitri)

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

contributors

Princeton Ferro (@Prince781), Rasmus Thomsen (@Cogitri), Ryan Prior (@ryanprior), Florian Märkl (@thestr4ng3r), @soiamsoNG, Alex Cleac (@cleac)