mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 08:35:43 +02:00
30 lines
689 B
Nix
30 lines
689 B
Nix
|
{ pkgs, config, lib, ... }:
|
||
|
|
||
|
{
|
||
|
mkLsp = {
|
||
|
name,
|
||
|
description ? "Enable ${name}.",
|
||
|
serverName ? name,
|
||
|
packages ? [ pkgs.${name} ],
|
||
|
... }:
|
||
|
# returns a module
|
||
|
{ pkgs, config, lib, ... }:
|
||
|
with lib;
|
||
|
let
|
||
|
cfg = config.programs.nixvim.plugins.lsp.servers.${name};
|
||
|
in
|
||
|
{
|
||
|
options = {
|
||
|
programs.nixvim.plugins.lsp.servers.${name} = {
|
||
|
enable = mkEnableOption description;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
programs.nixvim.extraPackages = packages;
|
||
|
|
||
|
programs.nixvim.plugins.lsp.enabledServers = [ serverName ];
|
||
|
};
|
||
|
};
|
||
|
}
|