fakevim: indent when changing text by line ('cj', 'Vc', ...), depending on settings

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
This commit is contained in:
Martin Aumüller
2010-01-21 17:38:28 +01:00
committed by hjk
parent 20f565816b
commit 073f14bee8

View File

@@ -843,6 +843,9 @@ void FakeVimHandler::Private::finishMovement(const QString &dotCommand)
if (m_movetype == MoveLineWise)
m_registers[m_register].rangemode = RangeLineMode;
removeSelectedText(true);
if (m_movetype == MoveLineWise) {
insertAutomaticIndentation(true);
}
endEditBlock();
enterInsertMode();
m_beginEditBlock = false;
@@ -1387,6 +1390,9 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
m_submode = ChangeSubMode;
} else if (key == 'c' && (isVisualCharMode() || isVisualLineMode())) {
m_rangemode = isVisualCharMode() ? RangeCharMode : RangeLineMode;
if (isVisualLineMode()) {
m_movetype = MoveLineWise;
}
leaveVisualMode();
m_submode = ChangeSubMode;
finishMovement();