Commit bf5e43be authored by hjk's avatar hjk
Browse files

TextEditor: Merge ITextEditor and BaseTextEditor



Adjust all callers, de-export BaseTextEditorAnimator

Change-Id: I2329d976c1398e2449844bb480a4d4ed29859506
Reviewed-by: default avatarTobias Hunger <tobias.hunger@digia.com>
parent 15421995
......@@ -34,7 +34,7 @@
#include "projectexplorer.h"
#include "editorconfiguration.h"
#include <texteditor/itexteditor.h>
#include <texteditor/basetexteditor.h>
#include <utils/filesearch.h>
#include <utils/algorithm.h>
......@@ -84,7 +84,7 @@ Utils::FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFi
filterRegs << QRegExp(filter, Qt::CaseInsensitive, QRegExp::Wildcard);
}
QMap<QString, QTextCodec *> openEditorEncodings
= TextEditor::ITextEditorDocument::openedTextDocumentEncodings();
= TextEditor::BaseTextEditorDocument::openedTextDocumentEncodings();
QMap<QString, QTextCodec *> encodings;
foreach (const Project *project, projects) {
QStringList projectFiles = project->files(Project::AllFiles);
......
......@@ -246,23 +246,23 @@ void EditorConfiguration::fromMap(const QVariantMap &map)
d->m_marginSettings.fromMap(kPrefix, map);
}
void EditorConfiguration::configureEditor(ITextEditor *textEditor) const
void EditorConfiguration::configureEditor(BaseTextEditor *textEditor) const
{
BaseTextEditorWidget *baseTextEditor = qobject_cast<BaseTextEditorWidget *>(textEditor->widget());
if (baseTextEditor)
baseTextEditor->setCodeStyle(codeStyle(baseTextEditor->languageSettingsId()));
BaseTextEditorWidget *widget = textEditor->editorWidget();
if (widget)
widget->setCodeStyle(codeStyle(widget->languageSettingsId()));
if (!d->m_useGlobal) {
textEditor->textDocument()->setCodec(d->m_textCodec);
if (baseTextEditor)
switchSettings(baseTextEditor);
if (widget)
switchSettings(widget);
}
}
void EditorConfiguration::deconfigureEditor(ITextEditor *textEditor) const
void EditorConfiguration::deconfigureEditor(BaseTextEditor *textEditor) const
{
BaseTextEditorWidget *baseTextEditor = qobject_cast<BaseTextEditorWidget *>(textEditor->widget());
if (baseTextEditor)
baseTextEditor->setCodeStyle(TextEditorSettings::codeStyle(baseTextEditor->languageSettingsId()));
BaseTextEditorWidget *widget = textEditor->editorWidget();
if (widget)
widget->setCodeStyle(TextEditorSettings::codeStyle(widget->languageSettingsId()));
// TODO: what about text codec and switching settings?
}
......@@ -273,56 +273,56 @@ void EditorConfiguration::setUseGlobalSettings(bool use)
d->m_defaultCodeStyle->setCurrentDelegate(d->m_useGlobal
? TextEditorSettings::codeStyle() : 0);
foreach (Core::IEditor *editor, Core::DocumentModel::editorsForOpenedDocuments()) {
if (BaseTextEditorWidget *baseTextEditor = qobject_cast<BaseTextEditorWidget *>(editor->widget())) {
if (BaseTextEditorWidget *widget = qobject_cast<BaseTextEditorWidget *>(editor->widget())) {
Project *project = SessionManager::projectForFile(editor->document()->filePath());
if (project && project->editorConfiguration() == this)
switchSettings(baseTextEditor);
switchSettings(widget);
}
}
}
static void switchSettings_helper(const QObject *newSender, const QObject *oldSender,
BaseTextEditorWidget *baseTextEditor)
BaseTextEditorWidget *widget)
{
QObject::disconnect(oldSender, SIGNAL(marginSettingsChanged(TextEditor::MarginSettings)),
baseTextEditor, SLOT(setMarginSettings(TextEditor::MarginSettings)));
widget, SLOT(setMarginSettings(TextEditor::MarginSettings)));
QObject::disconnect(oldSender, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
baseTextEditor, SLOT(setTypingSettings(TextEditor::TypingSettings)));
widget, SLOT(setTypingSettings(TextEditor::TypingSettings)));
QObject::disconnect(oldSender, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
baseTextEditor, SLOT(setStorageSettings(TextEditor::StorageSettings)));
widget, SLOT(setStorageSettings(TextEditor::StorageSettings)));
QObject::disconnect(oldSender, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
baseTextEditor, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
widget, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
QObject::disconnect(oldSender, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
baseTextEditor, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
widget, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
QObject::connect(newSender, SIGNAL(marginSettingsChanged(TextEditor::MarginSettings)),
baseTextEditor, SLOT(setMarginSettings(TextEditor::MarginSettings)));
widget, SLOT(setMarginSettings(TextEditor::MarginSettings)));
QObject::connect(newSender, SIGNAL(typingSettingsChanged(TextEditor::TypingSettings)),
baseTextEditor, SLOT(setTypingSettings(TextEditor::TypingSettings)));
widget, SLOT(setTypingSettings(TextEditor::TypingSettings)));
QObject::connect(newSender, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
baseTextEditor, SLOT(setStorageSettings(TextEditor::StorageSettings)));
widget, SLOT(setStorageSettings(TextEditor::StorageSettings)));
QObject::connect(newSender, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
baseTextEditor, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
widget, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
QObject::connect(newSender, SIGNAL(extraEncodingSettingsChanged(TextEditor::ExtraEncodingSettings)),
baseTextEditor, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
widget, SLOT(setExtraEncodingSettings(TextEditor::ExtraEncodingSettings)));
}
void EditorConfiguration::switchSettings(BaseTextEditorWidget *baseTextEditor) const
void EditorConfiguration::switchSettings(BaseTextEditorWidget *widget) const
{
if (d->m_useGlobal) {
baseTextEditor->setMarginSettings(TextEditorSettings::marginSettings());
baseTextEditor->setTypingSettings(TextEditorSettings::typingSettings());
baseTextEditor->setStorageSettings(TextEditorSettings::storageSettings());
baseTextEditor->setBehaviorSettings(TextEditorSettings::behaviorSettings());
baseTextEditor->setExtraEncodingSettings(TextEditorSettings::extraEncodingSettings());
switchSettings_helper(TextEditorSettings::instance(), this, baseTextEditor);
widget->setMarginSettings(TextEditorSettings::marginSettings());
widget->setTypingSettings(TextEditorSettings::typingSettings());
widget->setStorageSettings(TextEditorSettings::storageSettings());
widget->setBehaviorSettings(TextEditorSettings::behaviorSettings());
widget->setExtraEncodingSettings(TextEditorSettings::extraEncodingSettings());
switchSettings_helper(TextEditorSettings::instance(), this, widget);
} else {
baseTextEditor->setMarginSettings(marginSettings());
baseTextEditor->setTypingSettings(typingSettings());
baseTextEditor->setStorageSettings(storageSettings());
baseTextEditor->setBehaviorSettings(behaviorSettings());
baseTextEditor->setExtraEncodingSettings(extraEncodingSettings());
switchSettings_helper(this, TextEditorSettings::instance(), baseTextEditor);
widget->setMarginSettings(marginSettings());
widget->setTypingSettings(typingSettings());
widget->setStorageSettings(storageSettings());
widget->setBehaviorSettings(behaviorSettings());
widget->setExtraEncodingSettings(extraEncodingSettings());
switchSettings_helper(this, TextEditorSettings::instance(), widget);
}
}
......@@ -385,7 +385,7 @@ void EditorConfiguration::slotAboutToRemoveProject(ProjectExplorer::Project *pro
return;
foreach (Core::IEditor *editor, Core::DocumentModel::editorsForOpenedDocuments()) {
if (TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor)) {
if (TextEditor::BaseTextEditor *textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
Core::IDocument *document = editor->document();
if (document) {
Project *editorProject = SessionManager::projectForFile(document->filePath());
......
......@@ -38,7 +38,7 @@
namespace Core { class Id; }
namespace TextEditor {
class ITextEditor;
class BaseTextEditor;
class BaseTextEditorWidget;
class BaseTextDocument;
class TabSettings;
......@@ -80,8 +80,8 @@ public:
TextEditor::ICodeStylePreferences *codeStyle(Core::Id languageId) const;
QMap<Core::Id, TextEditor::ICodeStylePreferences *> codeStyles() const;
void configureEditor(TextEditor::ITextEditor *textEditor) const;
void deconfigureEditor(TextEditor::ITextEditor *textEditor) const;
void configureEditor(TextEditor::BaseTextEditor *textEditor) const;
void deconfigureEditor(TextEditor::BaseTextEditor *textEditor) const;
QVariantMap toMap() const;
void fromMap(const QVariantMap &map);
......
......@@ -42,7 +42,7 @@
#include <coreplugin/progressmanager/progressmanager.h>
#include <coreplugin/modemanager.h>
#include <texteditor/itexteditor.h>
#include <texteditor/basetexteditor.h>
#include <utils/algorithm.h>
#include <utils/stylehelper.h>
......@@ -572,7 +572,7 @@ bool SessionManagerPrivate::projectContainsFile(Project *p, const QString &fileN
void SessionManager::configureEditor(Core::IEditor *editor, const QString &fileName)
{
if (TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor)) {
if (TextEditor::BaseTextEditor *textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
Project *project = projectForFile(fileName);
// Global settings are the default.
if (project)
......
......@@ -61,7 +61,7 @@ bool ProFileHoverHandler::acceptEditor(IEditor *editor)
return false;
}
void ProFileHoverHandler::identifyMatch(TextEditor::ITextEditor *editor, int pos)
void ProFileHoverHandler::identifyMatch(TextEditor::BaseTextEditor *editor, int pos)
{
m_docFragment.clear();
m_manualKind = UnknownManual;
......
......@@ -41,7 +41,7 @@ QT_END_NAMESPACE
namespace Core { class IEditor; }
namespace TextEditor { class ITextEditor; }
namespace TextEditor { class BaseTextEditor; }
namespace QmakeProjectManager {
namespace Internal {
......@@ -58,7 +58,7 @@ signals:
private:
virtual bool acceptEditor(Core::IEditor *editor);
virtual void identifyMatch(TextEditor::ITextEditor *editor, int pos);
virtual void identifyMatch(TextEditor::BaseTextEditor *editor, int pos);
void identifyQMakeKeyword(const QString &text, int pos);
enum ManualKind {
......
......@@ -157,7 +157,7 @@ void QmakeManager::addLibrary(const QString &fileName, ProFileEditor *editor)
if (!editor)
return;
const int endOfDoc = editor->position(TextEditor::ITextEditor::EndOfDoc);
const int endOfDoc = editor->position(TextEditor::BaseTextEditor::EndOfDoc);
editor->setCursorPosition(endOfDoc);
QString snippet = wizard.snippet();
......
......@@ -590,9 +590,9 @@ Core::IEditor *DesignDocument::editor() const
return m_textEditor.data();
}
TextEditor::ITextEditor *DesignDocument::textEditor() const
TextEditor::BaseTextEditor *DesignDocument::textEditor() const
{
return qobject_cast<TextEditor::ITextEditor*>(editor());
return qobject_cast<TextEditor::BaseTextEditor*>(editor());
}
QPlainTextEdit *DesignDocument::plainTextEdit() const
......
......@@ -93,7 +93,7 @@ public:
void setEditor(Core::IEditor *editor);
Core::IEditor *editor() const;
TextEditor::ITextEditor *textEditor() const;
TextEditor::BaseTextEditor *textEditor() const;
QPlainTextEdit *plainTextEdit() const;
QString fileName() const;
ProjectExplorer::Kit *currentKit() const;
......
......@@ -288,7 +288,7 @@ void DesignModeWidget::updateErrorStatus(const QList<RewriterView::Error> &error
}
}
TextEditor::ITextEditor *DesignModeWidget::textEditor() const
TextEditor::BaseTextEditor *DesignModeWidget::textEditor() const
{
return currentDesignDocument()->textEditor();
}
......
......@@ -99,7 +99,7 @@ public:
void readSettings();
void saveSettings();
TextEditor::ITextEditor *textEditor() const;
TextEditor::BaseTextEditor *textEditor() const;
DesignDocument *currentDesignDocument() const;
ViewManager &viewManager();
......
......@@ -47,7 +47,7 @@ class ActionManager;
class IEditor;
}
namespace TextEditor { class ITextEditor; }
namespace TextEditor { class BaseTextEditor; }
namespace QmlJS { class ModelManagerInterface; }
......
......@@ -45,7 +45,6 @@
#include <qmljs/parser/qmljsastfwd_p.h>
#include <qmljs/qmljsutils.h>
#include <qmljs/qmljsqrcparser.h>
#include <texteditor/itexteditor.h>
#include <texteditor/basetexteditor.h>
#include <texteditor/helpitem.h>
#include <utils/tooltip/tooltip.h>
......@@ -184,7 +183,7 @@ bool HoverHandler::setQmlTypeHelp(const ScopeChain &scopeChain, const Document::
return true;
}
void HoverHandler::identifyMatch(TextEditor::ITextEditor *editor, int pos)
void HoverHandler::identifyMatch(TextEditor::BaseTextEditor *editor, int pos)
{
reset();
......@@ -377,7 +376,7 @@ void HoverHandler::reset()
m_colorTip = QColor();
}
void HoverHandler::operateTooltip(TextEditor::ITextEditor *editor, const QPoint &point)
void HoverHandler::operateTooltip(TextEditor::BaseTextEditor *editor, const QPoint &point)
{
if (toolTip().isEmpty())
Utils::ToolTip::hide();
......
......@@ -41,7 +41,7 @@ QT_END_NAMESPACE
namespace Core { class IEditor; }
namespace TextEditor { class ITextEditor; }
namespace TextEditor { class BaseTextEditor; }
namespace QmlJS {
class ScopeChain;
......@@ -67,8 +67,8 @@ private:
void reset();
virtual bool acceptEditor(Core::IEditor *editor);
virtual void identifyMatch(TextEditor::ITextEditor *editor, int pos);
virtual void operateTooltip(TextEditor::ITextEditor *editor, const QPoint &point);
virtual void identifyMatch(TextEditor::BaseTextEditor *editor, int pos);
virtual void operateTooltip(TextEditor::BaseTextEditor *editor, const QPoint &point);
bool matchDiagnosticMessage(QmlJSTextEditorWidget *qmlEditor, int pos);
bool matchColorItem(const QmlJS::ScopeChain &lookupContext,
......
......@@ -51,7 +51,7 @@
#include <projectexplorer/session.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/localapplicationrunconfiguration.h>
#include <texteditor/itexteditor.h>
#include <texteditor/basetexteditor.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/editormanager/editormanager.h>
......@@ -341,7 +341,7 @@ void QmlProfilerTool::gotoSourceLocation(const QString &fileUrl, int lineNumber,
return;
IEditor *editor = EditorManager::openEditor(projectFileName);
TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor);
TextEditor::BaseTextEditor *textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor);
if (textEditor) {
EditorManager::addCurrentPositionToNavigationHistory();
......
......@@ -37,7 +37,7 @@
#include <coreplugin/dialogs/readonlyfilesdialog.h>
#include <coreplugin/documentmanager.h>
#include <coreplugin/find/ifindsupport.h>
#include <texteditor/itexteditor.h>
#include <texteditor/basetexteditor.h>
#include <texteditor/refactoringchanges.h>
#include <utils/stylehelper.h>
#include <utils/qtcassert.h>
......@@ -174,12 +174,12 @@ void BaseFileFind::runSearch(Core::SearchResult *search)
watcher->setFuture(Utils::findInFilesRegExp(parameters.text,
files(parameters.nameFilters, parameters.additionalParameters),
textDocumentFlagsForFindFlags(parameters.flags),
ITextEditorDocument::openedTextDocumentContents()));
BaseTextEditorDocument::openedTextDocumentContents()));
} else {
watcher->setFuture(Utils::findInFiles(parameters.text,
files(parameters.nameFilters, parameters.additionalParameters),
textDocumentFlagsForFindFlags(parameters.flags),
ITextEditorDocument::openedTextDocumentContents()));
BaseTextEditorDocument::openedTextDocumentContents()));
}
FutureProgress *progress =
ProgressManager::addTask(watcher->future(), tr("Searching"), Constants::TASK_SEARCH);
......
......@@ -28,7 +28,6 @@
****************************************************************************/
#include "basehoverhandler.h"
#include "itexteditor.h"
#include "basetexteditor.h"
#include <coreplugin/icore.h>
......@@ -41,7 +40,7 @@ using namespace Core;
namespace TextEditor {
static BaseTextEditorWidget *baseTextEditor(ITextEditor *editor)
static BaseTextEditorWidget *baseTextEditor(BaseTextEditor *editor)
{
if (!editor)
return 0;
......@@ -63,16 +62,16 @@ void BaseHoverHandler::editorOpened(Core::IEditor *editor)
if (acceptEditor(editor)) {
BaseTextEditor *textEditor = qobject_cast<BaseTextEditor *>(editor);
if (textEditor) {
connect(textEditor, SIGNAL(tooltipRequested(TextEditor::ITextEditor*,QPoint,int)),
this, SLOT(showToolTip(TextEditor::ITextEditor*,QPoint,int)));
connect(textEditor, SIGNAL(tooltipRequested(TextEditor::BaseTextEditor*,QPoint,int)),
this, SLOT(showToolTip(TextEditor::BaseTextEditor*,QPoint,int)));
connect(textEditor, SIGNAL(contextHelpIdRequested(TextEditor::ITextEditor*,int)),
this, SLOT(updateContextHelpId(TextEditor::ITextEditor*,int)));
connect(textEditor, SIGNAL(contextHelpIdRequested(TextEditor::BaseTextEditor*,int)),
this, SLOT(updateContextHelpId(TextEditor::BaseTextEditor*,int)));
}
}
}
void BaseHoverHandler::showToolTip(TextEditor::ITextEditor *editor, const QPoint &point, int pos)
void BaseHoverHandler::showToolTip(TextEditor::BaseTextEditor *editor, const QPoint &point, int pos)
{
BaseTextEditorWidget *baseEditor = baseTextEditor(editor);
if (!baseEditor)
......@@ -84,7 +83,7 @@ void BaseHoverHandler::showToolTip(TextEditor::ITextEditor *editor, const QPoint
operateTooltip(editor, point);
}
void BaseHoverHandler::updateContextHelpId(TextEditor::ITextEditor *editor, int pos)
void BaseHoverHandler::updateContextHelpId(TextEditor::BaseTextEditor *editor, int pos)
{
BaseTextEditorWidget *baseEditor = baseTextEditor(editor);
if (!baseEditor)
......@@ -150,7 +149,7 @@ void BaseHoverHandler::clear()
m_lastHelpItemIdentified = HelpItem();
}
void BaseHoverHandler::process(ITextEditor *editor, int pos)
void BaseHoverHandler::process(BaseTextEditor *editor, int pos)
{
clear();
identifyMatch(editor, pos);
......@@ -172,7 +171,7 @@ void BaseHoverHandler::decorateToolTip()
}
}
void BaseHoverHandler::operateTooltip(ITextEditor *editor, const QPoint &point)
void BaseHoverHandler::operateTooltip(BaseTextEditor *editor, const QPoint &point)
{
if (m_toolTip.isEmpty())
Utils::ToolTip::hide();
......
......@@ -44,7 +44,7 @@ namespace Core { class IEditor; }
namespace TextEditor {
class ITextEditor;
class BaseTextEditor;
class BaseTextEditorWidget;
class TEXTEDITOR_EXPORT BaseHoverHandler : public QObject
......@@ -57,8 +57,8 @@ public:
private slots:
void editorOpened(Core::IEditor *editor);
void showToolTip(TextEditor::ITextEditor *editor, const QPoint &point, int pos);
void updateContextHelpId(TextEditor::ITextEditor *editor, int pos);
void showToolTip(TextEditor::BaseTextEditor *editor, const QPoint &point, int pos);
void updateContextHelpId(TextEditor::BaseTextEditor *editor, int pos);
protected:
void setToolTip(const QString &tooltip);
......@@ -75,12 +75,12 @@ protected:
private:
void clear();
void process(ITextEditor *editor, int pos);
void process(BaseTextEditor *editor, int pos);
virtual bool acceptEditor(Core::IEditor *editor) = 0;
virtual void identifyMatch(ITextEditor *editor, int pos) = 0;
virtual void identifyMatch(BaseTextEditor *editor, int pos) = 0;
virtual void decorateToolTip();
virtual void operateTooltip(ITextEditor *editor, const QPoint &point);
virtual void operateTooltip(BaseTextEditor *editor, const QPoint &point);
bool m_diagnosticTooltip;
QString m_toolTip;
......
......@@ -32,7 +32,6 @@
#include "texteditor_global.h"
#include "itexteditor.h"
#include "itexteditor.h"
#include <QList>
......@@ -56,7 +55,7 @@ class TypingSettings;
typedef QList<TextMark *> TextMarks;
class TEXTEDITOR_EXPORT BaseTextDocument : public ITextEditorDocument
class TEXTEDITOR_EXPORT BaseTextDocument : public BaseTextEditorDocument
{
Q_OBJECT
......@@ -64,7 +63,7 @@ public:
BaseTextDocument();
virtual ~BaseTextDocument();
// ITextEditorDocument
// BaseTextEditorDocument
QString plainText() const;
QString textAt(int pos, int length) const;
QChar characterAt(int pos) const;
......
......@@ -119,6 +119,176 @@ using namespace Utils;
namespace TextEditor {
namespace Internal {
class BaseTextEditorAnimator : public QObject
{
Q_OBJECT
public:
BaseTextEditorAnimator(QObject *parent);
inline void setPosition(int position) { m_position = position; }
inline int position() const { return m_position; }
void setData(const QFont &f, const QPalette &pal, const QString &text);
void draw(QPainter *p, const QPointF &pos);
QRectF rect() const;
inline qreal value() const { return m_value; }
inline QPointF lastDrawPos() const { return m_lastDrawPos; }
void finish();
bool isRunning() const;
signals:
void updateRequest(int position, QPointF lastPos, QRectF rect);
private slots:
void step(qreal v);
private:
QTimeLine *m_timeline;
qreal m_value;
int m_position;
QPointF m_lastDrawPos;
QFont m_font;
QPalette m_palette;
QString m_text;
QSizeF m_size;
};
class BaseTextEditorWidgetPrivate
{
BaseTextEditorWidgetPrivate(const BaseTextEditorWidgetPrivate &);
BaseTextEditorWidgetPrivate &operator=(const BaseTextEditorWidgetPrivate &);
public:
BaseTextEditorWidgetPrivate();
~BaseTextEditorWidgetPrivate();
void setupDocumentSignals();
void updateLineSelectionColor();
void print(QPrinter *printer);
BaseTextEditorWidget *q;
bool m_contentsChanged;
bool m_lastCursorChangeWasInteresting;
QSharedPointer<BaseTextDocument> m_document;
QByteArray m_tempState;
QByteArray m_tempNavigationState;
bool m_parenthesesMatchingEnabled;
// parentheses matcher
bool m_formatRange;
QTextCharFormat m_mismatchFormat;
QTimer m_parenthesesMatchingTimer;
// end parentheses matcher
QWidget *m_extraArea;
Core::Id m_tabSettingsId;
ICodeStylePreferences *m_codeStylePreferences;
DisplaySettings m_displaySettings;
MarginSettings m_marginSettings;
bool m_fontSettingsNeedsApply;
BehaviorSettings m_behaviorSettings;
int extraAreaSelectionAnchorBlockNumber;
int extraAreaToggleMarkBlockNumber;
int extraAreaHighlightFoldedBlockNumber;
TextEditorOverlay *m_overlay;
TextEditorOverlay *m_snippetOverlay;
TextEditorOverlay *m_searchResultOverlay;
bool snippetCheckCursor(const QTextCursor &cursor);
void snippetTabOrBacktab(bool forward);
RefactorOverlay *m_refactorOverlay;