@@ -476,34 +476,58 @@ def GetExtensionKeys(self, extensionName):
476476 Keybindings come from GetCurrentKeySet() active key dict,
477477 where previously used bindings are disabled.
478478 """
479- keysName = extensionName + '_cfgBindings'
480- activeKeys = self .GetCurrentKeySet ()
481- extKeys = {}
482- if self .defaultCfg ['extensions' ].has_section (keysName ):
483- eventNames = self .defaultCfg ['extensions' ].GetOptionList (keysName )
484- for eventName in eventNames :
485- event = '<<' + eventName + '>>'
486- binding = activeKeys [event ]
487- extKeys [event ] = binding
488- return extKeys
489-
490- def __GetRawExtensionKeys (self ,extensionName ):
479+ bindings_section = f'{ extensionName } _cfgBindings'
480+ current_keyset = self .GetCurrentKeySet ()
481+ extension_keys = {}
482+
483+ event_names = set ()
484+ if self .userCfg ['extensions' ].has_section (bindings_section ):
485+ event_names |= set (
486+ self .userCfg ['extensions' ].GetOptionList (bindings_section )
487+ )
488+ if self .defaultCfg ['extensions' ].has_section (bindings_section ):
489+ event_names |= set (
490+ self .defaultCfg ['extensions' ].GetOptionList (bindings_section )
491+ )
492+
493+ for event_name in event_names :
494+ event = f'<<{ event_name } >>'
495+ binding = current_keyset .get (event , None )
496+ if binding is None :
497+ continue
498+ extension_keys [event ] = binding
499+ return extension_keys
500+
501+ def __GetRawExtensionKeys (self , extension_name ):
491502 """Return dict {configurable extensionName event : keybinding list}.
492503
493504 Events come from default config extension_cfgBindings section.
494505 Keybindings list come from the splitting of GetOption, which
495506 tries user config before default config.
496507 """
497- keysName = extensionName + '_cfgBindings'
498- extKeys = {}
499- if self .defaultCfg ['extensions' ].has_section (keysName ):
500- eventNames = self .defaultCfg ['extensions' ].GetOptionList (keysName )
501- for eventName in eventNames :
502- binding = self .GetOption (
503- 'extensions' , keysName , eventName , default = '' ).split ()
504- event = '<<' + eventName + '>>'
505- extKeys [event ] = binding
506- return extKeys
508+ bindings_section = f'{ extension_name } _cfgBindings'
509+ extension_keys = {}
510+
511+ event_names = set ()
512+ if self .userCfg ['extensions' ].has_section (bindings_section ):
513+ event_names |= set (
514+ self .userCfg ['extensions' ].GetOptionList (bindings_section )
515+ )
516+ if self .defaultCfg ['extensions' ].has_section (bindings_section ):
517+ event_names |= set (
518+ self .defaultCfg ['extensions' ].GetOptionList (bindings_section )
519+ )
520+
521+ for event_name in event_names :
522+ binding = self .GetOption (
523+ 'extensions' ,
524+ bindings_section ,
525+ event_name ,
526+ default = '' ,
527+ ).split ()
528+ event = f'<<{ event_name } >>'
529+ extension_keys [event ] = binding
530+ return extension_keys
507531
508532 def GetExtensionBindings (self , extensionName ):
509533 """Return dict {extensionName event : active or defined keybinding}.
@@ -512,18 +536,30 @@ def GetExtensionBindings(self, extensionName):
512536 configurable events (from default config) to GetOption splits,
513537 as in self.__GetRawExtensionKeys.
514538 """
515- bindsName = extensionName + '_bindings'
516- extBinds = self .GetExtensionKeys (extensionName )
517- #add the non-configurable bindings
518- if self .defaultCfg ['extensions' ].has_section (bindsName ):
519- eventNames = self .defaultCfg ['extensions' ].GetOptionList (bindsName )
520- for eventName in eventNames :
521- binding = self .GetOption (
522- 'extensions' , bindsName , eventName , default = '' ).split ()
523- event = '<<' + eventName + '>>'
524- extBinds [event ] = binding
525-
526- return extBinds
539+ bindings_section = f'{ extensionName } _bindings'
540+ extension_keys = self .GetExtensionKeys (extensionName )
541+
542+ # add the non-configurable bindings
543+ event_names = set ()
544+ if self .userCfg ['extensions' ].has_section (bindings_section ):
545+ event_names |= set (
546+ self .userCfg ['extensions' ].GetOptionList (bindings_section )
547+ )
548+ if self .defaultCfg ['extensions' ].has_section (bindings_section ):
549+ event_names |= set (
550+ self .defaultCfg ['extensions' ].GetOptionList (bindings_section )
551+ )
552+
553+ for event_name in event_names :
554+ binding = self .GetOption (
555+ 'extensions' ,
556+ bindings_section ,
557+ event_name ,
558+ default = ''
559+ ).split ()
560+ event = f'<<{ event_name } >>'
561+ extension_keys [event ] = binding
562+ return extension_keys
527563
528564 def GetKeyBinding (self , keySetName , eventStr ):
529565 """Return the keybinding list for keySetName eventStr.
0 commit comments