-
Notifications
You must be signed in to change notification settings - Fork 28.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Copy/Cut then Paste doesn't preserve or fix indentation #6392
Comments
@wxkin I think it would be inconvenient to always target beggining of the line as you add new, hitting the "enter". |
This sounds like you would want some sort of format on paste. |
Having to fix the indentation characters after copy/pasting is really annoying. When you forget it, you end up with a file with mixed indentation. Other editors don't have this problem.
Applying the file's current indentation format to pasted contents would be great. |
i need this feature too, just like the "paste and indent" function in sublime with |
This is a very basic feature to have. Is there any specific reason this hasn't been implemented yet? |
@rubymaniac The indentation rules we have at our disposal are fuzzy and there are a plethora of languages where they're incorrectly defined. e.g. if (true)
return 5; // <-- you probably would like this line to be indented
switch (a) {
case 5:
return 5; // <- same here
default:
return 6; // <- same here
} You will find that these cases do not work correctly in vscode today when pressing Enter and there are probably many languages besides js that have this problem. Now imagine pasting in proper indented code and the editor indenting it in a wrong way. You would be much more upset than the lack of the auto-indent. That's why I try to take the discussion towards format on paste, as formatting is something that can be provided by a language server, and is not language agnostic (like the indentation rules). |
@alexandrudima yes I completely agree with what you say about the fuzziness of the indentation rules. However I usually find myself to copy correctly indented code from one place to another with a different offset and VSCode is not adjusting the indentation to the new offset and I always have to do this manually. For that reason I made a little extension that tries to adjust the offset of the indentation to where the cursor is when you are pasting code. |
Aha, so you would expect that the pasted code is treated as one blob and indented/unindented as a single blob (all lines the same amount). Makes sense to me. That would reduce the risk of messing it up, although we'd still need to do per-line adjustments (i.e. detect that the pasted code is indented with spaces@2 meanwhile the file is indented with tabs, etc.). |
@alexandrudima Exactly what I am saying. The per-line adjustments are crucial in order to do it properly. For what it's worth in the extension I wrote I am making per-line adjustments. Although the problem is solved (at most cases) through the extension, I feel that this should be native functionality (or at least configurable through preferences). |
No news? It is a core functionality to be able to copy/paste without indentation surprises. VSCode is awesome but I may go back Atom just because of that. |
@rebornix Has just implemented |
@alexandrudima To be honest, |
I'm using Python and I turned on formatOnPaste but that runs autopep8 and I don't want my code wrapped, just indented to fit the paste location. [That's a thing I miss since switching over from Atom.] |
last night i dreamt that this worked |
@ZeroVa You really have a sweet dream. 😆 |
This is another really seemingly minor thing that should just work in VS Code. May also revert to Atom. Death by a 1000 paper cuts with VS Code as much as I want to like it. |
Already added this feature in Insider. |
I find a extension might do this trick: |
Should pasting without horrible indentation be working in |
I found that hitting CTRL-Z (undo) after CTRL-V (paste) fixes the indentation. Faster to fix, but what extra step is taking place that the CTRL-Z has to undo it? The auto-indent? |
need cmd + Z to fix the indentation too.. any update for this bug? |
Just to drop in my experience, the indention will very occasionally work correctly on paste, but for the most part, I have to use |
CTRL + Z works like magic! This particular bug, although minor, can drive you mad if you work with lots of Html code. In fact I've been fighting with this bug for 2 months and couldn't take it any longer! TBH I don't know how other front end devs cope with this vcode peculiarity. Anyway, I'm just glad I landed here coz I've finally found a temporary fix. Loving the progress of vscode in 2017 though, so even if minor issues like this still exist, I say to you, "Keep up the good work!" |
@rebornix THANKS! Yes, it is now added it in insider. Instruction: |
Still not sure what is happening tbh. When pasting HTML code indentation is almost always incorrect. CTRL-Z fixes this. What is doing the additional step when pasting? In regards to the new parameter "editor.formatOnPaste": Should it be true (because it needs a third formatting step) or should it be false (because the mysterious second step will be skipped)? |
What worked for me was downloading the extension "Paste and Indent" and once enabled going to my "user settings" ( shortcut CTRL + , ) and pasting in "pasteAndIndent.selectAfter": true into your custom settings. FYI, "editor.formatOnPaste": true, was not working so I pasted the new PasteAndIndent rule after this Hope that helps. This was driving me nuts |
I get this in Typescript, which I thought VSCode focused on as a primary language. An issue since May 16, 2016? Yikes... (people still commenting with this as an issue and it's closed?) Steps to reproduce:
Expected Versions .editorconfig
./.vscode/settings.json
|
Installing |
Steps to Reproduce:
Always have to fix intentation after pasting some code.
Experiencing the same behaviour for css and js.
The text was updated successfully, but these errors were encountered: