nixos/pkgsets/nvim/lsp/nix-nixd.nix

46 lines
1.3 KiB
Nix

{
lib,
config,
pkgs,
...
}:
lib.optionalAttrs (lib.elem "nvim::lsp::nix-nixd" config.machine.pkgs) {
nixd = {
cmd = [ "${pkgs.nixd}/bin/nixd" ];
settings = {
nixd = {
on_init =
_: # lua
''
function(client)
local path = client.workspace_folders[1].name
if path == '/path/to/project1' then
client.config.settings["rust-analyzer"].checkOnSave.overrideCommand = { "cargo", "check" }
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings })
end
return true
end
'';
nixpkgs = {
expr = ''import (builtins.getFlake ("git+file:///etc/nixos")).inputs.nixpkgs {}'';
};
formatting = {
command = [ "${pkgs.nixfmt-rfc-style}/bin/nixfmt" ];
};
options = {
nixos = {
expr = ''(builtins.getFlake ("git+file:///etc/nixos")).outputs.nixosConfigurations.Lilim.options'';
};
# TODO: Find a good general expression for this.
# home_manager = {
# expr =
# "'(builtins.getFlake (\"git+file://\" + toString ./.)).homeConfigurations.\"ruixi@k-on\".options'";
# };
};
};
};
};
}