diff --git a/src/vs/editor/contrib/bracketMatching/bracketMatching.ts b/src/vs/editor/contrib/bracketMatching/bracketMatching.ts index 519edddaa581b26e09247c09d8bb84ae0de55d7f..685ff45efaae3ffb0a779c671a66a11fde48557f 100644 --- a/src/vs/editor/contrib/bracketMatching/bracketMatching.ts +++ b/src/vs/editor/contrib/bracketMatching/bracketMatching.ts @@ -281,6 +281,14 @@ export class BracketMatchingController extends Disposable implements editorCommo return; } + const selections = this._editor.getSelections(); + if (selections.length > 100) { + // no bracket matching for high numbers of selections + this._lastBracketsData = []; + this._lastVersionId = 0; + return; + } + const model = this._editor.getModel(); const versionId = model.getVersionId(); let previousData: BracketsData[] = []; @@ -289,8 +297,6 @@ export class BracketMatchingController extends Disposable implements editorCommo previousData = this._lastBracketsData; } - const selections = this._editor.getSelections(); - let positions: Position[] = [], positionsLen = 0; for (let i = 0, len = selections.length; i < len; i++) { let selection = selections[i];