Platinum Partner
java,jetbrains,xml,html,intellij idea,unwrap,remove,enclosing,statement,tag

Easy Unwrapping with IntelliJ IDEA

In complicated code constructs that contain numerous nested statements, you sometimes need to accurately get rid of the enclosing parts. When you try to manually delete such statements, it is too easy to break the syntax of the whole construct. With the new IntelliJ IDEA’s unwrapping feature, this task becomes just a snap.

Consider the following example, where a string variable is being analyzed:

[img_assist|nid=3370|title=|desc=|link=none|align=left|width=640|height=299]

 

 

 

 

 

 

 

 

Let’s remove one of the branches. To do that, place the cursor at the branch containing the statement, and press Ctrl+ Shift+Delete. IntelliJ IDEA shows you which results you can obtain: the part that will remain is displayed on the blue background, while the grey background denotes the pieces of code to be deleted:

[img_assist|nid=3371|title=|desc=|link=none|align=left|width=640|height=258]

 

 

 

 

 

 

 

 

After clicking the Remove ‘else…’ option, we get the promised results:

[img_assist|nid=3372|title=|desc=|link=none|align=left|width=640|height=226]

 

 

 

 

 

 

 

 

As you see, all parentheses are properly balanced, and the syntax is correct.

However, Java developers are not the only ones who can enjoy this powerful feature. The same “stripping” can be done in XML or HTML code.

Consider a situation when you have to clean up some HTML code and get rid of inline styles, for example, remove bold fonts. What will you do in this case – delete an opening tag, then delete the closing tag, with the real possibility to lose something in process. With IntelliJ IDEA, all you have to do is to place the caret somewhere inside the tags, and press Ctrl+Shift+Delete. The unnecessary tags are removed silently.

This facility is even more helpful for XML constructs, which can have deep nesting. You can sequentially remove enclosing tags level by level, until getting to the innermost one you want to preserve.

Do I need to mention that such unwrapping can be undone?

Enjoy!
{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}