440
441
private static _findPrevBracketInText(reversedBracketRegex: RegExp, lineNumber: number, reversedText: string, offset: number): Range | null {
443
>
444
>
if (!m) {
445
return null;
446
}
448
>
const matchOffset = reversedText.length - (m.index || 0);
449
>
const matchLength = m[0].length;
450
>
const absoluteMatchOffset = offset + matchOffset;
451
>
452
>
return new Range(lineNumber, absoluteMatchOffset - matchLength + 1, lineNumber, absoluteMatchOffset + 1);
453
>
}
454
455
public static findPrevBracketInRange(reversedBracketRegex: RegExp, lineNumber: number, lineText: string, startOffset: number, endOffset: number): Range | null {
456
>
// Because JS does not support backwards regex search, we search forwards in a reversed string with a reversed regex ;)
richEditBrackets.ts
457
>
const reversedLineText = toReversedString(lineText);
458
>
const reversedSubstr = reversedLineText.substring(lineText.length - endOffset, lineText.length - startOffset);
459
>
return this._findPrevBracketInText(reversedBracketRegex, lineNumber, reversedSubstr, startOffset);
460
>
}
461
462
public static findNextBracketInText(bracketRegex: RegExp, lineNumber: number, text: string, offset: number): Range | null {