You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the diffview integration, Neogit overwrites keybinds for q and <esc> in view and file_panel buffers, even those set in the user's diffview configuration. The code responsible is here: extend_keyamps internally force-expands the given config table, thereby overriding any value previously set in the user's diffview config. Afaict, neogit does not expose a way to re-override these values in its own config.
Concretely, my use case is that I want to unmap the <esc> key, since I keep hitting it on accident, thereby closing diffview in neogit.
Neovim version
0.10.2
Operating system and version
Ubuntu 20.04
Steps to reproduce
Unmap <esc> in diffview config (see minimal config below)
Open neogit, use default dd to open diffview
Pres <esc>: exits diffview even though <esc> has been unmapped
Expected behavior
Configured values are not overwritten.
Actual behavior
Configured values are overwritten.
Minimal config
-- NOTE: See the end of this file if you are reporting an issue, etc. Ignore all the "scary" functions up top, those are-- used for setup and other operations.localM= {}
localbase_root_path=vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":p:h") .."/.min"functionM.root(path)
returnbase_root_path.."/" .. (pathor"")
endfunctionM.load_plugin(plugin_name, plugin_url)
localpackage_root=M.root("plugins/")
localinstall_destination=package_root..plugin_namevim.opt.runtimepath:append(install_destination)
ifnotvim.loop.fs_stat(package_root) thenvim.fn.mkdir(package_root, "p")
endifnotvim.loop.fs_stat(install_destination) thenprint(string.format("> Downloading plugin '%s' to '%s'", plugin_name, install_destination))
vim.fn.system({
"git",
"clone",
"--depth=1",
plugin_url,
install_destination,
})
ifvim.v.shell_error>0thenerror(
string.format("> Failed to clone plugin: '%s' in '%s'!", plugin_name, install_destination),
vim.log.levels.ERROR
)
endendend---@aliasPluginNamestring The plugin name, will be used as part of the git clone destination---@aliasPluginUrlstring The git url at which a plugin is located, can be a path. See https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols for details---@aliasMinPluginstable<PluginName, PluginUrl>---Do the initial setup. Downloads plugins, ensures the minimal init does not pollute the filesystem by keeping---everything self contained to the CWD of the minimal init file. Run prior to running tests, reproducing issues, etc.---@paramplugins?table<PluginName, PluginUrl>functionM.setup(plugins)
vim.opt.packpath= {} -- Empty the package path so we use only the plugins specifiedvim.opt.runtimepath:append(M.root(".min")) -- Ensure the runtime detects the root min dir-- Install required pluginsifplugins~=nilthenforplugin_name, plugin_urlinpairs(plugins) doM.load_plugin(plugin_name, plugin_url)
endendvim.env.XDG_CONFIG_HOME=M.root("xdg/config")
vim.env.XDG_DATA_HOME=M.root("xdg/data")
vim.env.XDG_STATE_HOME=M.root("xdg/state")
vim.env.XDG_CACHE_HOME=M.root("xdg/cache")
-- NOTE: Cleanup the xdg cache on exit so new runs of the minimal init doesn't share any previous state, e.g. shadavim.api.nvim_create_autocmd("VimLeave", {
callback=function()
vim.fn.system({
"rm",
"-r",
"-f",
M.root("xdg"),
})
end,
})
end-- NOTE: If you have additional plugins you need to install to reproduce your issue, include them in the plugins-- table within the setup call below.M.setup({
plenary="https://github.com/nvim-lua/plenary.nvim.git",
telescope="https://github.com/nvim-telescope/telescope.nvim",
diffview="https://github.com/sindrets/diffview.nvim",
neogit="https://github.com/NeogitOrg/neogit",
})
-- WARN: Do all plugin setup, test runs, reproductions, etc. AFTER calling setup with a list of plugins!-- Basically, do all that stuff AFTER this line.require("diffview").setup({
-- Unmap escape in `view` and in `file_panel`keymaps= {
view= {
["<esc>"] =false,
},
file_panel= {
["<esc>"] =false,
},
},
})
require("neogit").setup({}) -- For instance, setup Neogit
The text was updated successfully, but these errors were encountered:
Description
When using the
diffview
integration, Neogit overwrites keybinds forq
and<esc>
inview
andfile_panel
buffers, even those set in the user'sdiffview
configuration. The code responsible is here:extend_keyamps
internally force-expands the given config table, thereby overriding any value previously set in the user'sdiffview
config. Afaict,neogit
does not expose a way to re-override these values in its own config.Concretely, my use case is that I want to unmap the
<esc>
key, since I keep hitting it on accident, thereby closingdiffview
inneogit
.Neovim version
0.10.2
Operating system and version
Ubuntu 20.04
Steps to reproduce
<esc>
indiffview
config (see minimal config below)neogit
, use defaultdd
to open diffview<esc>
: exitsdiffview
even though<esc>
has been unmappedExpected behavior
Configured values are not overwritten.
Actual behavior
Configured values are overwritten.
Minimal config
The text was updated successfully, but these errors were encountered: