532
}
533
}
535
>
if (
536
>
belowContentLineIndex !== -1 &&
537
>
(belowContentLineIndex === -2 || belowContentLineIndex < lineNumber - 1)
538
) {
540
>
belowContentLineIndent = -1;
541
>
542
>
// must find next line with content
543
>
for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {
544
>
const indent = this._computeIndentLevel(lineIndex);
545
>
if (indent >= 0) {
546
>
belowContentLineIndex = lineIndex;
547
>
belowContentLineIndent = indent;
548
>
break;
549
>
}
550
>
}
551
>
}
552
>
553
>
result[resultIndex] = this._getIndentLevelForWhitespaceLine(
554
>
offSide,
555
>
aboveContentLineIndent,
556
>
belowContentLineIndent
557
>
);
558
>
}
559
return result;
560
}
561
562
private _getIndentLevelForWhitespaceLine(
564
>
aboveContentLineIndent: number,
565
>
belowContentLineIndent: number
566
>
): number {
567
>
const options = this.textModel.getOptions();
568
>
569
>
if (aboveContentLineIndent === -1 || belowContentLineIndent === -1) {
570
// At the top or bottom of the file
571
return 0;
573
// we are inside the region above
574
return 1 + Math.floor(aboveContentLineIndent / options.indentSize);
576
// we are in between two regions
577
return Math.ceil(belowContentLineIndent / options.indentSize);
579
if (offSide) {
580
// same level as region below