2
* Copyright 2014 David Herberth kde@dav1d.de
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) version 3, or any
8
* later version accepted by the membership of KDE e.V. (or its
9
* successor approved by the membership of KDE e.V.), which shall
10
* act as a proxy defined in Section 6 of version 3 of the license.
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
24
#include <ktexteditor/plugin.h>
25
#include <ktexteditor/range.h>
27
#include <kpluginfactory.h>
29
#include <QVariantList>
32
#include <kxmlguiclient.h>
34
#include "completion.h"
36
using namespace KTextEditor;
40
class LumenPluginView: public QObject, public KXMLGUIClient
44
LumenPluginView(LumenPlugin *plugin, KTextEditor::View *view);
45
virtual ~LumenPluginView();
46
void registerCompletion();
47
void registerTextHints();
49
void urlChanged(KTextEditor::Document*);
50
void getTextHint(const KTextEditor::Cursor&, QString&);
52
LumenPlugin *m_plugin;
53
QPointer<KTextEditor::View> m_view;
54
LumenCompletionModel *m_model;
58
class LumenPlugin: public Plugin
62
LumenPlugin(QObject *parent, const QVariantList & = QVariantList());
65
void addView(View *view);
66
void removeView(View *view);
67
virtual void readConfig(KConfig*) {}
68
virtual void writeConfig(KConfig*) {}
70
QMap<KTextEditor::View*,LumenPluginView*> m_views;
74
K_PLUGIN_FACTORY_DECLARATION(LumenPluginFactory)