Skip to content
This repository was archived by the owner on Apr 17, 2025. It is now read-only.

[Bug]: "Resolve" duplicate keymappings e.g. when there are buffer-local keymaps that override global ones #318

@mrjones2014

Description

@mrjones2014

Similar Issues

  • Before filing, I have searched for similar issues.

Neovim Version

NVIM v0.8.2
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by brew@Ventura-arm64.local

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/opt/homebrew/Cellar/neovim/0.8.2/share/nvim"

Run :checkhealth for more info

Expected Behavior

For example, when you have the following keymaps:

{ '<leader>t', description = "Something" },

{ '<leader>t' description = "Something else in buffer 1", opts = { buffer = 1 } },

When you trigger the finder from buffer 1, only the second keymap there should appear, because it is the "resolved" or "active" keymap for the keys <leader>t in that buffer. Once #317 is merged we will need to consider the filters as well when resolving keymaps.

Actual Behavior

Both keymaps are shown.

Minimal Configuration to Reproduce

Run the following code in the :LegendaryScratch buffer (by running :LegendaryEvalBuf), then trigger the finder from the same buffer:

require('legendary').keymaps({
  { '<leader>t', description = "This shouldn't show" },
  { '<leader>t', description = "This one is more specific and should show", opts = { buffer = 0 } },
})

Output from :LegendaryLog

:LegendaryLog output (click to expand)

Additional Details and/or Screenshots

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinghelp wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions