{ config, lib, ... }: let inherit (lib.nixvim) mkRaw; inherit (config.myvim.mkKey) mkKeymap wKeyObj; in { wKeyList = [ (wKeyObj [ "lg" "" "goto" ]) (wKeyObj [ "l" "󰿘" "lsp" ]) ]; plugins.lsp.keymaps.extra = [ (mkKeymap "n" "lO" "lua require('otter').activate()" "Force Otter") # Lspsaga (mkKeymap "n" "la" ":Lspsaga code_action" "Code Action") (mkKeymap "n" "lo" "Lspsaga outline" "Outline") (mkKeymap "n" "lw" "Lspsaga show_workspace_diagnostics" "Workspace Diagnostics") (mkKeymap "n" "gd" "Lspsaga goto_definition" "Definitions") (mkKeymap "n" "lr" "Lspsaga rename ++project" "Rename") (mkKeymap "n" "gt" "Lspsaga goto_type_definition" "Type Definitions") (mkKeymap "n" "l." "Lspsaga show_line_diagnostics" "Line Diagnostics") (mkKeymap "n" "gpd" "Lspsaga peek_definition" "Peek Definition") (mkKeymap "n" "gpt" "Lspsaga peek_type_definition" "Peek Type Definition") (mkKeymap "n" "[e" "Lspsaga diagnostic_jump_prev" "Jump Prev Diagnostic") (mkKeymap "n" "]e" "Lspsaga diagnostic_jump_next" "Jump Next Diagnostic") (mkKeymap "n" "K" (mkRaw '' function() local ok, ufo = pcall(require, "ufo") if ok then winid = ufo.peekFoldedLinesUnderCursor() end if not winid then vim.cmd("Lspsaga hover_doc") end end '') "Hover Doc") # UFO (mkKeymap "n" "zR" ( # lua mkRaw '' function() require("ufo").openAllFolds() end '' ) "Open all folds") (mkKeymap "n" "zM" ( # lua mkRaw '' function() require("ufo").closeAllFolds() end '' ) "Close All Folds") (mkKeymap "n" "zK" ( # lua mkRaw '' function() local winid = require("ufo").peekFoldedLinesUnderCursor() if not winid then vim.lsp.buf.hover() end end '' ) "Peek Folded Lines") (mkKeymap "n" "lq" "LspStop" "Stop LSP") (mkKeymap "n" "li" "LspInfo" "LSP Info") (mkKeymap "n" "ls" "LspStart" "Start LSP") (mkKeymap "n" "lR" "LspRestart" "Restart LSP") (mkKeymap "n" "" ":lua vim.lsp.buf.signature_help()" "Signature Help") (mkKeymap "n" "lD" ":lua Snacks.picker.lsp_definitions()" "Definitions list") (mkKeymap "n" "ls" ":lua Snacks.picker.lsp_symbols()" "Definitions list") (mkKeymap "n" "lf" ":lua require('conform').format()" "Format file") (mkKeymap "x" "lf" ":lua require('conform').format()" "Format File") (mkKeymap "v" "lf" ":lua require('conform').format()" "Format File") (mkKeymap "n" "[d" ":lua vim.diagnostic.goto_prev()" "Previous Diagnostic") (mkKeymap "n" "]d" ":lua vim.diagnostic.goto_next()" "Next Diagnostic") (mkKeymap "n" "lL" ( # lua mkRaw '' function() if vim.g.diagnostics_visible == nil or vim.g.diagnostics_visible then vim.g.diagnostics_visible = false vim.diagnostic.disable() else vim.g.diagnostics_visible = true vim.diagnostic.enable() end end '' ) "Toggle Diagnostics") (mkKeymap "n" "ll" ( # lua mkRaw '' function() if vim.diagnostic.config().virtual_text == false then vim.diagnostic.config({ virtual_text = { source = "always" } }) else vim.diagnostic.config({ virtual_text = false }) end end '' ) "Toggle Virtual Text") ]; }