1 /* 2 SPDX-FileCopyrightText: 2006 Adam Treat <treat@kde.org> 3 SPDX-FileCopyrightText: 2007 Alexander Dymo <adymo@kdevelop.org> 4 5 SPDX-License-Identifier: LGPL-2.0-or-later 6 */ 7 8 #ifndef KDEVPLATFORM_LANGUAGECONTROLLER_H 9 #define KDEVPLATFORM_LANGUAGECONTROLLER_H 10 11 #include <interfaces/ilanguagecontroller.h> 12 13 #include "shellexport.h" 14 15 namespace KDevelop { 16 17 class ILanguageSupport; 18 class LanguageControllerPrivate; 19 20 class KDEVPLATFORMSHELL_EXPORT LanguageController : public ILanguageController { 21 Q_OBJECT 22 public: 23 explicit LanguageController(QObject *parent); 24 ~LanguageController() override; 25 26 void initialize(); 27 28 //After this was called, no more languages will be returned 29 void cleanup(); 30 31 /** @copydoc ILanguageController::activeLanguages() */ 32 QList<ILanguageSupport*> activeLanguages() override; 33 /** @copydoc ILanguageController::language() */ 34 ILanguageSupport* language(const QString &name) const override; 35 /** @copydoc ILanguageController::languageForUrl() */ 36 QList<ILanguageSupport*> languagesForUrl(const QUrl &url) override; 37 /** @copydoc ILanguageController::backgroundParser() */ 38 BackgroundParser *backgroundParser() const override; 39 40 StaticAssistantsManager *staticAssistantsManager() const override; 41 42 QList<ILanguageSupport*> loadedLanguages() const override; 43 44 ICompletionSettings *completionSettings() const override; 45 46 ProblemModelSet* problemModelSet() const override; 47 48 QList<ILanguageSupport*> languagesForMimetype(const QString& mime); 49 QList<QString> mimetypesForLanguageName(const QString& languageName); 50 51 protected: 52 /** 53 * functions for unit tests 54 * @see TestLanguageController 55 */ 56 void addLanguageSupport(KDevelop::ILanguageSupport* languageSupport, const QStringList& mimetypes); 57 58 private: 59 const QScopedPointer<class LanguageControllerPrivate> d_ptr; 60 Q_DECLARE_PRIVATE(LanguageController) 61 }; 62 63 } 64 65 #endif 66 67