diff --git a/extensions/typescript-language-features/src/commands.ts b/extensions/typescript-language-features/src/commands.ts index 1996a092692..0f7c3b4a99f 100644 --- a/extensions/typescript-language-features/src/commands.ts +++ b/extensions/typescript-language-features/src/commands.ts @@ -119,7 +119,7 @@ async function goToProjectConfig( return; } - const file = client.normalizePath(resource); + const file = client.toPath(resource); // TSServer errors when 'projectInfo' is invoked on a non js/ts file if (!file || !clientHost.handles(resource)) { vscode.window.showWarningMessage( diff --git a/extensions/typescript-language-features/src/extension.ts b/extensions/typescript-language-features/src/extension.ts index 4e7ff0a662b..521da08e6dc 100644 --- a/extensions/typescript-language-features/src/extension.ts +++ b/extensions/typescript-language-features/src/extension.ts @@ -41,7 +41,7 @@ export function activate( void lazyClientHost.value; context.subscriptions.push(new ManagedFileContextManager(resource => { - return lazyClientHost.value.serviceClient.normalizePath(resource); + return lazyClientHost.value.serviceClient.toPath(resource); })); return true; } diff --git a/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts b/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts index 46a2d8e17ef..8e30d03c0ba 100644 --- a/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts +++ b/extensions/typescript-language-features/src/features/baseCodeLensProvider.ts @@ -64,7 +64,7 @@ export abstract class TypeScriptBaseCodeLensProvider implements CodeLensProvider } async provideCodeLenses(document: TextDocument, token: CancellationToken): Promise { - const filepath = this.client.normalizePath(document.uri); + const filepath = this.client.toPath(document.uri); if (!filepath) { return []; } diff --git a/extensions/typescript-language-features/src/features/bufferSyncSupport.ts b/extensions/typescript-language-features/src/features/bufferSyncSupport.ts index 8ff5c391d24..abbd95c89a1 100644 --- a/extensions/typescript-language-features/src/features/bufferSyncSupport.ts +++ b/extensions/typescript-language-features/src/features/bufferSyncSupport.ts @@ -77,14 +77,9 @@ class SyncedBuffer { } public onContentChanged(events: TextDocumentContentChangeEvent[]): void { - const filePath = this.client.normalizePath(this.document.uri); - if (!filePath) { - return; - } - for (const { range, text } of events) { const args: Proto.ChangeRequestArgs = { - file: filePath, + file: this.filepath, line: range.start.line + 1, offset: range.start.character + 1, endLine: range.end.line + 1, @@ -166,7 +161,7 @@ export default class BufferSyncSupport { this.diagnosticDelayer = new Delayer(300); - this.syncedBuffers = new SyncedBufferMap(path => this.client.normalizePath(path)); + this.syncedBuffers = new SyncedBufferMap(path => this.client.normalizedPath(path)); } private readonly _onDelete = new EventEmitter(); @@ -203,7 +198,7 @@ export default class BufferSyncSupport { return; } const resource = document.uri; - const filepath = this.client.normalizePath(resource); + const filepath = this.client.normalizedPath(resource); if (!filepath) { return; } @@ -237,12 +232,14 @@ export default class BufferSyncSupport { private onDidChangeTextDocument(e: TextDocumentChangeEvent): void { const syncedBuffer = this.syncedBuffers.get(e.document.uri); - if (syncedBuffer) { - syncedBuffer.onContentChanged(e.contentChanges); - if (this.pendingGetErr) { - this.pendingGetErr.token.cancel(); - this.pendingGetErr = undefined; - } + if (!syncedBuffer) { + return; + } + + syncedBuffer.onContentChanged(e.contentChanges); + if (this.pendingGetErr) { + this.pendingGetErr.token.cancel(); + this.pendingGetErr = undefined; } } @@ -265,7 +262,7 @@ export default class BufferSyncSupport { } for (const resource of handledResources) { - const file = this.client.normalizePath(resource); + const file = this.client.normalizedPath(resource); if (file) { this.pendingDiagnostics.set(file, Date.now()); } @@ -281,7 +278,7 @@ export default class BufferSyncSupport { return; } - const file = this.client.normalizePath(resource); + const file = this.client.normalizedPath(resource); if (!file) { return; } @@ -299,7 +296,7 @@ export default class BufferSyncSupport { } public hasPendingDiagnostics(resource: Uri): boolean { - const file = this.client.normalizePath(resource); + const file = this.client.normalizedPath(resource); return !file || this.pendingDiagnostics.has(file); } diff --git a/extensions/typescript-language-features/src/features/completions.ts b/extensions/typescript-language-features/src/features/completions.ts index a07b48097ef..da141a3f244 100644 --- a/extensions/typescript-language-features/src/features/completions.ts +++ b/extensions/typescript-language-features/src/features/completions.ts @@ -275,7 +275,7 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider }); } - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return []; } @@ -332,7 +332,7 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider return undefined; } - const filepath = this.client.normalizePath(item.document.uri); + const filepath = this.client.toPath(item.document.uri); if (!filepath) { return undefined; } diff --git a/extensions/typescript-language-features/src/features/definitionProviderBase.ts b/extensions/typescript-language-features/src/features/definitionProviderBase.ts index f8928579e07..c34d6df3382 100644 --- a/extensions/typescript-language-features/src/features/definitionProviderBase.ts +++ b/extensions/typescript-language-features/src/features/definitionProviderBase.ts @@ -20,7 +20,7 @@ export default class TypeScriptDefinitionProviderBase { position: Position, token: CancellationToken | boolean ): Promise { - const filepath = this.client.normalizePath(document.uri); + const filepath = this.client.toPath(document.uri); if (!filepath) { return undefined; } @@ -30,7 +30,7 @@ export default class TypeScriptDefinitionProviderBase { const response = await this.client.execute(definitionType, args, token); const locations: Proto.FileSpan[] = (response && response.body) || []; return locations.map(location => - typeConverters.Location.fromTextSpan(this.client.asUrl(location.file), location)); + typeConverters.Location.fromTextSpan(this.client.toResource(location.file), location)); } catch { return []; } diff --git a/extensions/typescript-language-features/src/features/directiveCommentCompletions.ts b/extensions/typescript-language-features/src/features/directiveCommentCompletions.ts index 071dda75eb6..41d5bd8e8cd 100644 --- a/extensions/typescript-language-features/src/features/directiveCommentCompletions.ts +++ b/extensions/typescript-language-features/src/features/directiveCommentCompletions.ts @@ -45,7 +45,7 @@ class DirectiveCommentCompletionProvider implements vscode.CompletionItemProvide position: vscode.Position, _token: vscode.CancellationToken ): vscode.CompletionItem[] { - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return []; } diff --git a/extensions/typescript-language-features/src/features/documentHighlight.ts b/extensions/typescript-language-features/src/features/documentHighlight.ts index deabc0eba99..2e7f619739f 100644 --- a/extensions/typescript-language-features/src/features/documentHighlight.ts +++ b/extensions/typescript-language-features/src/features/documentHighlight.ts @@ -20,7 +20,7 @@ class TypeScriptDocumentHighlightProvider implements vscode.DocumentHighlightPro position: vscode.Position, token: vscode.CancellationToken ): Promise { - const file = this.client.normalizePath(resource.uri); + const file = this.client.toPath(resource.uri); if (!file) { return []; } diff --git a/extensions/typescript-language-features/src/features/documentSymbol.ts b/extensions/typescript-language-features/src/features/documentSymbol.ts index 013f20fe9d9..8df78a13761 100644 --- a/extensions/typescript-language-features/src/features/documentSymbol.ts +++ b/extensions/typescript-language-features/src/features/documentSymbol.ts @@ -36,7 +36,7 @@ class TypeScriptDocumentSymbolProvider implements vscode.DocumentSymbolProvider private readonly client: ITypeScriptServiceClient) { } public async provideDocumentSymbols(resource: vscode.TextDocument, token: vscode.CancellationToken): Promise { // todo@joh `any[]` temporary hack to make typescript happy... - const filepath = this.client.normalizePath(resource.uri); + const filepath = this.client.toPath(resource.uri); if (!filepath) { return []; } diff --git a/extensions/typescript-language-features/src/features/fileConfigurationManager.ts b/extensions/typescript-language-features/src/features/fileConfigurationManager.ts index 7e1637c8745..0cb8c3da539 100644 --- a/extensions/typescript-language-features/src/features/fileConfigurationManager.ts +++ b/extensions/typescript-language-features/src/features/fileConfigurationManager.ts @@ -76,7 +76,7 @@ export default class FileConfigurationManager { options: FormattingOptions, token: CancellationToken | undefined ): Promise { - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return; } diff --git a/extensions/typescript-language-features/src/features/folding.ts b/extensions/typescript-language-features/src/features/folding.ts index 5fec4a2d8a4..556fafcbaa9 100644 --- a/extensions/typescript-language-features/src/features/folding.ts +++ b/extensions/typescript-language-features/src/features/folding.ts @@ -20,7 +20,7 @@ class TypeScriptFoldingProvider implements vscode.FoldingRangeProvider { _context: vscode.FoldingContext, token: vscode.CancellationToken ): Promise { - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return; } diff --git a/extensions/typescript-language-features/src/features/formatting.ts b/extensions/typescript-language-features/src/features/formatting.ts index 0ee24e734da..e0556c99ec8 100644 --- a/extensions/typescript-language-features/src/features/formatting.ts +++ b/extensions/typescript-language-features/src/features/formatting.ts @@ -51,7 +51,7 @@ class TypeScriptFormattingProvider implements vscode.DocumentRangeFormattingEdit options: vscode.FormattingOptions, token: vscode.CancellationToken ): Promise { - const absPath = this.client.normalizePath(document.uri); + const absPath = this.client.toPath(document.uri); if (!absPath) { return []; } @@ -72,7 +72,7 @@ class TypeScriptFormattingProvider implements vscode.DocumentRangeFormattingEdit options: vscode.FormattingOptions, token: vscode.CancellationToken ): Promise { - const filepath = this.client.normalizePath(document.uri); + const filepath = this.client.toPath(document.uri); if (!filepath) { return []; } diff --git a/extensions/typescript-language-features/src/features/hover.ts b/extensions/typescript-language-features/src/features/hover.ts index 6b3cb801767..e6fce8635c1 100644 --- a/extensions/typescript-language-features/src/features/hover.ts +++ b/extensions/typescript-language-features/src/features/hover.ts @@ -21,7 +21,7 @@ class TypeScriptHoverProvider implements vscode.HoverProvider { position: vscode.Position, token: vscode.CancellationToken ): Promise { - const filepath = this.client.normalizePath(document.uri); + const filepath = this.client.toPath(document.uri); if (!filepath) { return undefined; } diff --git a/extensions/typescript-language-features/src/features/implementationsCodeLens.ts b/extensions/typescript-language-features/src/features/implementationsCodeLens.ts index 56f0d498e6d..8bb4cfa2e8b 100644 --- a/extensions/typescript-language-features/src/features/implementationsCodeLens.ts +++ b/extensions/typescript-language-features/src/features/implementationsCodeLens.ts @@ -27,7 +27,7 @@ export default class TypeScriptImplementationsCodeLensProvider extends TypeScrip const locations = response.body .map(reference => // Only take first line on implementation: https://github.com/Microsoft/vscode/issues/23924 - new vscode.Location(this.client.asUrl(reference.file), + new vscode.Location(this.client.toResource(reference.file), reference.start.line === reference.end.line ? typeConverters.Range.fromTextSpan(reference) : new vscode.Range( diff --git a/extensions/typescript-language-features/src/features/jsDocCompletions.ts b/extensions/typescript-language-features/src/features/jsDocCompletions.ts index 61768750d14..b8683b81e77 100644 --- a/extensions/typescript-language-features/src/features/jsDocCompletions.ts +++ b/extensions/typescript-language-features/src/features/jsDocCompletions.ts @@ -54,7 +54,7 @@ class JsDocCompletionProvider implements CompletionItemProvider { position: Position, token: CancellationToken ): Promise { - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return []; } @@ -130,7 +130,7 @@ class TryCompleteJsDocCommand implements Command { * if possible, otherwise falling back to a default comment format. */ public async execute(resource: Uri, start: Position): Promise { - const file = this.client.normalizePath(resource); + const file = this.client.toPath(resource); if (!file) { return false; } diff --git a/extensions/typescript-language-features/src/features/organizeImports.ts b/extensions/typescript-language-features/src/features/organizeImports.ts index 030a394a4e7..7d8697903a7 100644 --- a/extensions/typescript-language-features/src/features/organizeImports.ts +++ b/extensions/typescript-language-features/src/features/organizeImports.ts @@ -63,7 +63,7 @@ export class OrganizeImportsCodeActionProvider implements vscode.CodeActionProvi _context: vscode.CodeActionContext, token: vscode.CancellationToken ): vscode.CodeAction[] { - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return []; } diff --git a/extensions/typescript-language-features/src/features/quickFix.ts b/extensions/typescript-language-features/src/features/quickFix.ts index e989ed8014b..fcb0749f5d7 100644 --- a/extensions/typescript-language-features/src/features/quickFix.ts +++ b/extensions/typescript-language-features/src/features/quickFix.ts @@ -184,7 +184,7 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider { return []; } - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return []; } diff --git a/extensions/typescript-language-features/src/features/refactor.ts b/extensions/typescript-language-features/src/features/refactor.ts index ef954057349..bd65b8481a6 100644 --- a/extensions/typescript-language-features/src/features/refactor.ts +++ b/extensions/typescript-language-features/src/features/refactor.ts @@ -122,7 +122,7 @@ class TypeScriptRefactorProvider implements vscode.CodeActionProvider { return undefined; } - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return undefined; } diff --git a/extensions/typescript-language-features/src/features/references.ts b/extensions/typescript-language-features/src/features/references.ts index 762a2b7781f..4664c1b1ce3 100644 --- a/extensions/typescript-language-features/src/features/references.ts +++ b/extensions/typescript-language-features/src/features/references.ts @@ -19,7 +19,7 @@ class TypeScriptReferenceSupport implements vscode.ReferenceProvider { options: vscode.ReferenceContext, token: vscode.CancellationToken ): Promise { - const filepath = this.client.normalizePath(document.uri); + const filepath = this.client.toPath(document.uri); if (!filepath) { return []; } @@ -36,7 +36,7 @@ class TypeScriptReferenceSupport implements vscode.ReferenceProvider { if (!options.includeDeclaration && has203Features && ref.isDefinition) { continue; } - const url = this.client.asUrl(ref.file); + const url = this.client.toResource(ref.file); const location = typeConverters.Location.fromTextSpan(url, ref); result.push(location); } diff --git a/extensions/typescript-language-features/src/features/referencesCodeLens.ts b/extensions/typescript-language-features/src/features/referencesCodeLens.ts index 27cede1f0e5..059d3e9e16e 100644 --- a/extensions/typescript-language-features/src/features/referencesCodeLens.ts +++ b/extensions/typescript-language-features/src/features/referencesCodeLens.ts @@ -27,7 +27,7 @@ class TypeScriptReferencesCodeLensProvider extends TypeScriptBaseCodeLensProvide const locations = response.body.refs .map(reference => - typeConverters.Location.fromTextSpan(this.client.asUrl(reference.file), reference)) + typeConverters.Location.fromTextSpan(this.client.toResource(reference.file), reference)) .filter(location => // Exclude original definition from references !(location.uri.toString() === codeLens.document.toString() && diff --git a/extensions/typescript-language-features/src/features/rename.ts b/extensions/typescript-language-features/src/features/rename.ts index 741f383cbdf..576f7fa62f0 100644 --- a/extensions/typescript-language-features/src/features/rename.ts +++ b/extensions/typescript-language-features/src/features/rename.ts @@ -20,7 +20,7 @@ class TypeScriptRenameProvider implements vscode.RenameProvider { newName: string, token: vscode.CancellationToken ): Promise { - const file = this.client.normalizePath(document.uri); + const file = this.client.toPath(document.uri); if (!file) { return null; } @@ -55,7 +55,7 @@ class TypeScriptRenameProvider implements vscode.RenameProvider { ) { const result = new vscode.WorkspaceEdit(); for (const spanGroup of locations) { - const resource = this.client.asUrl(spanGroup.file); + const resource = this.client.toResource(spanGroup.file); if (resource) { for (const textSpan of spanGroup.locs) { result.replace(resource, typeConverters.Range.fromTextSpan(textSpan), newName); diff --git a/extensions/typescript-language-features/src/features/signatureHelp.ts b/extensions/typescript-language-features/src/features/signatureHelp.ts index 49ac6ef5710..b682e0b0367 100644 --- a/extensions/typescript-language-features/src/features/signatureHelp.ts +++ b/extensions/typescript-language-features/src/features/signatureHelp.ts @@ -22,7 +22,7 @@ class TypeScriptSignatureHelpProvider implements vscode.SignatureHelpProvider { position: vscode.Position, token: vscode.CancellationToken ): Promise { - const filepath = this.client.normalizePath(document.uri); + const filepath = this.client.toPath(document.uri); if (!filepath) { return undefined; } diff --git a/extensions/typescript-language-features/src/features/task.ts b/extensions/typescript-language-features/src/features/task.ts index a4b612601b4..c0d7fb00511 100644 --- a/extensions/typescript-language-features/src/features/task.ts +++ b/extensions/typescript-language-features/src/features/task.ts @@ -167,7 +167,7 @@ class TscTaskProvider implements vscode.TaskProvider { if (editor) { const document = editor.document; if (document && (document.languageId === 'typescript' || document.languageId === 'typescriptreact')) { - return this.client.value.normalizePath(document.uri); + return this.client.value.toPath(document.uri); } } return null; diff --git a/extensions/typescript-language-features/src/features/updatePathsOnRename.ts b/extensions/typescript-language-features/src/features/updatePathsOnRename.ts index 7fc87fc9c4d..da8eae2a9b9 100644 --- a/extensions/typescript-language-features/src/features/updatePathsOnRename.ts +++ b/extensions/typescript-language-features/src/features/updatePathsOnRename.ts @@ -54,12 +54,12 @@ export class UpdateImportsOnFileRenameHandler { return; } - const newFile = this.client.normalizePath(newResource); + const newFile = this.client.toPath(newResource); if (!newFile) { return; } - const oldFile = this.client.normalizePath(oldResource); + const oldFile = this.client.toPath(oldResource); if (!oldFile) { return; } diff --git a/extensions/typescript-language-features/src/features/workspaceSymbols.ts b/extensions/typescript-language-features/src/features/workspaceSymbols.ts index 89e1821dd36..5d987b85133 100644 --- a/extensions/typescript-language-features/src/features/workspaceSymbols.ts +++ b/extensions/typescript-language-features/src/features/workspaceSymbols.ts @@ -35,7 +35,7 @@ class TypeScriptWorkspaceSymbolProvider implements vscode.WorkspaceSymbolProvide return []; } - const filepath = this.client.normalizePath(uri); + const filepath = this.client.toPath(uri); if (!filepath) { return []; } @@ -56,7 +56,7 @@ class TypeScriptWorkspaceSymbolProvider implements vscode.WorkspaceSymbolProvide } const label = TypeScriptWorkspaceSymbolProvider.getLabel(item); result.push(new vscode.SymbolInformation(label, getSymbolKind(item), item.containerName || '', - typeConverters.Location.fromTextSpan(this.client.asUrl(item.file), item))); + typeConverters.Location.fromTextSpan(this.client.toResource(item.file), item))); } return result; } diff --git a/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts b/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts index 3e840c1dac1..0c422d77f03 100644 --- a/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts +++ b/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts @@ -89,7 +89,7 @@ export default class TypeScriptServiceClientHost { } }, null, this.disposables); - this.versionStatus = new VersionStatus(resource => this.client.normalizePath(resource)); + this.versionStatus = new VersionStatus(resource => this.client.toPath(resource)); this.disposables.push(this.versionStatus); this.typingsStatus = new TypingsStatus(this.client); @@ -211,12 +211,12 @@ export default class TypeScriptServiceClientHost { return; } - (this.findLanguage(this.client.asUrl(body.configFile))).then(language => { + (this.findLanguage(this.client.toResource(body.configFile))).then(language => { if (!language) { return; } if (body.diagnostics.length === 0) { - language.configFileDiagnosticsReceived(this.client.asUrl(body.configFile), []); + language.configFileDiagnosticsReceived(this.client.toResource(body.configFile), []); } else if (body.diagnostics.length >= 1) { workspace.openTextDocument(Uri.file(body.configFile)).then((document) => { let curly: [number, number, number] | undefined = undefined; @@ -246,10 +246,10 @@ export default class TypeScriptServiceClientHost { } if (diagnostic) { diagnostic.source = language.diagnosticSource; - language.configFileDiagnosticsReceived(this.client.asUrl(body.configFile), [diagnostic]); + language.configFileDiagnosticsReceived(this.client.toResource(body.configFile), [diagnostic]); } }, _error => { - language.configFileDiagnosticsReceived(this.client.asUrl(body.configFile), [new Diagnostic(new Range(0, 0, 0, 0), body.diagnostics[0].text)]); + language.configFileDiagnosticsReceived(this.client.toResource(body.configFile), [new Diagnostic(new Range(0, 0, 0, 0), body.diagnostics[0].text)]); }); } }); diff --git a/extensions/typescript-language-features/src/typescriptService.ts b/extensions/typescript-language-features/src/typescriptService.ts index be31d8e299f..f444857eeb0 100644 --- a/extensions/typescript-language-features/src/typescriptService.ts +++ b/extensions/typescript-language-features/src/typescriptService.ts @@ -11,8 +11,25 @@ import { TypeScriptServiceConfiguration } from './utils/configuration'; import Logger from './utils/logger'; export interface ITypeScriptServiceClient { - normalizePath(resource: Uri): string | null; - asUrl(filepath: string): Uri; + /** + * Convert a resource (VS Code) to a normalized path (TypeScript). + * + * Does not try handling case insensitivity. + */ + normalizedPath(resource: Uri): string | null; + + /** + * Map a resource to a normalized path + * + * This will attempt to handle case insensitivity. + */ + toPath(resource: Uri): string | null; + + /** + * Convert a path to a resource. + */ + toResource(filepath: string): Uri; + getWorkspaceRootForResource(resource: Uri): string | undefined; onTsServerStarted: Event; diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts index 2afb6f1a629..5e0c282dcd5 100644 --- a/extensions/typescript-language-features/src/typescriptServiceClient.ts +++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts @@ -618,7 +618,7 @@ export default class TypeScriptServiceClient implements ITypeScriptServiceClient } } - public normalizePath(resource: Uri): string | null { + public normalizedPath(resource: Uri): string | null { if (this._apiVersion.gte(API.v213)) { if (resource.scheme === fileSchemes.walkThroughSnippet || resource.scheme === fileSchemes.untitled) { const dirName = path.dirname(resource.path); @@ -640,11 +640,15 @@ export default class TypeScriptServiceClient implements ITypeScriptServiceClient return result.replace(new RegExp('\\' + this.pathSeparator, 'g'), '/'); } + public toPath(resource: Uri): string | null { + return this.normalizedPath(resource); + } + private get inMemoryResourcePrefix(): string { return this._apiVersion.gte(API.v270) ? '^' : ''; } - public asUrl(filepath: string): Uri { + public toResource(filepath: string): Uri { if (this._apiVersion.gte(API.v213)) { if (filepath.startsWith(TypeScriptServiceClient.WALK_THROUGH_SNIPPET_SCHEME_COLON) || (filepath.startsWith(fileSchemes.untitled + ':')) ) { @@ -851,7 +855,7 @@ export default class TypeScriptServiceClient implements ITypeScriptServiceClient if (diagnosticEvent.body && diagnosticEvent.body.diagnostics) { this._onDiagnosticsReceived.fire({ kind: getDignosticsKind(event), - resource: this.asUrl(diagnosticEvent.body.file), + resource: this.toResource(diagnosticEvent.body.file), diagnostics: diagnosticEvent.body.diagnostics }); } diff --git a/extensions/typescript-language-features/src/utils/typeConverters.ts b/extensions/typescript-language-features/src/utils/typeConverters.ts index b58c7770ea9..d65b1468e9d 100644 --- a/extensions/typescript-language-features/src/utils/typeConverters.ts +++ b/extensions/typescript-language-features/src/utils/typeConverters.ts @@ -57,7 +57,7 @@ export namespace WorkspaceEdit { const workspaceEdit = new vscode.WorkspaceEdit(); for (const edit of edits) { for (const textChange of edit.textChanges) { - workspaceEdit.replace(client.asUrl(edit.fileName), + workspaceEdit.replace(client.toResource(edit.fileName), Range.fromTextSpan(textChange), textChange.newText); }