

The simple fact is that JavaScript just doesn’t have many of the language constructs which Intellisense relies on. As a developer it rapidly becomes an essential part of your toolkit, so much so that when you start out on a JavaScript project and see just how poorly it can perform, despair soon sets in! At this point it’s worth taking a step back and considering why this is the case, why can’t the JavaScript Intellisense live up to its C# counterpart? When writing C#, Intellisense makes life a lot easier by presenting auto-completion of statements and type/member/variable lookup with context sensitive documentation. This one source of dependency data is then used when writing the code to automatically provide Intellisense, during debugging in the browser to load each JavaScript file in the correct order (no more long lists of script tags!) and when releasing to build a single optimised JavaScript file.

In this post I’ve taken Colin Eberhardt’s HTML5 Property Finder app and enhanced it with AMD (Asynchronous Module Definitions) allowing each JavaScript file to define it’s own dependencies, much like C#. However, with the launch of Visual Studio 2012 Intellisense has had a refresh, does this mean it’s now worth another look?

Manually adding and then maintaining another set of dependency references just for Intellisense has just never seemed worth it. Intellisense for JavaScript has always felt to me like an unfinished addition to Visual Studio, something that promises so much but doesn’t deliver for larger projects.
