I didn't get to make it to any of the IDE talks at the PDC, but I'm sort of surprised that there haven't been more people talking about extending the Whidbey IDE.
Now that the IDE has support for refactoring, I'm starting to get really excited about extending the Visual Studio IDE. The reason why: in order to do Refactoring-type code transformation, the IDE has to do a lot of work behind the scenes to maintain an abstract syntax tree representation of your current code. Most refactoring implementations I've seen ( take C# Refactory, for example ) have both a lexer and a parser that can be invoked on demand. I would imagine that Whidbey does much the same thing -- the first phase of any refactoring transformation being a rudimentary lexing and parsing of the source tree to build up an AST which the refactoring code can then manipulate.
This has some very, very interesting possibilities for in-project code generation. I'd love to be able to write a macro that said “give me all the classes in my solution that are decorated with [MyAttribute]” and then generate some code based upon those class definitions. I'm imagining something sort of like reflection, but something that reflected over source code rather than compiled code. Coupling the ability to generate source code on demand (which the IDE already has via macros) with the ability to interrorgate exisiting source code could lead to some very, very powerful things.
To anyone who has more information than I do: will Whidbey let me build custom refactorings?
