23 lines
1017 B
Lua
23 lines
1017 B
Lua
--@param client vim.lsp.Client
|
|
local function init_per_dir_nixd(client)
|
|
if client.workspace_folders == nil then
|
|
return
|
|
end
|
|
local path = client.workspace_folders[1].name
|
|
local command = client.config.cmd[1]
|
|
local name = string.gsub(command, "(.*/)(.*)", "%2")
|
|
local is_nixd = name == "nixd"
|
|
local is_nix_stuff = (path == '/home/shelvacu/dev/nix-stuff' or path == '/home/shelvacu/nix-stuff' or path == '/data/data/com.termux.nix/files/home/nix-stuff')
|
|
if is_nixd and is_nix_stuff then
|
|
local get_flake = "(builtins.getFlake \"" .. path .. "\")"
|
|
client.config.settings["nixd"].options = {
|
|
nixos = { expr = get_flake .. ".nixosConfigurations.fw.options", },
|
|
["home-manager"] = { expr = get_flake .. ".homeConfigurations.\"nix-on-droid\".options", },
|
|
["nix-on-droid"] = { expr = get_flake .. ".nixOnDroidConfigurations.default.options", },
|
|
}
|
|
client.notify("workspace/didChangeConfiguration", { settings = client.config.settings, })
|
|
end
|
|
end
|
|
|
|
init_per_dir_nixd(client)
|