{...}: {
  programs.nixvim = {
    dependencies.rust-analyzer.enable = true;

    lsp = {
      inlayHints.enable = true;
      servers = {
        "*" = {
          config.capabilities.textDocument.semanticTokens.multilineTokenSupport = true;
          config.root_markers = [
            ".git"
          ];
        };
        clangd = {
          enable = true;
          config.root_markers = [
            "compile_commands.json"
          ];
        };
        rust_analyzer = {
          enable = true;
        };
        rnix.enable = true;
      };

      keymaps = [
        {
          key = "<leader>e";
          action = "<cmd>lua vim.diagnostic.open_float()<CR>";
          options.desc = "Open Diagnostics";
        }
      ];
    };

    plugins.lspconfig.enable = true;
    plugins.clangd-extensions.enable = true;
  };
}
