kenwarner
kenwarner

Reputation: 29120

Enabling javascript intellisense for external libraries in Visual Studio

I updated ~/Scripts/_references.js with

/// <autosync enabled="true" />
/// <reference path="angular.js" />
/// <reference path="angular-route.js" />

and in my app.js I can see some intellisense working, which is great

angular.js intellisense working

but go a little further and it doesn't work anymore.

angular.js intellisense not working

Any ideas on why this happens or ways to make it work?

Upvotes: 13

Views: 8349

Answers (2)

John Bledsoe
John Bledsoe

Reputation: 17652

I built a library to do just this:

https://github.com/jmbledsoe/angularjs-visualstudio-intellisense

Upvotes: 7

musically_ut
musically_ut

Reputation: 34288

Because you are using dependency injection, Visual Studio has no way to figure out what are the types of the arguments.

This is a common problem with Javascript intellisense and, since Javascript does not allow for explicit type annotations, it seems that there is no clear way to work around it.

However, this can be achieved easily using Typescript (which has a VS2013 extension) and angular types where your code would look like:

angular.module('example', ['ngRoute'])
  .config([ '$locationProvider',
    function ($locationProvider : ng.ILocationProvider) {

           $locationProvider. // Intellisense would work here.
    }
   ]);

Upvotes: 8

Related Questions