UI/CodeDocumentationViewer.py

changeset 5911
0c7bcba51391
parent 5908
4d08fb83a844
child 5912
b6643d36dddd
diff -r 3f0255a8786a -r 0c7bcba51391 UI/CodeDocumentationViewer.py
--- a/UI/CodeDocumentationViewer.py	Mon Oct 16 19:40:47 2017 +0200
+++ b/UI/CodeDocumentationViewer.py	Mon Oct 16 20:18:04 2017 +0200
@@ -76,7 +76,8 @@
         self.__selectedProvider = provider
     
     # TODO: document this hook in the plug-in document
-    def registerProvider(self, providerName, providerDisplay, provider):
+    def registerProvider(self, providerName, providerDisplay, provider,
+                         supported):
         """
         Public method register a source docu provider.
         
@@ -85,7 +86,10 @@
         @param providerDisplay visible name of the provider
         @type str
         @param provider function to be called to determine source docu
-        @type function
+        @type function(editor)
+        @param supported function to be called to determine, if a language is
+            supported
+        @type function(language)
         @exception KeyError raised if a provider with the given name was
             already registered
         """
@@ -93,7 +97,7 @@
             raise KeyError(
                 "Provider '{0}' already registered.".format(providerName))
         
-        self.__providers[providerName] = provider
+        self.__providers[providerName] = (provider, supported)
         self.providerComboBox.addItem(providerDisplay, providerName)
     
     # TODO: document this hook in the plug-in document
@@ -112,6 +116,23 @@
             index = self.providerComboBox.findData(providerName)
             self.providerComboBox.removeItem(index)
     
+    def isSupportedLanguage(self, language):
+        """
+        Public method to check, if the given language is supported by the
+        selected provider.
+        
+        @param language editor programming language to check
+        @type str
+        @return flag indicating the support status
+        @rtype bool
+        """
+        supported = False
+        
+        if self.__selectedProvider != self.__disabledProvider:
+            supported = self.__providers[self.__selectedProvider][1](language)
+        
+        return supported
+    
     def showInfo(self, editor):
         """
         Public method to request code documentation data from a provider.
@@ -128,7 +149,7 @@
         
         if self.__selectedProvider != self.__disabledProvider:
             self.contents.clear()
-            self.__providers[self.__selectedProvider](editor)
+            self.__providers[self.__selectedProvider][0](editor)
     
     # TODO: document this hook in the plug-in document
     def documentationReady(self, documentationInfo):

eric ide

mercurial