CodeRush Tip– Create a Select / Switch statement with branches for each element of an enumeration

“Is there a way in CodeRush to auto-fill a SELECT CASE statement with the available enumerations ?”

I was just asked this question on Twitter and because it was such a reasonable question, I figured I’d share the wealth in a more permanent way by posting the answer on my blog.

Ok so imagine you have an Enumeration with 4 elements:
SuitEnumerationVB

…and you declare a variable of that type…

SuitVariableVB

What you need to do is

  • Copy the name of that variable to the clipboard.
  • Type either select or switch (depending on your language of choice).

Update: You don’t even have to type all of the characters in select or switch. There are even shorter aliases. Type either se<space> or sw<space> for the same effect.

SuitEnumerationPreExpansion

  • Hit space to expand the template.

SuitEnumerationPostExpansion

CodeRush will generate a switch or select statement, with branches for each of the potential value of your enumeration variable.

Additionally CodeRush will place Markers in each of these branches, so that you can sequentially hit Escape to jump to each of them in turn, and insert whatever code you feel is appropriate.

That is awsome.

7 April, 2011

It would be nice it the expansion code supported some kind of interrupt (Esc, perhaps).  I've done this once with an enum that had a couple of hundred values; it took a minute.

11 April, 2011

@Michael We'll have the devs look into this perf issue. Thanks for the report.

12 April, 2011

This used to work, but is no longer working.  I am using VS 2015 CR version 15.2.4.0

Pressing space bar does nothing, hitting TAB two times puts the variable name in brackets

switch(variableName){}  

24 February, 2016

Please login or register to post comments.