protected override void Convert(Document.Document document, int startLine, int endLine) { List <string> lines = new List <string>(); for (int i = startLine; i <= endLine; ++i) { LineSegment line = document.GetLineSegment(i); lines.Add(document.GetText(line.Offset, line.Length)); } for (int i = 0; i < lines.Count - 1; ++i) { if (lines[i] == "") { lines.RemoveAt(i); --i; } } for (int i = 0; i < lines.Count; ++i) { LineSegment line = document.GetLineSegment(startLine + i); document.Replace(line.Offset, line.Length, lines[i].ToString()); } // remove removed lines for (int i = startLine + lines.Count; i <= endLine; ++i) { LineSegment line = document.GetLineSegment(startLine + lines.Count); document.Remove(line.Offset, line.TotalLength); } }
protected override void Convert(Document.Document document, int y1, int y2) { for (int i = y2; i >= y1; --i) { LineSegment line = document.GetLineSegment(i); if (line.Length > 0) { // count how many whitespace characters there are at the start int whiteSpace; for (whiteSpace = 0; whiteSpace < line.Length && char.IsWhiteSpace(document.GetCharAt(line.Offset + whiteSpace)); whiteSpace++) { // deliberately empty } if (whiteSpace > 0) { string newLine = document.GetText(line.Offset, whiteSpace); string newPrefix = newLine.Replace("\t", new string(' ', Shared.TEP.TabIndent)); document.Replace(line.Offset, whiteSpace, newPrefix); } } } }
protected override void Convert(Document.Document document, int y1, int y2) { for (int i = y2; i >= y1; --i) { LineSegment line = document.GetLineSegment(i); if (line.Length > 0) { // note: some users may prefer a more radical ConvertLeadingSpacesToTabs that // means there can be no spaces before the first character even if the spaces // didn't add up to a whole number of tabs string newLine = TextUtilities.LeadingWhiteSpaceToTabs(document.GetText(line.Offset, line.Length), Shared.TEP.TabIndent); document.Replace(line.Offset, line.Length, newLine); } } }
protected override void Convert(Document.Document document, int y1, int y2) { for (int i = y1; i < y2; ++i) { LineSegment line = document.GetLineSegment(i); int removeNumber = 0; for (int x = line.Offset; x < line.Offset + line.Length && Char.IsWhiteSpace(document.GetCharAt(x)); ++x) { ++removeNumber; } if (removeNumber > 0) { document.Remove(line.Offset, removeNumber); } } }