Commit beef4807 authored by hjk's avatar hjk

TextEditor: Simplify HoverHandler handling

The editor factories are already a central place to associate
hover handlers with editors, no need to retrieve them later from
the object pool again. This also allows for easy handling of
more than one active handler per editor.

Change-Id: Ie716b96f5ce6b526ee897468635e03e909d81538
Reviewed-by: default avatarDavid Schulz <david.schulz@digia.com>
parent b1cc98f7
...@@ -97,6 +97,8 @@ public: ...@@ -97,6 +97,8 @@ public:
| TextEditorActionHandler::UnCollapseAll | TextEditorActionHandler::UnCollapseAll
| TextEditorActionHandler::FollowSymbolUnderCursor); | TextEditorActionHandler::FollowSymbolUnderCursor);
addHoverHandler(new CppHoverHandler);
if (!Utils::HostOsInfo::isMacHost() && !Utils::HostOsInfo::isWindowsHost()) { if (!Utils::HostOsInfo::isMacHost() && !Utils::HostOsInfo::isWindowsHost()) {
FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_cpp.png", Constants::CPP_SOURCE_MIMETYPE); FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_cpp.png", Constants::CPP_SOURCE_MIMETYPE);
FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_c.png", Constants::C_SOURCE_MIMETYPE); FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_c.png", Constants::C_SOURCE_MIMETYPE);
...@@ -153,7 +155,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err ...@@ -153,7 +155,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
return false; return false;
addAutoReleasedObject(new CppEditorFactory); addAutoReleasedObject(new CppEditorFactory);
addAutoReleasedObject(new CppHoverHandler);
addAutoReleasedObject(new CppOutlineWidgetFactory); addAutoReleasedObject(new CppOutlineWidgetFactory);
addAutoReleasedObject(new CppTypeHierarchyFactory); addAutoReleasedObject(new CppTypeHierarchyFactory);
addAutoReleasedObject(new CppIncludeHierarchyFactory); addAutoReleasedObject(new CppIncludeHierarchyFactory);
......
...@@ -49,14 +49,6 @@ namespace Internal { ...@@ -49,14 +49,6 @@ namespace Internal {
CppHoverHandler::CppHoverHandler() CppHoverHandler::CppHoverHandler()
{} {}
CppHoverHandler::~CppHoverHandler()
{}
bool CppHoverHandler::acceptEditor(IEditor *editor)
{
return editor->document()->id() == CppEditor::Constants::CPPEDITOR_ID;
}
void CppHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos) void CppHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos)
{ {
if (!editorWidget->extraSelectionTooltip(pos).isEmpty()) { if (!editorWidget->extraSelectionTooltip(pos).isEmpty()) {
......
...@@ -39,10 +39,8 @@ class CppHoverHandler : public TextEditor::BaseHoverHandler ...@@ -39,10 +39,8 @@ class CppHoverHandler : public TextEditor::BaseHoverHandler
{ {
public: public:
CppHoverHandler(); CppHoverHandler();
virtual ~CppHoverHandler();
private: private:
virtual bool acceptEditor(Core::IEditor *editor);
virtual void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos); virtual void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos);
virtual void decorateToolTip(); virtual void decorateToolTip();
}; };
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "glsleditorconstants.h" #include "glsleditorconstants.h"
#include "glsleditorplugin.h" #include "glsleditorplugin.h"
#include "glslhighlighter.h" #include "glslhighlighter.h"
#include "glslhoverhandler.h"
#include "glslautocompleter.h" #include "glslautocompleter.h"
#include "glslcompletionassist.h" #include "glslcompletionassist.h"
#include "glslindenter.h" #include "glslindenter.h"
...@@ -347,6 +348,7 @@ GlslEditorFactory::GlslEditorFactory() ...@@ -347,6 +348,7 @@ GlslEditorFactory::GlslEditorFactory()
| TextEditorActionHandler::UnCommentSelection | TextEditorActionHandler::UnCommentSelection
| TextEditorActionHandler::UnCollapseAll); | TextEditorActionHandler::UnCollapseAll);
addHoverHandler(new GlslHoverHandler);
} }
} // namespace Internal } // namespace Internal
......
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
#include "glsleditorconstants.h" #include "glsleditorconstants.h"
#include "glslfilewizard.h" #include "glslfilewizard.h"
#include "glslhighlighter.h" #include "glslhighlighter.h"
#include "glslhoverhandler.h"
#include <glsl/glslengine.h> #include <glsl/glslengine.h>
#include <glsl/glslparser.h> #include <glsl/glslparser.h>
...@@ -128,7 +127,6 @@ bool GlslEditorPlugin::initialize(const QStringList & /*arguments*/, QString *er ...@@ -128,7 +127,6 @@ bool GlslEditorPlugin::initialize(const QStringList & /*arguments*/, QString *er
if (!MimeDatabase::addMimeTypes(QLatin1String(":/glsleditor/GLSLEditor.mimetypes.xml"), errorMessage)) if (!MimeDatabase::addMimeTypes(QLatin1String(":/glsleditor/GLSLEditor.mimetypes.xml"), errorMessage))
return false; return false;
addAutoReleasedObject(new GlslHoverHandler(this));
addAutoReleasedObject(new GlslEditorFactory); addAutoReleasedObject(new GlslEditorFactory);
addAutoReleasedObject(new GlslCompletionAssistProvider); addAutoReleasedObject(new GlslCompletionAssistProvider);
......
...@@ -29,30 +29,10 @@ ...@@ -29,30 +29,10 @@
#include "glslhoverhandler.h" #include "glslhoverhandler.h"
#include "glsleditor.h" #include "glsleditor.h"
#include "glsleditorconstants.h"
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/helpmanager.h>
#include <extensionsystem/pluginmanager.h>
#include <texteditor/texteditor.h>
using namespace Core;
namespace GlslEditor { namespace GlslEditor {
namespace Internal { namespace Internal {
GlslHoverHandler::GlslHoverHandler(QObject *parent) : BaseHoverHandler(parent)
{}
GlslHoverHandler::~GlslHoverHandler()
{}
bool GlslHoverHandler::acceptEditor(IEditor *editor)
{
return editor->context().contains(Constants::C_GLSLEDITOR_ID);
}
void GlslHoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos) void GlslHoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos)
{ {
if (!editorWidget->extraSelectionTooltip(pos).isEmpty()) if (!editorWidget->extraSelectionTooltip(pos).isEmpty())
......
...@@ -32,24 +32,15 @@ ...@@ -32,24 +32,15 @@
#include <texteditor/basehoverhandler.h> #include <texteditor/basehoverhandler.h>
#include <QObject>
namespace Core { class IEditor; }
namespace TextEditor { class BaseTextEditor; }
namespace GlslEditor { namespace GlslEditor {
namespace Internal { namespace Internal {
class GlslHoverHandler : public TextEditor::BaseHoverHandler class GlslHoverHandler : public TextEditor::BaseHoverHandler
{ {
Q_OBJECT
public: public:
GlslHoverHandler(QObject *parent = 0); GlslHoverHandler() {}
virtual ~GlslHoverHandler();
private: private:
virtual bool acceptEditor(Core::IEditor *editor);
virtual void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos); virtual void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos);
virtual void decorateToolTip(); virtual void decorateToolTip();
}; };
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "profilecompletionassist.h" #include "profilecompletionassist.h"
#include "profilehighlighter.h" #include "profilehighlighter.h"
#include "profilehoverhandler.h"
#include "qmakeprojectmanager.h" #include "qmakeprojectmanager.h"
#include "qmakeprojectmanagerconstants.h" #include "qmakeprojectmanagerconstants.h"
#include "qmakeprojectmanagerconstants.h" #include "qmakeprojectmanagerconstants.h"
...@@ -215,6 +216,8 @@ ProFileEditorFactory::ProFileEditorFactory() ...@@ -215,6 +216,8 @@ ProFileEditorFactory::ProFileEditorFactory()
setEditorActionHandlers(TextEditorActionHandler::UnCommentSelection setEditorActionHandlers(TextEditorActionHandler::UnCommentSelection
| TextEditorActionHandler::JumpToFileUnderCursor); | TextEditorActionHandler::JumpToFileUnderCursor);
addHoverHandler(new ProFileHoverHandler);
Core::FileIconProvider::registerIconOverlayForSuffix(QtSupport::Constants::ICON_QT_PROJECT, "pro"); Core::FileIconProvider::registerIconOverlayForSuffix(QtSupport::Constants::ICON_QT_PROJECT, "pro");
Core::FileIconProvider::registerIconOverlayForSuffix(QtSupport::Constants::ICON_QT_PROJECT, "pri"); Core::FileIconProvider::registerIconOverlayForSuffix(QtSupport::Constants::ICON_QT_PROJECT, "pri");
Core::FileIconProvider::registerIconOverlayForSuffix(QtSupport::Constants::ICON_QT_PROJECT, "prf"); Core::FileIconProvider::registerIconOverlayForSuffix(QtSupport::Constants::ICON_QT_PROJECT, "prf");
......
...@@ -53,11 +53,6 @@ ProFileHoverHandler::ProFileHoverHandler() ...@@ -53,11 +53,6 @@ ProFileHoverHandler::ProFileHoverHandler()
m_keywords = TextEditor::Keywords(pcap->variables(), pcap->functions(), QMap<QString, QStringList>()); m_keywords = TextEditor::Keywords(pcap->variables(), pcap->functions(), QMap<QString, QStringList>());
} }
bool ProFileHoverHandler::acceptEditor(IEditor *editor)
{
return editor->context().contains(Constants::PROFILE_EDITOR_ID);
}
void ProFileHoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos) void ProFileHoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos)
{ {
m_docFragment.clear(); m_docFragment.clear();
......
...@@ -42,6 +42,7 @@ namespace Internal { ...@@ -42,6 +42,7 @@ namespace Internal {
class ProFileHoverHandler : public TextEditor::BaseHoverHandler class ProFileHoverHandler : public TextEditor::BaseHoverHandler
{ {
Q_OBJECT Q_OBJECT
public: public:
ProFileHoverHandler(); ProFileHoverHandler();
...@@ -49,8 +50,7 @@ signals: ...@@ -49,8 +50,7 @@ signals:
void creatorHelpRequested(const QUrl &url); void creatorHelpRequested(const QUrl &url);
private: private:
virtual bool acceptEditor(Core::IEditor *editor); void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos);
virtual void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos);
void identifyQMakeKeyword(const QString &text, int pos); void identifyQMakeKeyword(const QString &text, int pos);
enum ManualKind { enum ManualKind {
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
#include "wizards/subdirsprojectwizard.h" #include "wizards/subdirsprojectwizard.h"
#include "wizards/qtquickappwizard.h" #include "wizards/qtquickappwizard.h"
#include "customwidgetwizard/customwidgetwizard.h" #include "customwidgetwizard/customwidgetwizard.h"
#include "profilehoverhandler.h"
#include "qmakeprojectmanagerconstants.h" #include "qmakeprojectmanagerconstants.h"
#include "qmakeproject.h" #include "qmakeproject.h"
#include "externaleditors.h" #include "externaleditors.h"
...@@ -111,7 +110,6 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString ...@@ -111,7 +110,6 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString
ProjectExplorer::KitManager::registerKitInformation(new QmakeKitInformation); ProjectExplorer::KitManager::registerKitInformation(new QmakeKitInformation);
addAutoReleasedObject(new ProFileEditorFactory);
addAutoReleasedObject(new EmptyProjectWizard); addAutoReleasedObject(new EmptyProjectWizard);
addAutoReleasedObject(new SubdirsProjectWizard); addAutoReleasedObject(new SubdirsProjectWizard);
addAutoReleasedObject(new GuiAppWizard); addAutoReleasedObject(new GuiAppWizard);
...@@ -137,7 +135,7 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString ...@@ -137,7 +135,7 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString
addAutoReleasedObject(new LinguistExternalEditor); addAutoReleasedObject(new LinguistExternalEditor);
addAutoReleasedObject(new ProFileCompletionAssistProvider); addAutoReleasedObject(new ProFileCompletionAssistProvider);
addAutoReleasedObject(new ProFileHoverHandler); addAutoReleasedObject(new ProFileEditorFactory);
auto hf = new TextEditor::HighlighterFactory; auto hf = new TextEditor::HighlighterFactory;
hf->setProductType<ProFileHighlighter>(); hf->setProductType<ProFileHighlighter>();
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "qmljseditordocument.h" #include "qmljseditordocument.h"
#include "qmljseditorplugin.h" #include "qmljseditorplugin.h"
#include "qmljsfindreferences.h" #include "qmljsfindreferences.h"
#include "qmljshoverhandler.h"
#include "qmljsquickfixassist.h" #include "qmljsquickfixassist.h"
#include "qmloutlinemodel.h" #include "qmloutlinemodel.h"
...@@ -901,6 +902,8 @@ QmlJSEditorFactory::QmlJSEditorFactory() ...@@ -901,6 +902,8 @@ QmlJSEditorFactory::QmlJSEditorFactory()
setAutoCompleterCreator([]() { return new AutoCompleter; }); setAutoCompleterCreator([]() { return new AutoCompleter; });
setCommentStyle(Utils::CommentDefinition::CppStyle); setCommentStyle(Utils::CommentDefinition::CppStyle);
addHoverHandler(new QmlJSHoverHandler);
setEditorActionHandlers(TextEditorActionHandler::Format setEditorActionHandlers(TextEditorActionHandler::Format
| TextEditorActionHandler::UnCommentSelection | TextEditorActionHandler::UnCommentSelection
| TextEditorActionHandler::UnCollapseAll | TextEditorActionHandler::UnCollapseAll
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#include "qmljseditor.h" #include "qmljseditor.h"
#include "qmljseditorconstants.h" #include "qmljseditorconstants.h"
#include "qmljseditordocument.h" #include "qmljseditordocument.h"
#include "qmljshoverhandler.h"
#include "qmlfilewizard.h" #include "qmlfilewizard.h"
#include "jsfilewizard.h" #include "jsfilewizard.h"
#include "qmljsoutline.h" #include "qmljsoutline.h"
...@@ -224,7 +223,6 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e ...@@ -224,7 +223,6 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e
m_quickFixAssistProvider = new QmlJSQuickFixAssistProvider; m_quickFixAssistProvider = new QmlJSQuickFixAssistProvider;
addAutoReleasedObject(m_quickFixAssistProvider); addAutoReleasedObject(m_quickFixAssistProvider);
addAutoReleasedObject(new QmlJSCompletionAssistProvider); addAutoReleasedObject(new QmlJSCompletionAssistProvider);
addAutoReleasedObject(new QmlJSHoverHandler);
errorMessage->clear(); errorMessage->clear();
......
...@@ -92,16 +92,11 @@ namespace { ...@@ -92,16 +92,11 @@ namespace {
} }
} }
QmlJSHoverHandler::QmlJSHoverHandler(QObject *parent) : BaseHoverHandler(parent), m_modelManager(0) QmlJSHoverHandler::QmlJSHoverHandler() : m_modelManager(0)
{ {
m_modelManager = QmlJS::ModelManagerInterface::instance(); m_modelManager = QmlJS::ModelManagerInterface::instance();
} }
bool QmlJSHoverHandler::acceptEditor(IEditor *editor)
{
return editor->context().contains(Constants::C_QMLJSEDITOR_ID);
}
static inline QString getModuleName(const ScopeChain &scopeChain, const Document::Ptr &qmlDocument, static inline QString getModuleName(const ScopeChain &scopeChain, const Document::Ptr &qmlDocument,
const ObjectValue *value) const ObjectValue *value)
{ {
......
...@@ -39,10 +39,6 @@ QT_BEGIN_NAMESPACE ...@@ -39,10 +39,6 @@ QT_BEGIN_NAMESPACE
template <class> class QList; template <class> class QList;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Core { class IEditor; }
namespace TextEditor { class BaseTextEditor; }
namespace QmlJS { namespace QmlJS {
class ScopeChain; class ScopeChain;
class Context; class Context;
...@@ -59,13 +55,13 @@ class QmlJSEditorWidget; ...@@ -59,13 +55,13 @@ class QmlJSEditorWidget;
class QmlJSHoverHandler : public TextEditor::BaseHoverHandler class QmlJSHoverHandler : public TextEditor::BaseHoverHandler
{ {
Q_OBJECT Q_OBJECT
public: public:
QmlJSHoverHandler(QObject *parent = 0); QmlJSHoverHandler();
private: private:
void reset(); void reset();
bool acceptEditor(Core::IEditor *editor);
void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos); void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos);
void operateTooltip(TextEditor::TextEditorWidget *editorWidget, const QPoint &point); void operateTooltip(TextEditor::TextEditorWidget *editorWidget, const QPoint &point);
......
...@@ -40,51 +40,31 @@ using namespace Core; ...@@ -40,51 +40,31 @@ using namespace Core;
namespace TextEditor { namespace TextEditor {
BaseHoverHandler::BaseHoverHandler(QObject *parent) : QObject(parent), m_diagnosticTooltip(false) BaseHoverHandler::BaseHoverHandler() : m_diagnosticTooltip(false)
{ {
// Listen for editor opened events in order to connect to tooltip/helpid requests
connect(EditorManager::instance(), &EditorManager::editorOpened,
this, &BaseHoverHandler::editorOpened);
} }
BaseHoverHandler::~BaseHoverHandler() BaseHoverHandler::~BaseHoverHandler()
{} {}
void BaseHoverHandler::editorOpened(Core::IEditor *editor) void BaseHoverHandler::showToolTip(TextEditorWidget *widget, const QPoint &point, int pos)
{ {
if (acceptEditor(editor)) { widget->setContextHelpId(QString());
BaseTextEditor *textEditor = qobject_cast<BaseTextEditor *>(editor);
if (textEditor) {
connect(textEditor, &BaseTextEditor::tooltipRequested,
this, &BaseHoverHandler::showToolTip);
connect(textEditor, &BaseTextEditor::contextHelpIdRequested,
this, &BaseHoverHandler::updateContextHelpId);
}
}
}
void BaseHoverHandler::showToolTip(BaseTextEditor *editor, const QPoint &point, int pos) process(widget, pos);
{ operateTooltip(widget, point);
TextEditorWidget *editorWidget = editor->editorWidget();
editor->setContextHelpId(QString());
process(editor, pos);
operateTooltip(editorWidget, point);
} }
void BaseHoverHandler::updateContextHelpId(BaseTextEditor *editor, int pos) QString BaseHoverHandler::contextHelpId(TextEditorWidget *widget, int pos)
{ {
// If the tooltip is visible and there is a help match, this match is used to update // If the tooltip is visible and there is a help match, this match is used to update
// the help id. Otherwise, let the identification process happen. // the help id. Otherwise, let the identification process happen.
if (!Utils::ToolTip::isVisible() || !lastHelpItemIdentified().isValid()) if (!Utils::ToolTip::isVisible() || !lastHelpItemIdentified().isValid())
process(editor, pos); process(widget, pos);
if (lastHelpItemIdentified().isValid()) if (lastHelpItemIdentified().isValid())
editor->setContextHelpId(lastHelpItemIdentified().helpId()); return lastHelpItemIdentified().helpId();
else return QString();
editor->setContextHelpId(QString()); // Make sure it's an empty string.
} }
void BaseHoverHandler::setToolTip(const QString &tooltip) void BaseHoverHandler::setToolTip(const QString &tooltip)
...@@ -136,10 +116,10 @@ void BaseHoverHandler::clear() ...@@ -136,10 +116,10 @@ void BaseHoverHandler::clear()
m_lastHelpItemIdentified = HelpItem(); m_lastHelpItemIdentified = HelpItem();
} }
void BaseHoverHandler::process(BaseTextEditor *editor, int pos) void BaseHoverHandler::process(TextEditorWidget *widget, int pos)
{ {
clear(); clear();
identifyMatch(editor->editorWidget(), pos); identifyMatch(widget, pos);
decorateToolTip(); decorateToolTip();
} }
......
...@@ -46,9 +46,12 @@ class TEXTEDITOR_EXPORT BaseHoverHandler : public QObject ...@@ -46,9 +46,12 @@ class TEXTEDITOR_EXPORT BaseHoverHandler : public QObject
Q_OBJECT Q_OBJECT
public: public:
BaseHoverHandler(QObject *parent = 0); BaseHoverHandler();
~BaseHoverHandler(); ~BaseHoverHandler();
QString contextHelpId(TextEditorWidget *widget, int pos);
void showToolTip(TextEditorWidget *widget, const QPoint &point, int pos);
protected: protected:
void setToolTip(const QString &tooltip); void setToolTip(const QString &tooltip);
void appendToolTip(const QString &extension); void appendToolTip(const QString &extension);
...@@ -63,14 +66,9 @@ protected: ...@@ -63,14 +66,9 @@ protected:
const HelpItem &lastHelpItemIdentified() const; const HelpItem &lastHelpItemIdentified() const;
private: private:
void editorOpened(Core::IEditor *editor);
void showToolTip(BaseTextEditor *editor, const QPoint &point, int pos);
void updateContextHelpId(BaseTextEditor *editor, int pos);
void clear(); void clear();
void process(BaseTextEditor *editor, int pos); void process(TextEditorWidget *widget, int pos);
virtual bool acceptEditor(Core::IEditor *editor) = 0;
virtual void identifyMatch(TextEditorWidget *editorWidget, int pos) = 0; virtual void identifyMatch(TextEditorWidget *editorWidget, int pos) = 0;
virtual void decorateToolTip(); virtual void decorateToolTip();
virtual void operateTooltip(TextEditorWidget *editorWidget, const QPoint &point); virtual void operateTooltip(TextEditorWidget *editorWidget, const QPoint &point);
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "texteditor_p.h" #include "texteditor_p.h"
#include "autocompleter.h" #include "autocompleter.h"
#include "basehoverhandler.h"
#include "behaviorsettings.h" #include "behaviorsettings.h"
#include "circularclipboard.h" #include "circularclipboard.h"
#include "circularclipboardassist.h" #include "circularclipboardassist.h"
...@@ -355,6 +356,7 @@ public: ...@@ -355,6 +356,7 @@ public:
void snippetTabOrBacktab(bool forward); void snippetTabOrBacktab(bool forward);
RefactorOverlay *m_refactorOverlay; RefactorOverlay *m_refactorOverlay;
QString m_contextHelpId;
QBasicTimer foldedBlockTimer; QBasicTimer foldedBlockTimer;
int visibleFoldedBlockNumber; int visibleFoldedBlockNumber;
...@@ -420,6 +422,7 @@ public: ...@@ -420,6 +422,7 @@ public:
CodeAssistant m_codeAssistant; CodeAssistant m_codeAssistant;
bool m_assistRelevantContentAdded; bool m_assistRelevantContentAdded;