Code Intelligence for Vala & Genie
LGPL-2.1 License
Bot releases are hidden (Show)
Full Changelog: https://github.com/vala-lang/vala-language-server/compare/0.48.6...0.48.7
Fix version in meson.build
Published by benwaffle over 1 year ago
Full Changelog: https://github.com/vala-lang/vala-language-server/compare/0.48.5...0.48.6
Published by Prince781 over 2 years ago
This release contains many new features and improvements. Please note, many of these new features require a supporting IDE. For VS Code and derivatives, you must install version 1.0.8 or later of the Vala extension.
VLS can now format your code—either an entire source file or a selection. uncrustify
must be installed for this to work.
https://user-images.githubusercontent.com/1341033/174460798-3183fc06-c293-432c-8cbd-0a2273dd7c63.mp4
VLS can now suggest fixes to your code. Currently we have two actions:
https://user-images.githubusercontent.com/1341033/174461629-82401f8e-361f-4403-9c65-d1996cc846e5.mp4
https://user-images.githubusercontent.com/1341033/174461833-bc305c14-56d2-4bc7-a754-269ab14911e9.mp4
There are many more actions we plan to add!
VLS can now answer queries about the call graph of a method.
https://user-images.githubusercontent.com/1341033/174462159-22582480-649e-453a-946b-966367c50634.mp4
VLS will now show hints at special places in your code. VLS will hint the types of variables with inferred types (if they are nontrivial), the arguments of a function, and will show the types of parameters in anonymous functions.
VLS can now answer queries about the type hierarchy of a data type.
https://user-images.githubusercontent.com/1341033/174462375-45eeb2fb-9711-4a16-a220-943108656abd.mp4
VLS will avoid recompiling your project on the slightest change. If the compilation target's exported API does not change after a modification (for example, you only change a method implementation), then we can avoid recompiling other build targets that depend on the modified target, since the .vapi
will be unchanged. This saves considerable time in large Vala projects with many build targets, such as Shotwell and Geary.
VLS will now render a link to the relevant ValaDoc page for each symbol mentioned in documentation.
json-glib
, jsonrpc-glib
, and libgee
installed on the system (484465d6c9aef58e6fd459783250cd2a3f696816)@since
taglet in documentation (ef22ab28cc74a3f50f4d8d96ea5a99eda5d72cb0)Full Changelog: https://github.com/vala-lang/vala-language-server/compare/0.48.4...0.48.5
Published by Prince781 almost 3 years ago
This release contains only bug fixes and incremental improvements.
--version
flag (#210)foo->bar
) (a1ef671e9ba12226bed69c4da320b4f9509b9e98)workspace/symbol
results (50c739dbd2163f09ecd83efcba1c7fd4b64d5b6d)foo?.bar
) for Vala 0.54+ (fb5cbb9310f763e27af39111ecbb389e90778344)Published by Prince781 over 3 years ago
with
statements are now supportedbefore:
after:
printf()
-style functions is tailored to the format string(clicking on the code lens to list the base/hidden symbol is only supported with the VS Code plugin, but see the next feature)
(this works for everything else that doesn't support VLS's code actions)
Demonstration of VLS understanding the code style when completing (notice that VLS dynamically adjusts to the coding style as it changes from one space to zero spaces before method arguments):
insertTextFormat
(#148)override
when suggesting unimplemented symbolsPrinceton Ferro (@Prince781), Ben Iofel (@benwaffle), Rasmus Thomsen (@Cogitri), Tao Zuhong (@taozuhong)
Published by Prince781 over 3 years ago
This release contains only bugfixes. The lack of activity between this and the previous release is explained by my attention being diverted to the Language Server Testing Framework, which will address #26.
Again, we've switched to Open Build System and deprecated the PPA and Copr. See the README or the download page for installation instructions.
Vala.Loop
API in Vala 0.52 (#172)Princeton Ferro (@Prince781), @aeldemery
Published by Prince781 almost 4 years ago
>
in some casesthis
and base
accesses and constructor invocationsclass
symbolsVLS now supports the textDocument/rename
and textDocument/prepareRename
portions of the language server protocol, making it easier to refactor your code.
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:
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 pageVLS 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.
null
generic type arguments when hovering over named constructors (https://github.com/benwaffle/vala-language-server/commit/83536db3a56b47fdef4721a4d42dd9917155c550)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
Princeton Ferro (@Prince781), Rasmus Thomsen (@Cogitri), Ryan Prior (@ryanprior), Florian Märkl (@thestr4ng3r), @soiamsoNG, Alex Cleac (@cleac)
Published by Prince781 over 4 years ago
The first production release of the Vala Language Server.
before:
after:
before:
after:
project-changed-event
only if connected (#90)compile_commands.json
projects (39172e1)textDocument/documentSymbols
on an invalid document (d3bcea4)textDocument/implementation
(7a5d4af)Published by Prince781 over 4 years ago
Published by Prince781 over 4 years ago