File indexing completed on 2024-04-28 04:37:18
0001 /* 0002 SPDX-FileCopyrightText: 2006 Adam Treat <treat@kde.org> 0003 SPDX-FileCopyrightText: 2007 Alexander Dymo <adymo@kdevelop.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef KDEVPLATFORM_LANGUAGECONTROLLER_H 0009 #define KDEVPLATFORM_LANGUAGECONTROLLER_H 0010 0011 #include <interfaces/ilanguagecontroller.h> 0012 0013 #include "shellexport.h" 0014 0015 namespace KDevelop { 0016 0017 class ILanguageSupport; 0018 class LanguageControllerPrivate; 0019 0020 class KDEVPLATFORMSHELL_EXPORT LanguageController : public ILanguageController { 0021 Q_OBJECT 0022 public: 0023 explicit LanguageController(QObject *parent); 0024 ~LanguageController() override; 0025 0026 void initialize(); 0027 0028 //After this was called, no more languages will be returned 0029 void cleanup(); 0030 0031 /** @copydoc ILanguageController::language() */ 0032 ILanguageSupport* language(const QString &name) const override; 0033 /** @copydoc ILanguageController::languageForUrl() */ 0034 QList<ILanguageSupport*> languagesForUrl(const QUrl &url) override; 0035 /** @copydoc ILanguageController::backgroundParser() */ 0036 BackgroundParser *backgroundParser() const override; 0037 0038 StaticAssistantsManager *staticAssistantsManager() const override; 0039 0040 QList<ILanguageSupport*> loadedLanguages() const override; 0041 0042 ICompletionSettings *completionSettings() const override; 0043 0044 ProblemModelSet* problemModelSet() const override; 0045 0046 QList<ILanguageSupport*> languagesForMimetype(const QString& mime); 0047 QList<QString> mimetypesForLanguageName(const QString& languageName); 0048 0049 protected: 0050 /** 0051 * functions for unit tests 0052 * @see TestLanguageController 0053 */ 0054 void addLanguageSupport(KDevelop::ILanguageSupport* languageSupport, const QStringList& mimetypes); 0055 0056 private: 0057 const QScopedPointer<class LanguageControllerPrivate> d_ptr; 0058 Q_DECLARE_PRIVATE(LanguageController) 0059 }; 0060 0061 } 0062 0063 #endif 0064