I'm sorry for the bad subject of this post. Since I don't know how the behavior is called I don't know a better subject.
Using ReSharper's IntelliSense, I want to type in code to show a MessageBox with a Yes and a No button. The intended result is:
MessageBox.Show("Text", "Caption", MessageBoxButtons.YesNo);
Using IntelliSense combined with live templates and camelhups, I actualy start typing:
mb<tab> will expand into MessageBox.Show("Test");
Text","Caption" will overwrite the "Test" and append ,"Caption"
Then, I expect mbb to become MessageBoxButtons and .y to select .YesNo.
But... after typing "Caption", IntelliSense already jumps to MessageBoxButtons.OK and semi selects it (it draws a dotted border around it). It seems to do this because it knows the third parameter must be of type MessageBoxButtons.
Typing mbb does filter the list, but leads to an actual select of MessageBoxButtons.OK.
So the next dot I type will turn into MessageBoxButtons.OK. My .y gets appended and I end up with
In order to get the value I want, I have to watch my screen closely, notice the MessageBoxButtons.OK being activated, and use my cursor keys to select the correct entry. Or, press Esc to remove the list, and then type mbb.y. But either way, I have to watch what IntelliSense is doing.
So basically, what I would like is to not have the complete MessageBoxButtons enum in the list, but just MessageBoxButtons itself. If I want to select one of the values in it, I will gladly type in a dot to show the contents of the MessageBoxButtons enum. Personally, I don't see the use of showing all the enum values in the list anyway.
I've tried some options on the Environment | IntelliSense | Completion Behavior page, like "Automatically complete single item with:" and "Automatically insert common prefix", but I can't get the list the way I want.