Skip to content

Update paths on move misses update when moving file back and forth #24547

Closed
@mjbvz

Description

@mjbvz

microsoft/vscode#50811

TypeScript Version: 2.9.1

Search Terms:

  • Update paths on move
  • getEditsForFileRename

Code

  1. For a project

jsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es2016",
        "jsx": "preserve"
    },
    "exclude": [
        "node_modules",
        "**/node_modules/*"
    ]
}

a.js:

export const a = 123;

b.js:

import { a } from './sub/a';

export const b = 123;

console.log(a, b) 
  1. Move a.js into a sub folder. Select to update paths.
  2. Move a.js back into top level folder

Bug:
Sometimes you do not get prompted to update paths. This happens when getEditsForFileRename returns no edits

Here are the logs:

tsserver.log

It looks like sometimes a.js ends up in the inferred project instead of the jsconfig.json project:

Info 527  [16:17:48.76] Project '/Users/matb/projects/san/jsconfig.json' (Configured) 0
Info 527  [16:17:48.76] 	Files (15)
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2016.full.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2016.array.include.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es5.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.reflect.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.proxy.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.iterable.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.symbol.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.promise.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.generator.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.collection.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.core.d.ts
	/Users/matb/projects/san/b.js
	/Users/matb/projects/san/node_modules/typescript/lib/typescript.d.ts

Info 527  [16:17:48.76] -----------------------------------------------
Info 527  [16:17:48.76] Project '/dev/null/inferredProject1*' (Inferred) 1
Info 527  [16:17:48.76] 	Files (14)
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2016.full.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2016.array.include.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es5.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.reflect.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.proxy.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.iterable.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.symbol.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.promise.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.generator.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.collection.d.ts
	/Users/matb/projects/san/node_modules/typescript/lib/lib.es2015.core.d.ts
	/Users/matb/projects/san/a.js

Info 527  [16:17:48.76] -----------------------------------------------
Info 527  [16:17:48.76] Open files: 
Info 527  [16:17:48.76] 	FileName: /Users/matb/projects/san/b.js ProjectRootPath: /Users/matb/projects/san
Info 527  [16:17:48.76] 		Projects: /Users/matb/projects/san/jsconfig.json
Info 527  [16:17:48.77] 	FileName: /Users/matb/projects/san/a.js ProjectRootPath: /Users/matb/projects/san
Info 527  [16:17:48.77] 		Projects: /dev/null/inferredProject1*
Perf 527  [16:17:48.77] 55::open: async elapsed time (in milliseconds) 16.8510
Info 528  [16:17:48.77] request:
    {"seq":56,"type":"request","command":"getEditsForFileRename","arguments":{"file":"/Users/matb/projects/san/a.js","oldFilePath":"/Users/matb/projects/san/sub/a.js","newFilePath":"/Users/matb/projects/san/a.js"}}
Info 529  [16:17:48.77] Starting updateGraphWorker: Project: /dev/null/inferredProject1*
Info 530  [16:17:48.77] Finishing updateGraphWorker: Project: /dev/null/inferredProject1* Version: 1 structureChanged: false Elapsed: 0ms
Perf 531  [16:17:48.77] 56::getEditsForFileRename: elapsed time (in milliseconds) 0.6543
Info 532  [16:17:48.78] response:
    {"seq":0,"type":"response","command":"getEditsForFileRename","request_seq":56,"success":true,"body":[]}

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issueVS Code TrackedThere is a VS Code equivalent to this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions