Thursday, April 14, 2011

VS Intellisense: can you hide extension methods?

By default Visual Studio displays all members and its extension methods for a type in intellisense.

Sometimes I would like to hide the extension methods to make it easier to find the member I am actually looking for (especially when using Linq).

Is there a shortcut or another way to display only the members of a type in intellisense?

From stackoverflow
  • Not that I'm aware of - but one thing you might want to do is get rid of the using directive for System.Linq. At that point the extension method won't be accessible, and I believe it won't be offered by Intellisense.

    Obviously that's no good if you want to use LINQ from one bit of code in a class, but not in another - but for classes which aren't using LINQ at all, it might help you.

    chris : not quite what I was hoping for but thanks!
    Benjol : I can confirm that they won't be offered by Intellisense, (a rather frequent gotcha for me, after having done a "Remove Unused Usings").
  • In theory you could do this with the appropriate decorator attribute*, but googling this it seems it's bugged, with the fix awaiting a service pack presumably.

    * [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]

  • Perhaps you could try using something like resharper which filters the list of methods as you type. I find this helps me to quickly get to what I need. And it will do so without hiding useful extention methods

  • Filtering of methods is default behavior in VS2010 intellisense

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.