Skip to content

Commit e9e861f

Browse files
committed
Fixes microsoft#132162 by adding \b to brackets that use letters. Uses same logic as existing bracket matching code.
1 parent eebf638 commit e9e861f

File tree

1 file changed

+8
-1
lines changed
  • src/vs/editor/common/model/bracketPairs/impl

1 file changed

+8
-1
lines changed

src/vs/editor/common/model/bracketPairs/impl/brackets.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export class BracketTokens {
7474
const keys = [...this.map.keys()];
7575
keys.sort();
7676
keys.reverse();
77-
return keys.map(k => escapeRegExpCharacters(k)).join('|');
77+
return keys.map(k => prepareBracketForRegExp(k)).join('|');
7878
}
7979
}
8080

@@ -99,6 +99,13 @@ export class BracketTokens {
9999
}
100100
}
101101

102+
function prepareBracketForRegExp(str: string): string {
103+
const escaped = escapeRegExpCharacters(str);
104+
// This bracket pair uses letters like e.g. "begin" - "end" (see https://github.com/microsoft/vscode/issues/132162)
105+
const needsWordBoundaries = (/^[\w ]+$/.test(str));
106+
return (needsWordBoundaries ? `\\b${escaped}\\b` : escaped);
107+
}
108+
102109
export class LanguageAgnosticBracketTokens {
103110
private readonly languageIdToBracketTokens = new Map<string, BracketTokens>();
104111

0 commit comments

Comments
 (0)