46 lines
1.3 KiB
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'";
|
|
# };
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|