Skip to content

Apply foreach on class StringLineGroup got phantom empty line, is it expected? #757

Closed
@Akarinnnnn

Description

@Akarinnnnn

I' m writing code to dump a FencedCodeBlock, here is the function:

        private static void HandleCodeBlock(FencedCodeBlock codeblock, int level)
        {
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            if (!string.IsNullOrEmpty(codeblock.Info))
            {
                PrintIndent(level);
                Console.WriteLine($"lang: {codeblock.Info}, info args: {codeblock.Arguments}");
            }
            Console.ForegroundColor = ConsoleColor.White;

            foreach (var line in codeblock.Lines)
                Console.WriteLine(line);
        }

Then I see output contains suspicious empty line like this:

  FencedCodeBlock: 36/692-735 @1
 characters.sifeng.voice("c1s1", 3)


And the corresponding markdown is:
```
characters.sifeng.voice("c1s1", 3)
```

After some investigation, I found the enumerator of StringLineGroup returns internal array's enumerator directly. The array contains reserved slot for future item adding, that's the reason why we see phantom empty lines.

Shall we change the GetEnumerator() for StringLineGroup? I can provide some help.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions