Design a Refactoring Extensibility API

This is an experiment. I'm going to give a rough outline of a feature that is the C# IDE Wish List. You get to talk about how you'd like to see it work.

If it's really successful, I'll transfer the rest of my responsibilities to the blog-reading community, as well.

We often get asked for more extensibility in Visual Studio. I think we do an OK job, but we could certainly do a lot better. 

For example, suppose we built an API that gave you:

  • The parse tree
  • Get the type of an expression in the parse tree
  • Find the definition of a symbol
  • Find all references to a symbol

You could write Introduce Explaining Variable with that, for example.

What would your API look like?

If you have a proposal for the next design-a-thon, post it in the Suggest A Topic post.

Comments

  • Anonymous
    June 10, 2004
    I got an email from one reader saying:

    'Your post sounds too much like "do some work for me". '

    It is.

    It's also a chance for you to have complete freedom in designing a feature in a product that you depend on every day.

    If this prospect is exciting & interesting to you, I hope you take advantage of it.

    If you think it would be an unrewarded effort, then skip it.
  • Anonymous
    June 10, 2004
    What API are you asking us for? The refactoring, or the access to the parse tree et. al? (The latter I believe)
  • Anonymous
    June 11, 2004
    Jim: whichever you find more interesting, or whichever you have strong ideas about.

    So far this post has been a dud.

    Next time I'll try starting with a proposed design, and then we can refine it together. Maybe that will work better.
  • Anonymous
    June 11, 2004
    I think the problem you have here is that your request is a bit abstract for this venu. A bit more concrete or narrower scope would be better.

    I'll think about it for you.