示例#1
0
        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);
            }
        }
示例#2
0
        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);
                    }
                }
            }
        }
示例#3
0
 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);
         }
     }
 }
示例#4
0
        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);
                }
            }
        }