title: Visual Studio plugin to expand/contract nested (if / elseif / for / while / case etc.) code?
body: <p>Sometimes, I have an <code>if()</code> section (along with a few <code>else if()</code> sections) with a medium or big chunk of code in each 'section' (I think that's called the 'body' inside the { }).</p>
  
  <p>I'd like to be able to contract/collapse or expand those sections. Perhaps a plugin for Visual Studio 2010 exists? And before anyone says "Call an external method instead", I would say:</p>
  
  <ul>
  <li>That takes unnecessary time to write out the method header</li>
  <li>Makes the code more verbose</li>
  <li>No where else will call that same bit of code. I tend to leave separate methods for occasions where it will be called multiple times.</li>
  <li>It's not 'in place' and will jump to a different part of the document making it (for example) harder to relate to 'nearby' code.</li>
  </ul>
  
  <p>One possibility is <code>#region</code>, but that suffers from time/space loss, and unfortunately, VS doesn't save whether the region is contracted or expanded when you reopen the project later.</p>
  
  <p>My C# programs would look a lot tidier if I could have a 'higher-level' view of the code using this technique of contracting <code>if</code> 'sections'. So surely someone must have coded a plugin like this?</p>