Fixes #132162 by adding \b to brackets that use letters. Uses same logic as existing bracket matching code.

This commit is contained in:
Henning Dieterichs
2021-10-27 16:49:26 +02:00
parent eebf6387d5
commit e9e861fa4e

View File

@@ -74,7 +74,7 @@ export class BracketTokens {
const keys = [...this.map.keys()];
keys.sort();
keys.reverse();
return keys.map(k => escapeRegExpCharacters(k)).join('|');
return keys.map(k => prepareBracketForRegExp(k)).join('|');
}
}
@@ -99,6 +99,13 @@ export class BracketTokens {
}
}
function prepareBracketForRegExp(str: string): string {
const escaped = escapeRegExpCharacters(str);
// This bracket pair uses letters like e.g. "begin" - "end" (see https://github.com/microsoft/vscode/issues/132162)
const needsWordBoundaries = (/^[\w ]+$/.test(str));
return (needsWordBoundaries ? `\\b${escaped}\\b` : escaped);
}
export class LanguageAgnosticBracketTokens {
private readonly languageIdToBracketTokens = new Map<string, BracketTokens>();