public void Execute() { var start = _range.OriginalStart; var end = _range.OriginalEnd; foreach (var i in _range.GetLineIndexes().Where(i => !_doc.LineList[i].IsEmpty)) { _innerCommands.Add(new InsertSingleTextCommand(_doc, new TextPos(i, 0), StringUtil.Tab)); if (i == start.LineIndex) { start = new TextPos(start.LineIndex, start.CharIndex + 1); } if (i == end.LineIndex) { end = new TextPos(end.LineIndex, end.CharIndex + 1); } } _innerCommands.Execute(); ResultRange = new TextRange(start, end); }
public void Execute() { var start = _range.OriginalStart; var end = _range.OriginalEnd; foreach (var i in _range.GetLineIndexes() .Where(i => _doc.LineList[i].Text.FirstOrNullValue() == CharUtil.Tab)) { _innerCommands.Add(new RemoveSingleTextCommand(_doc, new TextPos(i, 0), 1)); if (i == start.LineIndex) { start = new TextPos(start.LineIndex, start.CharIndex - 1); } if (i == end.LineIndex) { end = new TextPos(end.LineIndex, end.CharIndex - 1); } } _innerCommands.Execute(); ResultRange = new TextRange(start, end); }