Skip to content

Commit 516cd37

Browse files
authored
Fix bracket pair + tree-sitter freeze (microsoft#229809)
Fixes microsoft#229808
1 parent 8252865 commit 516cd37

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/vs/workbench/services/treeSitter/browser/treeSitterTokenizationFeature.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,14 @@ class TreeSitterTokenizationSupport extends Disposable implements ITreeSitterTok
244244
endOffsetsAndScopes[tokenIndex].endOffset = lineLength;
245245
}
246246

247-
const tokens: Uint32Array = new Uint32Array(endOffsetsAndScopes.length * 2);
248-
for (let i = 0; i < endOffsetsAndScopes.length; i++) {
249-
tokens[i * 2] = endOffsetsAndScopes[i].endOffset;
250-
tokens[i * 2 + 1] = findMetadata(this._colorThemeData, endOffsetsAndScopes[i].scopes, encodedLanguageId);
247+
const tokens: Uint32Array = new Uint32Array((tokenIndex) * 2);
248+
for (let i = 0; i < tokenIndex; i++) {
249+
const token = endOffsetsAndScopes[i];
250+
if (token.endOffset === 0 && token.scopes.length === 0) {
251+
break;
252+
}
253+
tokens[i * 2] = token.endOffset;
254+
tokens[i * 2 + 1] = findMetadata(this._colorThemeData, token.scopes, encodedLanguageId);
251255
}
252256

253257
return tokens;

0 commit comments

Comments
 (0)