forked from qt-creator/qt-creator
FakeVim: Implement :bd[elete]!
Task-number: QTCREATORBUG-32757 Change-Id: I6caa9b04ec371f4d830292a7544fbbd6264e62b7 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -387,6 +387,7 @@ public:
|
|||||||
|
|
||||||
void handleDelayedQuitAll(bool forced);
|
void handleDelayedQuitAll(bool forced);
|
||||||
void handleDelayedQuit(bool forced, Core::IEditor *editor);
|
void handleDelayedQuit(bool forced, Core::IEditor *editor);
|
||||||
|
void handleBufferDelete(bool forced, Core::IEditor *editor);
|
||||||
void userActionTriggered(int key);
|
void userActionTriggered(int key);
|
||||||
|
|
||||||
void updateAllHightLights();
|
void updateAllHightLights();
|
||||||
@@ -399,6 +400,7 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void delayedQuitRequested(bool forced, Core::IEditor *editor);
|
void delayedQuitRequested(bool forced, Core::IEditor *editor);
|
||||||
void delayedQuitAllRequested(bool forced);
|
void delayedQuitAllRequested(bool forced);
|
||||||
|
void delayedBufferDeleteRequested(bool forced, Core::IEditor *editor);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
struct HandlerAndData
|
struct HandlerAndData
|
||||||
@@ -1147,6 +1149,8 @@ void FakeVimPlugin::initialize()
|
|||||||
this, &FakeVimPlugin::handleDelayedQuit, Qt::QueuedConnection);
|
this, &FakeVimPlugin::handleDelayedQuit, Qt::QueuedConnection);
|
||||||
connect(this, &FakeVimPlugin::delayedQuitAllRequested,
|
connect(this, &FakeVimPlugin::delayedQuitAllRequested,
|
||||||
this, &FakeVimPlugin::handleDelayedQuitAll, Qt::QueuedConnection);
|
this, &FakeVimPlugin::handleDelayedQuitAll, Qt::QueuedConnection);
|
||||||
|
connect(this, &FakeVimPlugin::delayedBufferDeleteRequested,
|
||||||
|
this, &FakeVimPlugin::handleBufferDelete, Qt::QueuedConnection);
|
||||||
|
|
||||||
setCursorBlinking(s.blinkingCursor());
|
setCursorBlinking(s.blinkingCursor());
|
||||||
}
|
}
|
||||||
@@ -1942,6 +1946,9 @@ void FakeVimPlugin::handleExCommand(FakeVimHandler *handler, bool *handled, cons
|
|||||||
handler->showMessage(MessageError, Tr::tr("%n files not saved", nullptr, failed.size()));
|
handler->showMessage(MessageError, Tr::tr("%n files not saved", nullptr, failed.size()));
|
||||||
if (cmd.matches("wqa", "wqall"))
|
if (cmd.matches("wqa", "wqall"))
|
||||||
emit delayedQuitAllRequested(cmd.hasBang);
|
emit delayedQuitAllRequested(cmd.hasBang);
|
||||||
|
} else if (cmd.matches("bd", "bdelete")) {
|
||||||
|
// :bd[elete]
|
||||||
|
emit delayedBufferDeleteRequested(cmd.hasBang, editorFromHandler());
|
||||||
} else if (cmd.matches("q", "quit")) {
|
} else if (cmd.matches("q", "quit")) {
|
||||||
// :q[uit]
|
// :q[uit]
|
||||||
emit delayedQuitRequested(cmd.hasBang, editorFromHandler());
|
emit delayedQuitRequested(cmd.hasBang, editorFromHandler());
|
||||||
@@ -2023,6 +2030,11 @@ void FakeVimPlugin::handleDelayedQuitAll(bool forced)
|
|||||||
EditorManager::closeAllEditors(!forced);
|
EditorManager::closeAllEditors(!forced);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FakeVimPlugin::handleBufferDelete(bool forced, IEditor *editor)
|
||||||
|
{
|
||||||
|
EditorManager::closeEditors({editor}, !forced);
|
||||||
|
}
|
||||||
|
|
||||||
void FakeVimPlugin::quitFakeVim()
|
void FakeVimPlugin::quitFakeVim()
|
||||||
{
|
{
|
||||||
settings().useFakeVim.setValue(false);
|
settings().useFakeVim.setValue(false);
|
||||||
|
Reference in New Issue
Block a user