Escape Quote Placed Automatically in String? Why ?
Hello
Newest PHPStorm 10 does some bad UI .
When trying to copy strings, escape characters are placed automatically on quotes. Why ??
Please help disable this behaviour.
It was not like this in earlier phpstorm versions.
I placed screenshots to better understsand
Please sign in to leave a comment.
Hi there,
It's a new functionality introduced in v10. It is still work in progress so bugs (situations where it works wrong) are possible.
Considering how this feature supposed to work, in your particlar case it actually rather a correct behavior -- you are copying text from outside of the string literal but inserting it inside the string, hence the escaping.
Other than that: I may only suggest to submit bug report to the Issue Tracker.
Please use "Paste Simple" instead of ordinary "Paste".
NOTE: You may change default shortcut to something more shorter/convenient or even swap these paste commands around in "Settings/Preferences | Keymap"
In this case yes, but it's just a demo.
What if I need to replace the track-name ( which is a more common case ) ?
This must have an option to be disabled!
I second this. For me I believe it should be disabled by default.
Not sure why something copied from my own code without escaped quotes would add in escaped quotes when it's not needed. Causing extra work.
Please vote for
https://youtrack.jetbrains.com/issue/WI-29782I'm glad you brouth this up, it's been slowing me down ever since I upgraded to ver10. Please please disable this as it's always incorect usage after escaping and I have to go in and remove all of them after each paste. time consuming and introduces possible bugs in my code.
I need to disable this option, it generates an incorrect code, especially when I do a drag & drop ...
Please tell me how to have a normal paste if you have a solution ...
Please try Ctrl+Alt+Shift+V
Thank you for your quick reply, but I had already read the previous posts :)
The drag & drop + CTRL uses a normal paste, not a keyboard shortcut.
It automatically escapes the characters dropped, is not it ?
Too bad Jet Brains doesn't make more keys to type in to copy and paste.. I mean Ctrl-v is just to simple.. Glad they made it Ctrl+Alt+Shift+V we're programmers we love remembering pointless extra keystrokes.. heck, make it even more challenging on future releases.. I have 10 fingers, you all should make us type at least 10 keys simultaneously just to teach us a lesson not to want to paste existing code to new areas..
never mind. Thank you that even
You can customize this in File | Settings | Keymap, i.e. assign "Paste simple" on Ctrl-V combination.
Always not. a concrete example.
The following code:
$A = 'ex 1';
$B = 'ex 2';
$C = 'ex 3';
$D = ...
If I want transform variables into a simple array :
1) Place the cursor between "$" and "A"
2) type «['»and select this typing
3) Simultaneous with the CTRL key, drag and drop it on the second row, then the third, etc.
Personally, I get :
$['A = 'ex 1';
$[\'B = 'ex 2';
$[\\'C = 'ex 3';
$[\\'D = ...
But in this case, I need a simple drag & drop text. It's possible ?
@JUSTAMENTE LAURENT
In your particular case it looks like it would be easier to use Multiple Carets instead to make editing in few places simultaneously.
Thank you for your reply.
I was hoping an option to disable the automatic escape special characters for simple paste and/or drag & drop...
Never mind.
A scenario where this cannot be fixed by the simple-paste method is Live Templates. I have a live template that contains quotes which are escaped as soon as the template is inserted but I don't want that behavior. Can I stop it happening?
Example, replace text with gettext function call:
echo '<p>Hello World!</p>';
Live template: ' . _("Hello World!") . '
Result: echo '<p>\' . _("Hello World!") . \'</p>';
Websupport, What is the context set for this live template? I can't reproduce that in PHP. Please record a screencast that will include both the live template and how you invoke it.
@Eugene Morozov - thanks for your help, (I'm "Websupport" using a new account).
Have you tried the exact code above? It only occurs when applying the live template inside HTML in PHP. It works fine when just in HTML or in a PHP string without HTML tags. The template is stored in the "user" group and applied to HTML and PHP.
Incidentally, I have a workaround that involves removing the quote at the start of the template and typing a quote directly before I invoke the template:
"_qq[tab]
This stops the escaping from occurring.
Looks like this is related only to single quotes.
If we use template like
it expands fine in the same conditions.
Submitted https://youtrack.jetbrains.com/issue/WI-42972 - please vote for it with thumb up button.
@Vladimir Luchansky- I see it with both single and double quotes. As shown in my previous screenshot...
Please feel free to add it as in a comment to https://youtrack.jetbrains.com/issue/WI-42972