{ ... }: {
  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;
}
