diff --git a/src/razor/src/document/razorDocumentSynchronizer.ts b/src/razor/src/document/razorDocumentSynchronizer.ts index 34d6eaa600..8ec50dfca0 100644 --- a/src/razor/src/document/razorDocumentSynchronizer.ts +++ b/src/razor/src/document/razorDocumentSynchronizer.ts @@ -128,15 +128,26 @@ export class RazorDocumentSynchronizer { token: vscode.CancellationToken ) { const rejectionsForCancel: Array<(reason: string) => void> = []; + function isTokenCancellationRequestedError(err: unknown): boolean { + return typeof err === 'string' && err === 'Token cancellation requested: {0}'; + } let projectedDocumentSynchronized: () => void = Function; const onProjectedDocumentSynchronized = new Promise((resolve, reject) => { projectedDocumentSynchronized = resolve; rejectionsForCancel.push(reject); + }).catch((err) => { + if (!isTokenCancellationRequestedError(err)) { + throw err; + } }); let projectedTextDocumentSynchronized: () => void = Function; const onProjectedTextDocumentSynchronized = new Promise((resolve, reject) => { projectedTextDocumentSynchronized = resolve; rejectionsForCancel.push(reject); + }).catch((err) => { + if (!isTokenCancellationRequestedError(err)) { + throw err; + } }); token.onCancellationRequested((reason) => { diff --git a/test/razor/razorIntegrationTests/completion.integration.test.ts b/test/razor/razorIntegrationTests/completion.integration.test.ts index 1c3e6eeacb..355b9373a3 100644 --- a/test/razor/razorIntegrationTests/completion.integration.test.ts +++ b/test/razor/razorIntegrationTests/completion.integration.test.ts @@ -44,6 +44,8 @@ integrationHelpers.describeIfDevKit(`Razor Hover ${testAssetWorkspace.descriptio vscode.CompletionItemKind.TypeParameter, 'text' ); + + await clearLine(4); }); test('Div Tag', async () => { @@ -65,8 +67,112 @@ integrationHelpers.describeIfDevKit(`Razor Hover ${testAssetWorkspace.descriptio 'div', expectedDocumentation ); + + await clearLine(6); }, 30000); + test('Disabled Attribute', async () => { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + await insertText(new vscode.Position(6, 0), '