On Microsoft’s new Intellisense implementation in Dev10, Mark Hall writes:
Being accurate means more than just getting the right set of members in an auto-complete dropdown – it enables other features that would be impossible or undesirable without it. For example, accuracy means that any errors encountered during the intellisense parse are real errors, and we can expose them to the user as “squiggles” in the editor window as they edit or browse code. They can fix the errors without leaving the editor. This cuts out saving files and kicking off builds to get the command line compiler to provide such diagnostics.
Another benefit of accuracy is that our data stores will be reliable enough to use for code analysis and transformations, such as assisted refactoring of source code. There wasn’t time in Dev10 to provide access to our expression-level data. Users will be able to browse the symbol store to extract symbol-level information about their source bases. In a future release we will provide user-facing APIs that provide access to accurate information about their C++ source bases. This will open up a whole new ecosystem for analysis, understanding, and productivity tools for C++ on Windows.
I for sure have to give Microsoft a jumping high five for this one. Intellisense in the C++ world at this level is incredible. It certainly has been frustrating to try and “go to definition” for a symbol and have Dev Studio do nothing. For C++, the constraints in accomplishing this are really difficult so I appreciate the work that Microsoft has invested in us C++ developers. High Fives and Thank You!
Furthermore, it seems that Dev10 is an evolutionary step for C++ development. Seems that for anyone who develops C++ applications, Dev10 will be the Lear Jet to replace their single prop Sesna. I’ve already got the beta and I’m going to try getting ahead using it. Amazing stuff.