[Bug] Since 0.46.0, dropped text append "$0"
Reproducible in vscode.dev or in VS Code Desktop?
- [X] Not reproducible in vscode.dev or VS Code Desktop
Reproducible in the monaco editor playground?
- [ ] Not reproducible in the monaco editor playground
Monaco Editor Playground Link
https://microsoft.github.io/monaco-editor/playground.html?source=v0.46.0#example-creating-the-editor-hello-world
Monaco Editor Playground Code
Empty.
Reproduction Steps
- Open a notepad
- Type "text" in the notepad
- Drag and drop the text from the notepad to the editor on the playground
Actual (Problematic) Behavior
The editor contains "text$0".
Expected Behavior
The editor should contain "text".
Additional Context
I'm not sure, but I guess the problem must have appeared with this PR: https://github.com/microsoft/vscode/pull/202049 and come from this code: https://github.com/microsoft/vscode/blob/7f07489455fda8bc1841b98b9b7e58b20b7ee3ef/src/vs/editor/contrib/dropOrPasteInto/browser/edit.ts#L34
cc. @mjbvz
I can verify.
Also facing this problem.
It is fixed by removing the + '$0' from the line: https://github.com/microsoft/vscode/blob/7f07489455fda8bc1841b98b9b7e58b20b7ee3ef/src/vs/editor/contrib/dropOrPasteInto/browser/edit.ts#L34
snippetParser_1.SnippetParser.escape(edit.insertText) + '$0'
to
snippetParser_1.SnippetParser.escape(edit.insertText)
I’ve noticed an additional issue related to the drag & drop functionality. When dragging and dropping a function, such as:
function test() {
// does nothing
}
It incorrectly appends $0 at the end and inserts a backslash before the closing curly brace. I believe these characters should not be escaped. Therefore, instead of using:
snippetParser_1.SnippetParser.escape(edit.insertText) + '$0'
It would be more appropriate to have:
edit.insertText
This change should prevent the unnecessary escaping and the addition of $0 at the end of the dragged text.
It does escape $ character for us as well, the full example is dragging
$some.text
turns int
\$some.text$0
There should be a way to treat dragged content not as a Snippet but raw text, I think. How about extending IDropIntoEditorOptions with such option?
same problem.