Beispiel #1
0
 public LineInfo(int start, int length, int lineNo, NewLineKind lineBreak)
 {
     Start     = start;
     Length    = length;
     LineNo    = lineNo;
     LineBreak = lineBreak;
 }
 internal PushedBlock PushWriteBlock(BlockKind kind, string msg, NewLineKind next)
 {
     PushBlock(kind);
     WriteLine(msg);
     WriteOpenBraceAndIndent();
     return(new PushedBlock(this, next));
 }
Beispiel #3
0
        public Block PopBlock(NewLineKind newLineKind = NewLineKind.Never)
        {
            var block = ActiveBlock;

            ActiveBlock.NewLineKind = newLineKind;
            ActiveBlock             = ActiveBlock.Parent;

            return(block);
        }
Beispiel #4
0
        public static string ToNewLineString(this NewLineKind kind)
        {
            switch (kind)
            {
            default:
            case NewLineKind.CRLF: return("\r\n");

            case NewLineKind.LF: return("\n");
            }
        }
Beispiel #5
0
        public static string GetString(this NewLineKind kind)
        {
            switch (kind)
            {
            case NewLineKind.CarriageReturn: return("\r");

            case NewLineKind.CarriageReturnLineFeed: return("\r\n");

            case NewLineKind.LineFeed: return("\n");
            }
            throw new InvalidOperationException();
        }
Beispiel #6
0
        public static int GetSize(this NewLineKind kind)
        {
            switch (kind)
            {
            case NewLineKind.LineFeed: return(1);

            case NewLineKind.CarriageReturnLineFeed: return(2);

            case NewLineKind.CarriageReturn: return(1);
            }
            return(0);
        }
Beispiel #7
0
        public static IEnumerable <string> Lines(string text, NewLineKind newLineKind = NewLineKind.Environment)
        {
            var current = 0;
            int next;

            while ((next = text.IndexOf(GetNewLine(newLineKind), current + 1, StringComparison.CurrentCulture)) != -1)
            {
                var start = current == 0 ? 0 : current + 1;

                yield return(text.Substring(start, next - start));

                current = next;
            }
            yield return(text.Substring(current + 1));
        }
Beispiel #8
0
        public static string GetNewLine(NewLineKind newLineKind)
        {
            switch (newLineKind)
            {
            case NewLineKind.Environment:
                return(Environment.NewLine);

            case NewLineKind.LineFeed:
                return(LineFeed);

            case NewLineKind.CarriageReturn:
                return(CarriageReturn);

            case NewLineKind.CarriageReturnLineFeed:
                return(CRLF);

            case NewLineKind.LineFeedCarriageReturn:
                return(LFCR);

            default:
                throw new ArgumentOutOfRangeException(nameof(newLineKind));
            }
        }
Beispiel #9
0
 public void PopBlock(NewLineKind newLineKind = NewLineKind.Never)
 {
     ActiveBlock.NewLineKind = newLineKind;
     ActiveBlock             = ActiveBlock.Parent;
 }
Beispiel #10
0
        public Block PopBlock(NewLineKind newLineKind = NewLineKind.Never)
        {
            var block = ActiveBlock;

            ActiveBlock.NewLineKind = newLineKind;
            ActiveBlock = ActiveBlock.Parent;

            return block;
        }
Beispiel #11
0
 public PushedBlock(BlockGenerator generator, NewLineKind next)
 {
     this.generator = generator;
     this.next      = next;
 }
Beispiel #12
0
 public static IEnumerable <string> Lines(this string text, NewLineKind newLineKind = NewLineKind.Environment)
 {
     return(StringUtils.Lines(text, newLineKind));
 }
Beispiel #13
0
 public NewLineLocation(int lineEnd, NewLineKind kind)
 {
     EndIndex = lineEnd;
     Kind     = kind;
 }
Beispiel #14
0
 public void PopBlock(NewLineKind newLineKind = NewLineKind.Never)
 {
     ActiveBlock.NewLineKind = newLineKind;
     ActiveBlock = ActiveBlock.Parent;
 }