{ lib, config, pkgs, ... }: lib.optionalString (lib.elem "nvim::lsp::nix-nixd" config.machine.pkgs) # lua '' lspconfig.nixd.setup({ cmd = { "${pkgs.nixd}/bin/nixd" }, settings = { nixd = { -- on_init = 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', -- }, }, }, }, }) ''