Here’s something that happens fairly often in my workflow:
<span class="syntaxdefault">function stuff</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code ...<br /></span><span class="syntaxdefault"> init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> run</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>
Then I realize that those calls need to be conditional, so I add an if statement:
<span class="syntaxdefault">function stuff</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$okay</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> <br /> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> run</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>
Then I select the calls (selection indicated with angle brackets):
<span class="syntaxdefault">function stuff</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$okay</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> <br /> </span><span class="syntaxkeyword">}<br /><</span><span class="syntaxdefault"> init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> run</span><span class="syntaxkeyword">();<br />></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>
When I increase the indent, my selection gets wonky:
<span class="syntaxdefault">function stuff</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$okay</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> <br /> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> run</span><span class="syntaxkeyword">();<br />></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>
Now I want to cut the lines and paste them into the then-body, but before I can do that, I need to re-select so that I get the whole line.
<span class="syntaxdefault">function stuff</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$okay</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> <br /> </span><span class="syntaxkeyword">}<br /><</span><span class="syntaxdefault"> init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> run</span><span class="syntaxkeyword">();<br />></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>
Now I can cut and paste:
<span class="syntaxdefault">function stuff</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxdefault"> if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$okay</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault"> init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> run</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"> </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span><span class="syntaxcomment">//code...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>
Is there any way to do this without that extra step? Like, maybe a setting I can change? Alternatively, can I do something totally different with fewer steps?