Debugger/DebugServer.py

changeset 6374
fcd97204ff16
parent 6367
7bc6fc02d981
child 6376
201067699041
--- a/Debugger/DebugServer.py	Wed Jun 27 18:43:11 2018 +0200
+++ b/Debugger/DebugServer.py	Wed Jun 27 18:44:54 2018 +0200
@@ -301,14 +301,15 @@
             registeredInterfaces[interfaceName] = \
                 self.__debuggerInterfaces[interfaceName]
         
-        self.__debuggerInterfaces = {}
         self.__debuggerInterfaceRegistry = {}
         for interfaceName, getRegistryData in registeredInterfaces.items():
-            self.registerDebuggerInterface(interfaceName, getRegistryData)
+            self.registerDebuggerInterface(interfaceName, getRegistryData,
+                                           reregister=True)
         
         self.__maxVariableSize = Preferences.getDebugger("MaxVariableSize")
         
-    def registerDebuggerInterface(self, interfaceName, getRegistryData):
+    def registerDebuggerInterface(self, interfaceName, getRegistryData,
+                                  reregister=False):
         """
         Public method to register a debugger interface.
         
@@ -320,8 +321,10 @@
             list of associated file extensions and a function reference
             to create the debugger interface (see __createDebuggerInterface())
         @type function
+        @param reregister flag indicating to re-register the interface
+        @type bool
         """
-        if interfaceName in self.__debuggerInterfaces:
+        if interfaceName in self.__debuggerInterfaces and not reregister:
             E5MessageBox.warning(
                 None,
                 self.tr("Register Debugger Interface"),
@@ -329,9 +332,10 @@
                         """ been registered. Ignoring this request.</p>"""))
             return
         
+        if not reregister:
+            self.__debuggerInterfaces[interfaceName] = getRegistryData
         registryDataList = getRegistryData()
         if registryDataList:
-            self.__debuggerInterfaces[interfaceName] = getRegistryData
             for clientLanguage, clientCapabilities, clientExtensions, \
                     interfaceCreator in registryDataList:
                 self.__debuggerInterfaceRegistry[clientLanguage] = [

eric ide

mercurial