aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/fakevim
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-11-16 16:01:52 +0100
committerhjk <hjk@qt.io>2023-11-17 16:48:46 +0000
commit3b05a6f58ec5c94ea199ffee82d8c99f9725ab96 (patch)
tree20021e19af9925173498934f53408a8929998936 /src/plugins/fakevim
parentbde92e035e165eb208f89bd8440c67e446a12d94 (diff)
FakeVim: Merge Plugin and PluginPrivate classes
There were different from the PluginPrivate-created-in-initialize pattern anyway. Change-Id: I690c9c0511203f3c4d6ec9eeca85c0a277330e2f Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r--src/plugins/fakevim/fakevimplugin.cpp251
1 files changed, 109 insertions, 142 deletions
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index b922e8f2ba..5ac5734866 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -96,7 +96,7 @@ const char SETTINGS_ID[] = "A.FakeVim.General";
const char SETTINGS_EX_CMDS_ID[] = "B.FakeVim.ExCommands";
const char SETTINGS_USER_CMDS_ID[] = "C.FakeVim.UserCommands";
-static class FakeVimPluginPrivate *dd = nullptr;
+static class FakeVimPlugin *dd = nullptr;
class MiniBuffer : public QStackedWidget
{
@@ -213,8 +213,6 @@ private:
class RelativeNumbersColumn : public QWidget
{
- Q_OBJECT
-
public:
RelativeNumbersColumn(TextEditorWidget *baseTextEditor)
: QWidget(baseTextEditor)
@@ -332,28 +330,37 @@ private:
///////////////////////////////////////////////////////////////////////
//
-// FakeVimOptionPage
+// FakeVimPlugin
//
///////////////////////////////////////////////////////////////////////
using ExCommandMap = QMap<QString, QRegularExpression>;
using UserCommandMap = QMap<int, QString>;
-
-///////////////////////////////////////////////////////////////////////
-//
-// FakeVimPluginPrivate
-//
-///////////////////////////////////////////////////////////////////////
-
-class FakeVimPluginPrivate : public QObject
+class FakeVimPlugin final : public ExtensionSystem::IPlugin
{
Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "FakeVim.json")
public:
- FakeVimPluginPrivate();
+ FakeVimPlugin();
+
+ ~FakeVimPlugin() final { dd = nullptr; }
+
+ void initialize() final;
+
+ void extensionsInitialized() final
+ {
+ m_miniBuffer = new MiniBuffer;
+ StatusBarManager::addStatusBarWidget(m_miniBuffer, StatusBarManager::LastLeftAligned);
+ }
- void initialize();
+ ExtensionSystem::IPlugin::ShutdownFlag aboutToShutdown() final
+ {
+ StatusBarManager::destroyStatusBarWidget(m_miniBuffer);
+ m_miniBuffer = nullptr;
+ return SynchronousShutdown;
+ }
void editorOpened(Core::IEditor *);
void editorAboutToClose(Core::IEditor *);
@@ -964,7 +971,6 @@ IAssistProcessor *FakeVimCompletionAssistProvider::createProcessor(const AssistI
return new FakeVimCompletionAssistProcessor(this);
}
-
// FakeVimUserCommandsModel
QVariant FakeVimUserCommandsModel::data(const QModelIndex &index, int role) const
@@ -993,8 +999,55 @@ bool FakeVimUserCommandsModel::setData(const QModelIndex &index,
return true;
}
-FakeVimPluginPrivate::FakeVimPluginPrivate()
+static void setupTest(QString *title, FakeVimHandler **handler, QWidget **edit)
+{
+ *title = QString::fromLatin1("test.cpp");
+ IEditor *iedit = EditorManager::openEditorWithContents(Id(), title);
+ EditorManager::activateEditor(iedit);
+ *edit = iedit->widget();
+ *handler = dd->m_editorToHandler.value(iedit, {}).handler;
+ (*handler)->setupWidget();
+ (*handler)->handleCommand("set startofline");
+
+// *handler = 0;
+// m_statusMessage.clear();
+// m_statusData.clear();
+// m_infoMessage.clear();
+// if (m_textedit) {
+// m_textedit->setPlainText(lines);
+// QTextCursor tc = m_textedit->textCursor();
+// tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
+// m_textedit->setTextCursor(tc);
+// m_textedit->setPlainText(lines);
+// *handler = new FakeVimHandler(m_textedit);
+// } else {
+// m_plaintextedit->setPlainText(lines);
+// QTextCursor tc = m_plaintextedit->textCursor();
+// tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
+// m_plaintextedit->setTextCursor(tc);
+// m_plaintextedit->setPlainText(lines);
+// *handler = new FakeVimHandler(m_plaintextedit);
+// }
+
+// connect(*handler, &FakeVimHandler::commandBufferChanged,
+// this, &FakeVimPlugin::changeStatusMessage);
+// connect(*handler, &FakeVimHandler::extraInformationChanged,
+// this, &FakeVimPlugin::changeExtraInformation);
+// connect(*handler, &FakeVimHandler::statusDataChanged,
+// this, &FakeVimPlugin::changeStatusData);
+
+// QCOMPARE(EDITOR(toPlainText()), lines);
+ (*handler)->handleCommand("set iskeyword=@,48-57,_,192-255,a-z,A-Z");
+}
+
+QObject *createFakeVimTester( void (*setupTest)(QString *, FakeVimHandler **, QWidget **) ); // in fakevim_test.cpp
+
+FakeVimPlugin::FakeVimPlugin()
{
+ dd = this;
+
+ addTestCreator([] { return createFakeVimTester(&setupTest); });
+
m_defaultExCommandMap[CppEditor::Constants::SWITCH_HEADER_SOURCE] =
QRegularExpression("^A$");
m_defaultExCommandMap["Coreplugin.OutputPane.previtem"] =
@@ -1014,7 +1067,7 @@ FakeVimPluginPrivate::FakeVimPluginPrivate()
}
}
-void FakeVimPluginPrivate::initialize()
+void FakeVimPlugin::initialize()
{
/*
// Set completion settings and keep them up to date.
@@ -1053,44 +1106,44 @@ void FakeVimPluginPrivate::initialize()
connect(ICore::instance(), &ICore::coreAboutToClose, this, [] {
// Don't attach to editors anymore.
disconnect(EditorManager::instance(), &EditorManager::editorOpened,
- dd, &FakeVimPluginPrivate::editorOpened);
+ dd, &FakeVimPlugin::editorOpened);
});
// EditorManager
connect(EditorManager::instance(), &EditorManager::editorAboutToClose,
- this, &FakeVimPluginPrivate::editorAboutToClose);
+ this, &FakeVimPlugin::editorAboutToClose);
connect(EditorManager::instance(), &EditorManager::editorOpened,
- this, &FakeVimPluginPrivate::editorOpened);
+ this, &FakeVimPlugin::editorOpened);
connect(EditorManager::instance(), &EditorManager::currentEditorAboutToChange,
- this, &FakeVimPluginPrivate::currentEditorAboutToChange);
+ this, &FakeVimPlugin::currentEditorAboutToChange);
connect(DocumentManager::instance(), &DocumentManager::allDocumentsRenamed,
- this, &FakeVimPluginPrivate::allDocumentsRenamed);
+ this, &FakeVimPlugin::allDocumentsRenamed);
connect(DocumentManager::instance(), &DocumentManager::documentRenamed,
- this, &FakeVimPluginPrivate::documentRenamed);
+ this, &FakeVimPlugin::documentRenamed);
FakeVimSettings &s = settings();
connect(&s.useFakeVim, &FvBoolAspect::changed,
this, [this, &s] { setUseFakeVim(s.useFakeVim()); });
connect(&s.readVimRc, &FvBaseAspect::changed,
- this, &FakeVimPluginPrivate::maybeReadVimRc);
+ this, &FakeVimPlugin::maybeReadVimRc);
connect(&s.vimRcPath, &FvBaseAspect::changed,
- this, &FakeVimPluginPrivate::maybeReadVimRc);
+ this, &FakeVimPlugin::maybeReadVimRc);
connect(&s.relativeNumber, &FvBoolAspect::changed,
this, [this, &s] { setShowRelativeLineNumbers(s.relativeNumber()); });
connect(&s.blinkingCursor, &FvBoolAspect::changed,
this, [this, &s] { setCursorBlinking(s.blinkingCursor()); });
// Delayed operations.
- connect(this, &FakeVimPluginPrivate::delayedQuitRequested,
- this, &FakeVimPluginPrivate::handleDelayedQuit, Qt::QueuedConnection);
- connect(this, &FakeVimPluginPrivate::delayedQuitAllRequested,
- this, &FakeVimPluginPrivate::handleDelayedQuitAll, Qt::QueuedConnection);
+ connect(this, &FakeVimPlugin::delayedQuitRequested,
+ this, &FakeVimPlugin::handleDelayedQuit, Qt::QueuedConnection);
+ connect(this, &FakeVimPlugin::delayedQuitAllRequested,
+ this, &FakeVimPlugin::handleDelayedQuitAll, Qt::QueuedConnection);
setCursorBlinking(s.blinkingCursor());
}
-void FakeVimPluginPrivate::userActionTriggered(int key)
+void FakeVimPlugin::userActionTriggered(int key)
{
IEditor *editor = EditorManager::currentEditor();
FakeVimHandler *handler = m_editorToHandler[editor].handler;
@@ -1108,7 +1161,7 @@ void FakeVimPluginPrivate::userActionTriggered(int key)
}
}
-void FakeVimPluginPrivate::updateAllHightLights()
+void FakeVimPlugin::updateAllHightLights()
{
const QList<IEditor *> editors = EditorManager::visibleEditors();
for (IEditor *editor : editors) {
@@ -1118,7 +1171,7 @@ void FakeVimPluginPrivate::updateAllHightLights()
}
}
-void FakeVimPluginPrivate::createRelativeNumberWidget(IEditor *editor)
+void FakeVimPlugin::createRelativeNumberWidget(IEditor *editor)
{
if (auto textEditor = TextEditorWidget::fromEditor(editor)) {
auto relativeNumbers = new RelativeNumbersColumn(textEditor);
@@ -1130,7 +1183,7 @@ void FakeVimPluginPrivate::createRelativeNumberWidget(IEditor *editor)
}
}
-void FakeVimPluginPrivate::readSettings()
+void FakeVimPlugin::readSettings()
{
QtcSettings *settings = ICore::settings();
@@ -1157,7 +1210,7 @@ void FakeVimPluginPrivate::readSettings()
settings->endArray();
}
-void FakeVimPluginPrivate::maybeReadVimRc()
+void FakeVimPlugin::maybeReadVimRc()
{
//qDebug() << theFakeVimSetting(ConfigReadVimRc)
// << theFakeVimSetting(ConfigReadVimRc)->value();
@@ -1186,7 +1239,7 @@ static void triggerAction(Id id)
action->trigger();
}
-void FakeVimPluginPrivate::setActionChecked(Id id, bool check)
+void FakeVimPlugin::setActionChecked(Id id, bool check)
{
Command *cmd = ActionManager::command(id);
QTC_ASSERT(cmd, return);
@@ -1237,7 +1290,7 @@ static int moveDownWeight(const QRect &cursor, const QRect &other)
return w;
}
-void FakeVimPluginPrivate::moveSomewhere(FakeVimHandler *handler, DistFunction f, int count)
+void FakeVimPlugin::moveSomewhere(FakeVimHandler *handler, DistFunction f, int count)
{
QTC_ASSERT(handler, return);
QWidget *w = handler->widget();
@@ -1281,7 +1334,7 @@ void FakeVimPluginPrivate::moveSomewhere(FakeVimHandler *handler, DistFunction f
EditorManager::activateEditor(bestEditor);
}
-void FakeVimPluginPrivate::keepOnlyWindow()
+void FakeVimPlugin::keepOnlyWindow()
{
IEditor *currentEditor = EditorManager::currentEditor();
QList<IEditor *> editors = EditorManager::visibleEditors();
@@ -1293,7 +1346,7 @@ void FakeVimPluginPrivate::keepOnlyWindow()
}
}
-void FakeVimPluginPrivate::fold(FakeVimHandler *handler, int depth, bool fold)
+void FakeVimPlugin::fold(FakeVimHandler *handler, int depth, bool fold)
{
QTC_ASSERT(handler, return);
QTextDocument *doc = handler->textCursor().document();
@@ -1368,7 +1421,7 @@ public:
}
};
-void FakeVimPluginPrivate::editorOpened(IEditor *editor)
+void FakeVimPlugin::editorOpened(IEditor *editor)
{
if (!editor)
return;
@@ -1741,31 +1794,31 @@ void FakeVimPluginPrivate::editorOpened(IEditor *editor)
}
}
-void FakeVimPluginPrivate::editorAboutToClose(IEditor *editor)
+void FakeVimPlugin::editorAboutToClose(IEditor *editor)
{
//qDebug() << "CLOSING: " << editor << editor->widget();
m_editorToHandler.remove(editor);
}
-void FakeVimPluginPrivate::currentEditorAboutToChange(IEditor *editor)
+void FakeVimPlugin::currentEditorAboutToChange(IEditor *editor)
{
if (FakeVimHandler *handler = m_editorToHandler.value(editor, {}).handler)
handler->enterCommandMode();
}
-void FakeVimPluginPrivate::allDocumentsRenamed(const FilePath &oldPath, const FilePath &newPath)
+void FakeVimPlugin::allDocumentsRenamed(const FilePath &oldPath, const FilePath &newPath)
{
renameFileNameInEditors(oldPath, newPath);
FakeVimHandler::updateGlobalMarksFilenames(oldPath.toString(), newPath.toString());
}
-void FakeVimPluginPrivate::documentRenamed(
+void FakeVimPlugin::documentRenamed(
IDocument *, const FilePath &oldPath, const FilePath &newPath)
{
renameFileNameInEditors(oldPath, newPath);
}
-void FakeVimPluginPrivate::renameFileNameInEditors(const FilePath &oldPath, const FilePath &newPath)
+void FakeVimPlugin::renameFileNameInEditors(const FilePath &oldPath, const FilePath &newPath)
{
for (const HandlerAndData &handlerAndData : m_editorToHandler) {
if (handlerAndData.handler->currentFileName() == oldPath.toString())
@@ -1773,7 +1826,7 @@ void FakeVimPluginPrivate::renameFileNameInEditors(const FilePath &oldPath, cons
}
}
-void FakeVimPluginPrivate::setUseFakeVim(bool on)
+void FakeVimPlugin::setUseFakeVim(bool on)
{
//qDebug() << "SET USE FAKEVIM" << on;
Find::setUseFakeVim(on);
@@ -1782,7 +1835,7 @@ void FakeVimPluginPrivate::setUseFakeVim(bool on)
setCursorBlinking(settings().blinkingCursor());
}
-void FakeVimPluginPrivate::setUseFakeVimInternal(bool on)
+void FakeVimPlugin::setUseFakeVimInternal(bool on)
{
if (on) {
//ICore *core = ICore::instance();
@@ -1805,7 +1858,7 @@ void FakeVimPluginPrivate::setUseFakeVimInternal(bool on)
}
}
-void FakeVimPluginPrivate::setShowRelativeLineNumbers(bool on)
+void FakeVimPlugin::setShowRelativeLineNumbers(bool on)
{
if (on && settings().useFakeVim()) {
for (auto it = m_editorToHandler.constBegin(); it != m_editorToHandler.constEnd(); ++it)
@@ -1813,7 +1866,7 @@ void FakeVimPluginPrivate::setShowRelativeLineNumbers(bool on)
}
}
-void FakeVimPluginPrivate::setCursorBlinking(bool on)
+void FakeVimPlugin::setCursorBlinking(bool on)
{
if (m_savedCursorFlashTime == 0)
m_savedCursorFlashTime = QGuiApplication::styleHints()->cursorFlashTime();
@@ -1822,7 +1875,7 @@ void FakeVimPluginPrivate::setCursorBlinking(bool on)
QGuiApplication::styleHints()->setCursorFlashTime(blink ? m_savedCursorFlashTime : 0);
}
-void FakeVimPluginPrivate::handleExCommand(FakeVimHandler *handler, bool *handled, const ExCommand &cmd)
+void FakeVimPlugin::handleExCommand(FakeVimHandler *handler, bool *handled, const ExCommand &cmd)
{
QTC_ASSERT(handler, return);
using namespace Core;
@@ -1944,7 +1997,7 @@ void FakeVimPluginPrivate::handleExCommand(FakeVimHandler *handler, bool *handle
}
}
-void FakeVimPluginPrivate::handleDelayedQuit(bool forced, IEditor *editor)
+void FakeVimPlugin::handleDelayedQuit(bool forced, IEditor *editor)
{
// This tries to simulate vim behaviour. But the models of vim and
// Qt Creator core do not match well...
@@ -1954,23 +2007,23 @@ void FakeVimPluginPrivate::handleDelayedQuit(bool forced, IEditor *editor)
EditorManager::closeEditors({editor}, !forced);
}
-void FakeVimPluginPrivate::handleDelayedQuitAll(bool forced)
+void FakeVimPlugin::handleDelayedQuitAll(bool forced)
{
triggerAction(Core::Constants::REMOVE_ALL_SPLITS);
EditorManager::closeAllEditors(!forced);
}
-void FakeVimPluginPrivate::quitFakeVim()
+void FakeVimPlugin::quitFakeVim()
{
settings().useFakeVim.setValue(false);
}
-void FakeVimPluginPrivate::resetCommandBuffer()
+void FakeVimPlugin::resetCommandBuffer()
{
showCommandBuffer(nullptr, QString(), -1, -1, 0);
}
-void FakeVimPluginPrivate::showCommandBuffer(FakeVimHandler *handler, const QString &contents, int cursorPos, int anchorPos,
+void FakeVimPlugin::showCommandBuffer(FakeVimHandler *handler, const QString &contents, int cursorPos, int anchorPos,
int messageLevel)
{
//qDebug() << "SHOW COMMAND BUFFER" << contents;
@@ -1978,7 +2031,7 @@ void FakeVimPluginPrivate::showCommandBuffer(FakeVimHandler *handler, const QStr
m_miniBuffer->setContents(contents, cursorPos, anchorPos, messageLevel, handler);
}
-int FakeVimPluginPrivate::currentFile() const
+int FakeVimPlugin::currentFile() const
{
IEditor *editor = EditorManager::currentEditor();
if (editor) {
@@ -1989,7 +2042,7 @@ int FakeVimPluginPrivate::currentFile() const
return -1;
}
-void FakeVimPluginPrivate::switchToFile(int n)
+void FakeVimPlugin::switchToFile(int n)
{
int size = DocumentModel::entryCount();
QTC_ASSERT(size, return);
@@ -1999,92 +2052,6 @@ void FakeVimPluginPrivate::switchToFile(int n)
EditorManager::activateEditorForEntry(DocumentModel::entries().at(n));
}
-
-///////////////////////////////////////////////////////////////////////
-//
-// FakeVimPlugin
-//
-///////////////////////////////////////////////////////////////////////
-
-static void setupTest(QString *title, FakeVimHandler **handler, QWidget **edit)
-{
- *title = QString::fromLatin1("test.cpp");
- IEditor *iedit = EditorManager::openEditorWithContents(Id(), title);
- EditorManager::activateEditor(iedit);
- *edit = iedit->widget();
- *handler = dd->m_editorToHandler.value(iedit, {}).handler;
- (*handler)->setupWidget();
- (*handler)->handleCommand("set startofline");
-
-// *handler = 0;
-// m_statusMessage.clear();
-// m_statusData.clear();
-// m_infoMessage.clear();
-// if (m_textedit) {
-// m_textedit->setPlainText(lines);
-// QTextCursor tc = m_textedit->textCursor();
-// tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
-// m_textedit->setTextCursor(tc);
-// m_textedit->setPlainText(lines);
-// *handler = new FakeVimHandler(m_textedit);
-// } else {
-// m_plaintextedit->setPlainText(lines);
-// QTextCursor tc = m_plaintextedit->textCursor();
-// tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
-// m_plaintextedit->setTextCursor(tc);
-// m_plaintextedit->setPlainText(lines);
-// *handler = new FakeVimHandler(m_plaintextedit);
-// }
-
-// connect(*handler, &FakeVimHandler::commandBufferChanged,
-// this, &FakeVimPlugin::changeStatusMessage);
-// connect(*handler, &FakeVimHandler::extraInformationChanged,
-// this, &FakeVimPlugin::changeExtraInformation);
-// connect(*handler, &FakeVimHandler::statusDataChanged,
-// this, &FakeVimPlugin::changeStatusData);
-
-// QCOMPARE(EDITOR(toPlainText()), lines);
- (*handler)->handleCommand("set iskeyword=@,48-57,_,192-255,a-z,A-Z");
-}
-
-QObject *createFakeVimTester( void (*setupTest)(QString *, FakeVimHandler **, QWidget **) ); // in fakevim_test.cpp
-
-class FakeVimPlugin : public ExtensionSystem::IPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "FakeVim.json")
-
-public:
- FakeVimPlugin()
- {
- addTestCreator([] { return createFakeVimTester(&setupTest); });
- dd = new FakeVimPluginPrivate;
- }
- ~FakeVimPlugin() override
- {
- delete dd;
- dd = nullptr;
- }
-
- ExtensionSystem::IPlugin::ShutdownFlag aboutToShutdown()
- {
- StatusBarManager::destroyStatusBarWidget(dd->m_miniBuffer);
- dd->m_miniBuffer = nullptr;
- return SynchronousShutdown;
- }
-
- void initialize() override
- {
- dd->initialize();
- }
-
- void extensionsInitialized() override
- {
- dd->m_miniBuffer = new MiniBuffer;
- StatusBarManager::addStatusBarWidget(dd->m_miniBuffer, StatusBarManager::LastLeftAligned);
- }
-};
-
} // FakeVim::Internal
#include "fakevimplugin.moc"