File indexing completed on 2024-04-28 05:48:45

0001 /*
0002     SPDX-FileCopyrightText: 2021 Ilia Kats <ilia-kats@gmx.net>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "completionmodel.h"
0008 
0009 #include <KPluginFactory>
0010 #include <KTextEditor/MainWindow>
0011 #include <KTextEditor/Plugin>
0012 #include <KTextEditor/View>
0013 
0014 class LatexCompletionPlugin : public KTextEditor::Plugin
0015 {
0016     Q_OBJECT
0017 public:
0018     LatexCompletionPlugin(QObject *parent, const QVariantList &)
0019         : KTextEditor::Plugin(parent)
0020         , m_model(new LatexCompletionModel(this))
0021     {
0022     }
0023 
0024     QObject *createView(KTextEditor::MainWindow *mainWindow) override
0025     {
0026         const auto views = mainWindow->views();
0027         for (auto view : views)
0028             viewCreated(view);
0029         connect(mainWindow, &KTextEditor::MainWindow::viewCreated, this, &LatexCompletionPlugin::viewCreated);
0030         return nullptr;
0031     }
0032 
0033 private Q_SLOTS:
0034     void viewCreated(KTextEditor::View *view)
0035     {
0036         view->registerCompletionModel(m_model);
0037     }
0038 
0039 private:
0040     LatexCompletionModel *m_model;
0041 };
0042 K_PLUGIN_FACTORY_WITH_JSON(TextFilterPluginFactory, "latexcompletionplugin.json", registerPlugin<LatexCompletionPlugin>();)
0043 
0044 #include "latexcompletionplugin.moc"