From 78eac1d1c2ef608b050299fadb6a7f7cdcb0efe9 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 11 Apr 2026 12:35:11 +0200 Subject: [PATCH] lsp/presets/vala-language-server: init --- docs/manual/release-notes/rl-0.9.md | 5 +++ modules/plugins/lsp/presets/default.nix | 1 + .../lsp/presets/vala-language-server.nix | 35 +++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 modules/plugins/lsp/presets/vala-language-server.nix diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index a283160b..a4153e89 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -71,6 +71,8 @@ - Renamed `tsgo` to `typescript-go`. +- Renamed `vala_ls` to `vala-language-server`. + ## Changelog {#sec-release-0-9-changelog} [SecBear](https://github.com/SecBear): @@ -240,6 +242,9 @@ - Added `vim.lsp.presets.` to contain LSP configurations. This allows for more flexibility in nvf and reuse of LSPs across languages. +- Fix `vim.lsp.presets.vala-language-server` to be wrapped correctly with + `uncrustify`. + - Fix `tressiter` to allow `null` in grammar options, so they can be filtered out. diff --git a/modules/plugins/lsp/presets/default.nix b/modules/plugins/lsp/presets/default.nix index b529a57a..06b7ab57 100644 --- a/modules/plugins/lsp/presets/default.nix +++ b/modules/plugins/lsp/presets/default.nix @@ -7,5 +7,6 @@ ./twig-language-server.nix ./typescript-go.nix ./typescript-language-server.nix + ./vala-language-server.nix ]; } diff --git a/modules/plugins/lsp/presets/vala-language-server.nix b/modules/plugins/lsp/presets/vala-language-server.nix new file mode 100644 index 00000000..0fe5b96e --- /dev/null +++ b/modules/plugins/lsp/presets/vala-language-server.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.meta) getExe; + inherit (lib.modules) mkIf; + inherit (lib.options) mkEnableOption; + + cfg = config.vim.lsp.presets.vala-language-server; +in { + options.vim.lsp.presets.vala-language-server = { + enable = mkEnableOption "the Vala Language Server"; + }; + + config = mkIf cfg.enable { + vim.lsp.servers.vala-language-server = { + enable = true; + # We are wrapping the LSP with uncrustify in the path, + # because it is an optional dependency to support formatting + # + cmd = [ + (getExe (pkgs.symlinkJoin { + name = "vala-language-server-wrapper"; + paths = [pkgs.vala-language-server]; + meta.mainProgram = "vala-language-server"; + buildInputs = [pkgs.makeBinaryWrapper]; + postBuild = "wrapProgram $out/bin/vala-language-server --prefix PATH : ${pkgs.uncrustify}/bin"; + })) + ]; + root_markers = [".git"]; + }; + }; +}