{lib, ...}: let inherit (lib.options) mkEnableOption; inherit (lib.nvim.binds) mkMappingOption; in { options.vim.lsp.lspsaga = { enable = mkEnableOption "LSP Saga"; mappings = { lspFinder = mkMappingOption "LSP Finder [LSPSaga]" "<leader>lf"; renderHoveredDoc = mkMappingOption "Rendered hovered docs [LSPSaga]" "<leader>lh"; smartScrollUp = mkMappingOption "Smart scroll up [LSPSaga]" "<C-f>"; smartScrollDown = mkMappingOption "Smart scroll up [LSPSaga]" "<C-b>"; rename = mkMappingOption "Rename [LSPSaga]" "<leader>lr"; previewDefinition = mkMappingOption "Preview definition [LSPSaga]" "<leader>ld"; showLineDiagnostics = mkMappingOption "Show line diagnostics [LSPSaga]" "<leader>ll"; showCursorDiagnostics = mkMappingOption "Show cursor diagnostics [LSPSaga]" "<leader>lc"; nextDiagnostic = mkMappingOption "Next diagnostic [LSPSaga]" "<leader>ln"; previousDiagnostic = mkMappingOption "Previous diagnostic [LSPSaga]" "<leader>lp"; codeAction = mkMappingOption "Code action [LSPSaga]" "<leader>ca"; signatureHelp = mkMappingOption "Signature help [LSPSaga]" "<leader>ls"; }; }; }