Skip to content

Commit e969bc1

Browse files
committed
Disable errors in non-semantic supported files
Fixes #106299 Fixes #106314 Also enables js/ts features on the right side of PRs and in search results
1 parent f63ceed commit e969bc1

File tree

4 files changed

+32
-8
lines changed

4 files changed

+32
-8
lines changed

extensions/typescript-language-features/src/tsServer/bufferSyncSupport.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,10 @@ class GetErrRequest {
306306
public readonly files: ResourceMap<void>,
307307
onDone: () => void
308308
) {
309-
const allFiles = coalesce(Array.from(files.entries).map(entry => client.normalizedPath(entry.resource)));
309+
const allFiles = coalesce(Array.from(files.entries)
310+
.filter(entry => client.hasCapabilityForResource(entry.resource, ClientCapability.Semantic))
311+
.map(entry => client.normalizedPath(entry.resource)));
312+
310313
if (!allFiles.length || !client.capabilities.has(ClientCapability.Semantic)) {
311314
this._done = true;
312315
setImmediate(onDone);
@@ -529,7 +532,7 @@ export default class BufferSyncSupport extends Disposable {
529532
this.triggerDiagnostics();
530533
}
531534

532-
public getErr(resources: vscode.Uri[]): any {
535+
public getErr(resources: readonly vscode.Uri[]): any {
533536
const handledResources = resources.filter(resource => this.handles(resource));
534537
if (!handledResources.length) {
535538
return;

extensions/typescript-language-features/src/typescriptService.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,15 @@ export interface ITypeScriptServiceClient {
145145
/**
146146
* Tries to ensure that a vscode document is open on the TS server.
147147
*
148-
* Returns the normalized path.
148+
* @return The normalized path or `undefined` if the document is not open on the server.
149149
*/
150150
toOpenedFilePath(document: vscode.TextDocument): string | undefined;
151151

152+
/**
153+
* Checks if `resource` has a given capability.
154+
*/
155+
hasCapabilityForResource(resource: vscode.Uri, capability: ClientCapability): boolean;
156+
152157
getWorkspaceRootForResource(resource: vscode.Uri): string | undefined;
153158

154159
readonly onTsServerStarted: vscode.Event<{ version: TypeScriptVersion, usedApiVersion: API }>;

extensions/typescript-language-features/src/typescriptServiceClient.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,26 @@ export default class TypeScriptServiceClient extends Disposable implements IType
673673
return this.toPath(document.uri) || undefined;
674674
}
675675

676+
public hasCapabilityForResource(resource: vscode.Uri, capability: ClientCapability): boolean {
677+
switch (capability) {
678+
case ClientCapability.Semantic:
679+
{
680+
switch (resource.scheme) {
681+
case fileSchemes.file:
682+
case fileSchemes.untitled:
683+
return true;
684+
default:
685+
return false;
686+
}
687+
}
688+
case ClientCapability.Syntax:
689+
case ClientCapability.EnhancedSyntax:
690+
{
691+
return true;
692+
}
693+
}
694+
}
695+
676696
public toResource(filepath: string): vscode.Uri {
677697
if (filepath.startsWith(this.inMemoryResourcePrefix)) {
678698
const resource = vscode.Uri.parse(filepath.slice(1));

extensions/typescript-language-features/src/utils/fileSchemes.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
export const file = 'file';
77
export const untitled = 'untitled';
88
export const git = 'git';
9-
export const pr = 'pr';
10-
export const privateScheme = 'private';
119
/** Live share scheme */
1210
export const vsls = 'vsls';
1311
export const walkThroughSnippet = 'walkThroughSnippet';
@@ -22,7 +20,5 @@ export const semanticSupportedSchemes = [
2220
*/
2321
export const disabledSchemes = new Set([
2422
git,
25-
vsls,
26-
privateScheme,
27-
pr,
23+
vsls
2824
]);

0 commit comments

Comments
 (0)