| 198 | } |
| 199 | |
| 200 | QList< IDocumentationProvider* > DocumentationController::documentationProviders() const |
| 201 | { |
| 202 | const QList<IPlugin*> plugins = ICore::self()->pluginController()->allPluginsForExtension(QStringLiteral("org.kdevelop.IDocumentationProvider")); |
| 203 | const QList<IPlugin*> pluginsProvider = ICore::self()->pluginController()->allPluginsForExtension(QStringLiteral("org.kdevelop.IDocumentationProviderProvider")); |
| 204 | |
| 205 | QList<IDocumentationProvider*> ret; |
| 206 | for (IPlugin* p : pluginsProvider) { |
| 207 | auto *docProvider=p->extension<IDocumentationProviderProvider>(); |
| 208 | if (!docProvider) { |
| 209 | qCWarning(SHELL) << "plugin" << p << "does not implement ProviderProvider extension, rerun kbuildsycoca5"; |
| 210 | continue; |
| 211 | } |
| 212 | ret.append(docProvider->providers()); |
| 213 | } |
| 214 | |
| 215 | for (IPlugin* p : plugins) { |
| 216 | auto *doc=p->extension<IDocumentationProvider>(); |
| 217 | if (!doc) { |
| 218 | qCWarning(SHELL) << "plugin" << p << "does not implement Provider extension, rerun kbuildsycoca5"; |
| 219 | continue; |
| 220 | } |
| 221 | ret.append(doc); |
| 222 | } |
| 223 | |
| 224 | return ret; |
| 225 | } |
| 226 | |
| 227 | void KDevelop::DocumentationController::showDocumentation(const IDocumentation::Ptr& doc) |
| 228 | { |
no test coverage detected