Show default keybinding in :bind completion
This commit is contained in:
parent
03a9cbdfb4
commit
e05dabefdf
@ -77,17 +77,26 @@ def bind(key, *, info):
|
||||
key: the key being bound.
|
||||
"""
|
||||
model = completionmodel.CompletionModel(column_widths=(20, 60, 20))
|
||||
cmd_text = info.keyconf.get_command(key, 'normal')
|
||||
data = []
|
||||
|
||||
cmd_text = info.keyconf.get_command(key, 'normal')
|
||||
if cmd_text:
|
||||
parser = runners.CommandParser()
|
||||
try:
|
||||
cmd = parser.parse(cmd_text).cmd
|
||||
except cmdexc.NoSuchCommandError:
|
||||
data = [(cmd_text, 'Invalid command!', key)]
|
||||
data.append((cmd_text, '(Current) Invalid command!', key))
|
||||
else:
|
||||
data = [(cmd_text, cmd.desc, key)]
|
||||
model.add_category(listcategory.ListCategory("Current", data))
|
||||
data.append((cmd_text, '(Current) {}'.format(cmd.desc), key))
|
||||
|
||||
cmd_text = info.keyconf.get_command(key, 'normal', default=True)
|
||||
if cmd_text:
|
||||
parser = runners.CommandParser()
|
||||
cmd = parser.parse(cmd_text).cmd
|
||||
data.append((cmd_text, '(Default) {}'.format(cmd.desc), key))
|
||||
|
||||
if data:
|
||||
model.add_category(listcategory.ListCategory("Current/Default", data))
|
||||
|
||||
cmdlist = util.get_cmd_completions(info, include_hidden=True,
|
||||
include_aliases=True)
|
||||
|
@ -162,10 +162,13 @@ class KeyConfig:
|
||||
cmd_to_keys[cmd].insert(0, key)
|
||||
return cmd_to_keys
|
||||
|
||||
def get_command(self, key, mode):
|
||||
def get_command(self, key, mode, default=False):
|
||||
"""Get the command for a given key (or None)."""
|
||||
key = self._prepare(key, mode)
|
||||
bindings = self.get_bindings_for(mode)
|
||||
if default:
|
||||
bindings = dict(val.bindings.default[mode])
|
||||
else:
|
||||
bindings = self.get_bindings_for(mode)
|
||||
return bindings.get(key, None)
|
||||
|
||||
def bind(self, key, command, *, mode, save_yaml=False):
|
||||
|
Loading…
Reference in New Issue
Block a user