Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS intellisense not working on Visual Studio 2015

According to this post intellisense should also be working on the new VS 2015, but so far I only get intellisense for the angular object and not for the dependencies or my custom modules.

image

Here's what I did:

  1. Added the angular.intellisense.js to the global javascript references at C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References
  2. Restarted VS2015 And then nothing, it just showed exclamation marks whenever I tried to use intellisense on a $http object.

I also added the file to the same place as my angular.js but it still didn't work. The question that I have in this case is, where should I place the file? on the angular public folder with only my angular.js, or on my dev angular folder where all the files downloaded from bower are.

I also tried addind it directly into the tools/options/text editor/javascriptr/intellisense/reference menu, on the Implicit(Web) reference group, but it still didn't work.

On my project I have the following folder structure inside the src folder:

  • wwwroot
    • app (my angular site stuff)
      • controllers
      • services
      • views
    • lib (js dependencies, only the .min.js file of each library)
      • angular
      • angular-route
      • ....
    • _references.js (the visual studio js references file, contains reference to the files inside the app and lib folders)
  • Libraries (contains the full libraries as downloaded by bower)
    • angular
    • angular-route
    • ...

As a side note, I don't have a /scripts folder and therefore no /scripts/_references.js file

.

like image 380
edua_glz Avatar asked Apr 23 '15 17:04

edua_glz


People also ask

How to enable AngularJS IntelliSense in Visual Studio?

If you prefer to enable AngularJS intellisene for all of your web projects, simply save the angular. intellisense. js file to your %PROGRAMFILES%\Microsoft Visual Studio 12.0\JavaScript\References folder.


2 Answers

This was not working for me in Visual Studio 2015 RTM in a web project, but I solved the problem.

This project was not created with Visual Studio and does not have a _references.js file anywhere. So I think this will work in any situation.

I removed all other intellisense resources from within the VS UI to make sure what I did was what fixed it.

  1. Go to https://www.angularjs.org and pull up the download dialog box.

Download AngularJS Dialog Box

  1. Copy the Uncompressed CDN url. Today that happens to be https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js
  2. In Visual Studio 2015 RTM, go to Tools, Options, Text Editor, Javascript, Intellisense, References. Choose the appropriate Reference Group; for most web project this is Implicit (Web). Paste the url at the bottom text box and click the Add button. Don't dismiss the dialog box yet. enter image description here
  3. Under Text Editor, Javascript, Intellisense, General, make sure the check box is checked for Download remote references.
  4. Click the OK button.
  5. (optional) If you want intellisense for the angular providers that you create (not part of the angular framework), add _references.js to the root of your project. Don't bother making a Scripts folder. Right click on it and choose auto-sync, then choose update. Go into it and remove any js files created by a build process. If you don't, they can be so large they will break intellisense. Be prepared for a ~5-10 second delay the first time you use intellisense, as it has to load all these references from your project.
  6. You may need to disable intellisense in Resharper for javascript if it interferes with the native intellisense.
  7. Restart Visual Studio. It will not work until you do this. Also, I'm paranoid about closing all other instances other than this instance first, so these settings "stick". So I suggest you do that before restarting this instance.
like image 66
toddmo Avatar answered Sep 22 '22 09:09

toddmo


As @Balthasar pointed out (and in case you are using Resharper) you will need to enable intellisense from Visual Studio for it to work:

Resharper -> options -> environment -> intellisense -> general, select 'Custom Intellisense' and for Javascript you can select Visual studio. Alternatively you can use the 'Visual Studio' statement completion (second option)

enter image description here

like image 23
HaRoLD Avatar answered Sep 23 '22 09:09

HaRoLD