diff --git a/extensions/typescript-language-features/src/features/updatePathsOnRename.ts b/extensions/typescript-language-features/src/features/updatePathsOnRename.ts index 3d5558d4b7a..26c0efcd8d0 100644 --- a/extensions/typescript-language-features/src/features/updatePathsOnRename.ts +++ b/extensions/typescript-language-features/src/features/updatePathsOnRename.ts @@ -83,14 +83,16 @@ export class UpdateImportsOnFileRenameHandler { this.client.bufferSyncSupport.closeResource(targetResource); this.client.bufferSyncSupport.openTextDocument(document); - // Workaround for https://github.com/Microsoft/vscode/issues/52967 - // Never attempt to update import paths if the file does not contain something the looks like an export - const tree = await this.client.execute('navtree', { file: newFile }); - const hasExport = (node: Proto.NavigationTree): boolean => { - return !!node.kindModifiers.match(/\bexports?\b/g) || !!(node.childItems && node.childItems.some(hasExport)); - }; - if (!tree.body || !tree.body || !hasExport(tree.body)) { - return; + if (!this.client.apiVersion.gte(API.v300)) { + // Workaround for https://github.com/Microsoft/vscode/issues/52967 + // Never attempt to update import paths if the file does not contain something the looks like an export + const tree = await this.client.execute('navtree', { file: newFile }); + const hasExport = (node: Proto.NavigationTree): boolean => { + return !!node.kindModifiers.match(/\bexports?\b/g) || !!(node.childItems && node.childItems.some(hasExport)); + }; + if (!tree.body || !tree.body || !hasExport(tree.body)) { + return; + } } const edits = await this.getEditsForFileRename(targetFile, document, oldFile, newFile);