summaryrefslogtreecommitdiff
path: root/src/plugins/fakevim
diff options
context:
space:
mode:
authorhjk <qthjk@ovi.com>2011-12-26 16:38:31 +0100
committerhjk <qthjk@ovi.com>2011-12-26 16:42:55 +0100
commit29223bc11793b58b0625c0a5ca5b361921a9247a (patch)
tree19ccb6af3b31b86998e80ba30c45afe66c59f26d /src/plugins/fakevim
parent4443532d14a97284a55ecfc80bb2f24c488aa1f1 (diff)
downloadqt-creator-29223bc11793b58b0625c0a5ca5b361921a9247a.tar.gz
fakevim: more vim-ish cursor positioning after undo/redo
Change-Id: Ie689a719b023ed1e3756470bd144e22b1099bb07 Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 2073ac1452..e5df5b52af 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -1485,7 +1485,6 @@ void FakeVimHandler::Private::stopIncrementalFind()
void FakeVimHandler::Private::setUndoPosition(int pos)
{
- //qDebug() << " CURSOR POS: " << m_undoCursorPosition;
m_undoCursorPosition[document()->availableUndoSteps()] = pos;
}
@@ -2893,6 +2892,7 @@ EventResult FakeVimHandler::Private::handleInsertMode(const Input &input)
moveLeft(qMin(1, leftDist()));
setTargetColumn();
leaveVisualMode();
+ breakEditBlock();
}
g.dotCommand += m_lastInsertion;
g.dotCommand += QChar(27);
@@ -2955,11 +2955,13 @@ EventResult FakeVimHandler::Private::handleInsertMode(const Input &input)
setTargetColumn();
m_lastInsertion.clear();
} else if (input.isReturn()) {
+ joinPreviousEditBlock();
m_submode = NoSubMode;
insertText(QString("\n"));
m_lastInsertion += '\n';
insertAutomaticIndentation(true);
setTargetColumn();
+ endEditBlock();
} else if (input.isBackspace()) {
joinPreviousEditBlock();
m_justAutoIndented = 0;
@@ -4835,7 +4837,6 @@ QWidget *FakeVimHandler::Private::editor() const
void FakeVimHandler::Private::undo()
{
- //qDebug() << " CURSOR POS: " << m_undoCursorPosition;
// FIXME: That's only an approximaxtion. The real solution might
// be to store marks and old userData with QTextBlock setUserData
// and retrieve them afterward.