[Breaking] change keymap api (#152)

the keymap api used in version no longer support neovim 0.6.x. Please use nvim-0.6 branch if you do not want to update to neovim 0.7, BTW, if you do not use go.nvim for debugging, it should not affect you.
pull/163/head
rayx 2 years ago committed by GitHub
parent a2d0bbee53
commit 2371bf414b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -55,46 +55,54 @@ local function keybind()
keys = {
-- DAP --
-- run
["n|r"] = '<cmd>lua require"go.dap".run()',
["n|c"] = '<cmd>lua require"dap".continue()',
["n|n"] = '<cmd>lua require"dap".step_over()',
["n|s"] = '<cmd>lua require"dap".step_into()',
["n|o"] = '<cmd>lua require"dap".step_out()',
["n|S"] = '<cmd>lua require"go.dap".stop()',
["n|u"] = '<cmd>lua require"dap".up()',
["n|D"] = '<cmd>lua require"dap".down()',
["n|C"] = '<cmd>lua require"dap".run_to_cursor()',
["n|b"] = '<cmd>lua require"dap".toggle_breakpoint()',
["n|P"] = '<cmd>lua require"dap".pause()',
["r"] = { f = require("go.dap").run, doc = "run" },
["c"] = { f = require("dap").continue, doc = "continue" },
["n"] = { f = require("dap").step_over, doc = "step_over" },
["s"] = { f = require("dap").step_into, doc = "step_into" },
["o"] = { f = require("dap").step_out, doc = "step_out" },
["S"] = { f = require("go.dap").stop, doc = "stop" },
["u"] = { f = require("dap").up, doc = "up" },
["D"] = { f = require("dap").down, doc = "down" },
["C"] = { f = require("dap").run_to_cursor, doc = "run_to_cursor" },
["b"] = { f = require("dap").toggle_breakpoint, doc = "toggle_breakpoint" },
["P"] = { f = require("dap").pause, doc = "pause" },
--
}
if _GO_NVIM_CFG.dap_debug_keymap == "windows" then
keys = {
-- DAP --
-- run
["n|<F9>"] = '<cmd>lua require"dap".toggle_breakpoint()',
["n|<F5>"] = '<cmd>lua require"dap".continue()',
["n|<F10>"] = '<cmd>lua require"dap".step_over()',
["n|<C-F10>"] = '<cmd>lua require"dap".run_to_cursor()',
["n|<F11>"] = '<cmd>lua require"dap".step_into()',
["n|<S-F11>"] = '<cmd>lua require"dap".step_out()',
["n|<S-F5>"] = '<cmd>lua require"go.dap".stop()',
--
}
end
if _GO_NVIM_CFG.dap_debug_gui then
keys["n|p"] = '<cmd>lua require("dapui").eval()'
keys["v|p"] = '<cmd>lua require("dapui").eval()'
keys["n|K"] = '<cmd>lua require("dapui").float_element()'
keys["n|B"] = '<cmd>lua require("dapui").float_element("breakpoints")'
keys["n|R"] = '<cmd>lua require("dapui").float_element("repl")'
keys["n|O"] = '<cmd>lua require("dapui").float_element("scopes")'
keys["n|a"] = '<cmd>lua require("dapui").float_element("stacks")'
keys["n|w"] = '<cmd>lua require("dapui").float_element("watches")'
keys["p"] = { f = require("dapui").eval, m = { "n", "v" }, doc = "eval" }
keys["K"] = { f = require("dapui").float_element, doc = "float_element" }
keys["B"] = {
f = function()
require("dapui").float_element("breakpoints")
end,
doc = "float_element('breakpoints')",
}
keys["R"] = {
f = function()
require("dapui").float_element("repl")
end,
doc = "float_element('repl')",
}
keys["O"] = {
f = function()
require("dapui").float_element("scopes")
end,
doc = "float_element('scopes')",
}
keys["a"] = {
f = function()
require("dapui").float_element("stacks")
end,
doc = "float_element('stacks')",
}
keys["w"] = {
f = function()
require("dapui").float_element("watches")
end,
doc = "float_element('watches')",
}
else
keys["n|p"] = '<cmd>lua require"dap.ui.widgets".hover()'
keys["v|p"] = '<cmd>lua require"dap.ui.widgets".hover()'
keys["p"] = { f = require("dap.ui.widgets").hover, m = { "n", "v" }, doc = "hover" }
end
bind.nvim_load_mapping(keys)
end
@ -114,9 +122,9 @@ local M = {}
function M.debug_keys()
local keymap_help = {}
for key, val in pairs(keys) do
local m = vim.fn.matchlist(val, [[\v(\p+)\.(\p+\(\p*\))]]) -- match last function e.g.float_element("repl")
-- local m = vim.fn.matchlist(val, [[\v(\p+)\.(\p+\(\p*\))]]) -- match last function e.g.float_element("repl")
table.insert(keymap_help, key .. " -> " .. m[3])
table.insert(keymap_help, key .. " -> " .. val.doc)
end
local guihua = utils.load_plugin("guihua.lua", "guihua.listview")
@ -133,6 +141,7 @@ function M.debug_keys()
})
end
local close_events = { "CursorMoved", "CursorMovedI", "BufHidden", "InsertCharPre" }
local config = { close_events = close_events, focusable = true, border = "single" }
vim.lsp.util.open_floating_preview(keymap_help, "lua", config)
@ -542,17 +551,6 @@ local unmap = function()
"a",
"w",
}
if _GO_NVIM_CFG.dap_debug_keymap == "windows" then
keys = {
"<F9>",
"<F5>",
"<F10>",
"<C-F10>",
"<F11>",
"<S-F11>",
"<S-F5>",
}
end
for _, value in pairs(keys) do
local cmd = "silent! unmap " .. value
vim.cmd(cmd)

@ -2,8 +2,8 @@ local rhs_options = {}
function rhs_options:new()
local instance = {
cmd = '',
options = {noremap = false, silent = false, expr = false, nowait = false}
cmd = "",
options = { noremap = false, silent = false, expr = false, nowait = false },
}
setmetatable(instance, self)
self.__index = self
@ -78,7 +78,11 @@ function pbind.nvim_load_mapping(mapping)
if type(value) == "string" then
value = pbind.map_cr(value):with_noremap():with_silent()
end
if type(value) == 'table' then
if type(value) == "table" and value.f then
local m = value.m or 'n'
vim.keymap.set(m, key, value.f)
end
if type(value) == "table" and value.cmd then
local rhs = value.cmd
local options = value.options
vim.api.nvim_set_keymap(mode, keymap, rhs, options)

Loading…
Cancel
Save