You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bring along imports when copy and pasting code across files #50187
If I copy fs.readFileSync('bla') and paste it into a new file, an import for fs should also be added to the top of that file:
TS Server Protocol changes
VS Code is actively working on an API that lets extensions hook into copy and paste: microsoft/vscode#30066
Using this api, here's what I imagine the flow between VS Code and TS server would look like:
User copies code
VS Code tells TS Server about the copied range
TS Server goes and writes whatever state it needs to re-create the imports. This state needs to be JSON serializable (so that TS Server can send it to VS Code). Just as an example, this could be something like (note! just for demonstration purposes, not intended to be what this actually looks like):
The Copy With Imports extension works by overriding the copy and paste keybindings in a kind of hacky way. And having VSCode add an extension into copying introduces a delay that can result in the wrong line of code being copied if you don't wait for the copy command to be invoked.
Copy With Imports as an extension is an ok stopgap. But this should definitely be handled natively in TypeScript and VSCode.
Does that mean if Copilot completes code it will be auto-imported in JS/TS, or it works only if I manually paste it?
Also, what about if I'm typing code without suggest widget and it matches exact name of a class, does it import it automatically like in WebStorm?
Unambiguous imports on the fly With this checkbox selected, WebStorm adds import statements when you type your code or paste a fragment with a symbol that is not yet imported if there is only one source to import the symbol from.
So, can we also support update imports after paste file? Sometimes I want to keep origin file there, and copy the file and paste to another place. But after paste the file, the imports not updated.
Activity
elliotwaite commentedon Sep 8, 2023
The Copy With Imports extension seems to work pretty well at addressing this issue.
Thanks to Luke Page (@lukeapage) for mentioning this extension in microsoft/vscode#30066.
dantman commentedon Sep 8, 2023
The Copy With Imports extension works by overriding the copy and paste keybindings in a kind of hacky way. And having VSCode add an extension into copying introduces a delay that can result in the wrong line of code being copied if you don't wait for the copy command to be invoked.
Copy With Imports as an extension is an ok stopgap. But this should definitely be handled natively in TypeScript and VSCode.
elliotwaite commentedon Sep 9, 2023
Daniel Friesen (@dantman) Ah, good to know. Thanks for the info. Hopefully, native support will be added soon. It seems like a good sign that the TypeScript 5.3 Iteration Plan mentions "Investigate Carrying Imports Across Paste".
svipas commentedon May 17, 2024
navya9singh Matt Bierner (@mjbvz)
tjx666 commentedon Jun 26, 2024
So, can we also support
update imports after paste file? Sometimes I want to keep origin file there, and copy the file and paste to another place. But after paste the file, the imports not updated.pouyarezvani commentedon Sep 24, 2025
This is not available in Cursor. any ideas?