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

Screen Shot 2015-11-04 at 6.12.15 PM.png

Screen Shot 2015-11-04 at 6.12.34 PM.png

2
21 comments

Hi there,

It was not like this in earlier phpstorm versions.

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 help disable this behaviour.

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"

0
Avatar
Permanently deleted user

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!

1

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.

4

I'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.

2
Avatar
Permanently deleted user

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 ...

0

Please try Ctrl+Alt+Shift+V

1
Avatar
Permanently deleted user

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 ?

0

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..

0
Avatar
Permanently deleted user

never mind. Thank you that even

0

You can customize this in File | Settings | Keymap, i.e. assign "Paste simple" on Ctrl-V combination.

1
Avatar
Permanently deleted user

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 ?

0

@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.

0
Avatar
Permanently deleted user

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.

0
Avatar
Permanently deleted user

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>';

0

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.

0
Avatar
Permanently deleted user

@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.

0
Avatar
Permanently deleted user

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.

 

0
Avatar
Permanently deleted user

Looks like this is related only to single quotes.

If we use template like

" . _("$TEXT$") . "

it expands fine in the same conditions.

Submitted https://youtrack.jetbrains.com/issue/WI-42972 - please vote for it with thumb up button.

0
Avatar
Permanently deleted user

@Vladimir Luchansky- I see it with both single and double quotes. As shown in my previous screenshot...

0

Please feel free to add it as in a comment to https://youtrack.jetbrains.com/issue/WI-42972

 

0

Please sign in to leave a comment.