# Language Server Protocol configuration { config, lib, ... }: { config.programs.nixvim.plugins.lsp = lib.mkIf config.development.nixvim.enable { enable = true; inlayHints = true; autoLoad = true; keymaps = { lspBuf = { "lh" = "hover"; "lr" = "references"; "ld" = "definition"; "li" = "implementation"; "lt" = "type_definition"; "lD" = "declaration"; "lR" = "rename"; "la" = "code_action"; "lf" = "format"; "ls" = "signature_help"; "lwa" = "add_workspace_folder"; "lwr" = "remove_workspace_folder"; "lwl" = "list_workspace_folders"; }; diagnostic = { "le" = "open_float"; "lq" = "setloclist"; "[d" = "goto_prev"; "]d" = "goto_next"; }; }; }; }