ASP.NET Ajax-aware JavaScript IntelliSense available from the Orcas CTP

This is an absolutely awesome feature. IntelliSense / autocompletion for JavaScript is a difficult problem (because of the dynamic nature of JavaScript) which the Visual Studio team is brilliantly solving. They were able to build an elegant solution to the problem that works reasonably well on plain JavaScript, but really shines when used with ASP.NET Ajax. The type information that we added to our debug scripts through doc comments really helps in making the whole experience seamless.

Jeff King wrote a great blog post that shows what's already available in the Orcas CTP:
http://blogs.msdn.com/webdevtools/archive/2007/03/02/jscript-intellisense-in-orcas.aspx

The CTP itself can be found here:
http://www.microsoft.com/downloads/details.aspx?FamilyID=b533619a-0008-4dd6-9ed1-47d482683c78&DisplayLang=en

4 Comments

  • Steve: sure, that's why we include them only in the debug version of the scripts. In release mode, there are no comments, no parameter validation, and the script is crunched (as few spaces as possible, no newlines, local variables are renamed to be shorter).
    But in debug mode, the focus is on ease of programming and debugging and we don't watch size that much.

  • This is an absolutely awesome feature. Javascript is definitely the poor stepchild of the programming world, which is probably why it has taken this long for anyone to devote the resources to doing Javascript intellisense.

    It is also my understanding that there was some debate about whether to include this feature or not, and how much demand there actually was for it. There's alot!

    And while it may devalue the hard-earned skills of the expert javascript writers, somewhat, it is a great boon to the rest of us.

  • The features definitely rocks.

    Can you reveal more secrets about the "elegant solution" that is implemented.

  • Stefan: it's a combination of partial script execution, inferring types from the context and taking hints from doc comments. Does this help?

Comments have been disabled for this content.