{
  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',
            -- },
          },
        },
      },
    })
  ''