From 5f67f7c42b8b8f50d573020eaaaa83c099b7a1d6 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 6 Jul 2010 15:11:35 +0200 Subject: [PATCH] fakevim: fix insert of tabs when shifting to the right (cherry picked from commit 3eb7b6bfbde6a847154c6053e7b4171554207865) --- src/plugins/fakevim/fakevimhandler.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index f8eb31755d1..6c3ff89eec2 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -3611,13 +3611,13 @@ void FakeVimHandler::Private::shiftRegionRight(int repeat) if (hasConfig(ConfigStartOfLine)) targetPos = firstPositionInLine(beginLine); - int len = config(ConfigShiftWidth).toInt() * repeat; - QString indent(len, ' '); - + const int sw = config(ConfigShiftWidth).toInt(); beginEditBlock(targetPos); for (int line = beginLine; line <= endLine; ++line) { - setPosition(firstPositionInLine(line)); - m_tc.insertText(indent); + QString data = lineContents(line); + const Column col = indentation(data); + data = tabExpand(col.logical + sw * repeat) + data.mid(col.physical); + setLineContents(line, data); } endEditBlock();