--- 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):