416
417
private getParsedBody(): ParsedBody {
419
>
const markdownLinkRanges: Range[] = [];
420
>
const fileReferences: IBodyFileReference[] = [];
421
>
const variableReferences: IBodyVariableReference[] = [];
422
>
const bodyOffset = Iterable.reduce(Iterable.slice(this.linesWithEOL, 0, this.range.startLineNumber - 1), (len, line) => line.length + len, 0);
423
>
let inFencedCodeBlock = false;
424
>
let fencedCodeBlockFenceChar: string | undefined;
425
>
let fencedCodeBlockFenceLength = 0;
426
>
for (let i = this.range.startLineNumber - 1, lineStartOffset = bodyOffset; i < this.range.endLineNumber - 1; i++) {
427
>
const line = this.linesWithEOL[i];
428
>
const trimmedLine = line.trimStart();
429
>
430
>
// Detect fenced code block lines (``` or ~~~, 3 or more chars)
431
>
const fenceMatch = /^(?<fence>(`{3,}|~{3,}))/u.exec(trimmedLine);
432
>
if (fenceMatch) {
433
const fence = fenceMatch.groups!.fence;
434
const fenceChar = fence[0];