Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }