{ 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"]; }; }; }