AngularJS intellisense no funciona en Visual Studio 2015

De acuerdo con este post intellisense también debería estar funcionando en el nuevo VS 2015, pero hasta ahora solo obtengo intellisense para el objeto angular y no para las dependencias o mis módulos personalizados.

imagen

Esto es lo que hice:

  1. Se agregó angular.intellisense.js a las referencias globales de javascript en C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References
  2. Reiniciado VS2015 Y luego nada, solo muestra signos de exclamación cada vez que trato de usar intellisense en un objeto $ http.

También agregué el archivo al mismo lugar que mi angular.js pero aún así no funcionó. La pregunta que tengo en este caso es, ¿dónde debería colocar el archivo? en la carpeta pública angular con solo mi angular.js, o en mi carpeta dev angular donde están todos los archivos descargados de bower.

También probé addind directamente en el menú tools / options / text editor / javascriptr / intellisense / reference, en el grupo de referencia implícito (web), pero todavía no funcionaba.

En mi proyecto tengo la siguiente estructura de carpetas dentro de la carpeta src:

  • wwwroot
    • aplicación (mis cosas del sitio angular)
      • controladores
      • servicios
      • puntos de vista
    • dependencias lib (js, solo el archivo .min.js de cada biblioteca)
      • angular
      • ruta angular
      • ….
    • _references.js (el archivo de referencias del estudio visual js, contiene referencia a los archivos dentro de las carpetas de aplicaciones y lib)
  • Bibliotecas (contiene las bibliotecas completas descargadas por bower)
    • angular
    • ruta angular

Como nota al margen, no tengo una carpeta / scripts y, por lo tanto, no hay archivo /scripts/_references.js

.

Esto no funcionaba para mí en Visual Studio 2015 RTM en un proyecto web, pero resolví el problema.

Este proyecto no se creó con Visual Studio y no tiene un archivo _references.js ninguna parte. Entonces creo que esto funcionará en cualquier situación.

Quité todos los demás recursos de intellisense de la interfaz de usuario de VS para asegurarme de que lo que hice fue lo que lo solucionó.

  1. Vaya a https://www.angularjs.org y abra el cuadro de diálogo de descarga.

Descargar el cuadro de diálogo AngularJS

  1. Copie la url de CDN sin comprimir. Hoy sucede que es https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js
  2. En Visual Studio 2015 RTM, vaya a Tools, Options, Text Editor, Javascript, Intellisense, References . Elija el grupo de referencia apropiado; para la mayoría del proyecto web esto es Implicit (Web) . Pegue la url en el cuadro de texto inferior y haga clic en el botón Agregar . No descarte el cuadro de diálogo todavía. enter image description here
  3. Debajo de Text Editor, Javascript, Intellisense, General , asegúrese de que la checkbox esté marcada para Download remote references .
  4. Haga clic en el botón Aceptar .
  5. (opcional) Si desea intellisense para los proveedores angulares que crea (que no forman parte del marco angular), agregue _references.js a la raíz de su proyecto. No te molestes en crear una carpeta de Scripts . Haga clic derecho sobre él y elija la sincronización automática, luego elija la actualización. Acceda a él y elimine cualquier archivo js creado por un proceso de comstackción. Si no lo haces, pueden ser tan grandes que se romperán inteligentemente. Prepárese para un retraso de ~ 5-10 segundos la primera vez que use intellisense, ya que tiene que cargar todas estas referencias de su proyecto.
  6. Es posible que deba desactivar intellisense en Resharper para javascript si interfiere con el intellisense nativo.
  7. Reinicie Visual Studio . No funcionará hasta que hagas esto. Además, estoy paranoico sobre el cierre de todas las demás instancias que no sean esta instancia primero, por lo que estas configuraciones se “pegan”. Así que te sugiero que hagas eso antes de reiniciar esta instancia.

Como lo señaló @Balthasar (y en caso de que esté utilizando Resharper) deberá habilitar intellisense desde Visual Studio para que funcione:

Resharper -> options -> environment -> intellisense -> general, seleccione ‘Custom Intellisense’ y para Javascript puede seleccionar Visual studio. Alternativamente, puede utilizar la finalización de la statement ‘Visual Studio’ (segunda opción)

enter image description here

Me acabo de dar cuenta de que el orden automático que utiliza el archivo _reference.js (primero mis archivos y luego los archivos del framework) impidió que intellinsense funcionara en otros archivos que no eran el archivo app.js

así es como ahora mi _references.js se ve así:

 ///  ///  ///  ///  ///  ///  ///  ///  ///  ///  ///  ///  ///  

Tuve un problema similar y resultó que Resharper estaba bloqueando todo el buen JavaScript intellisense que tenía configurado en mi archivo _references.js.

Visual Studio intellisense para AngularJS es extremadamente sentimental (una buena manera de decir que es muy poco desarrollado).

Entonces, incluso si todo está bien configurado con el archivo _references.js, y obtiene intellisense para otras bibliotecas como jQUERY, lo más probable es que no lo obtenga para AngularJS.

Por ejemplo, en la comunidad VS 2015, la directiva a continuación no mostrará intellisense para el objeto angular $ http, aunque todo funciona bien con el código:

enter image description here

En la imagen de abajo, agrego una matriz vacía al módulo (lo que significa que el módulo se creará, y si existe otro con el mismo nombre, se sobrescribe), y intellisense comienza a funcionar:

enter image description here

Aquí hay un fragmento del código para que se pruebe usted mismo (intente y añada la matriz vacía aquí):

 (function () { 'use strict'; angular .module('intellisence.sucks.directives') .directive('footer', footer); footer.$inject = ['$http']; function footer($http) { $http. var directive = { link: link, restrict: 'EA' }; return directive; function link(scope, element, attrs) { } } })(); 

Tuve el mismo problema. Cuando agregué angular, VS 2015 (RTM) modifiqué mis _references.js; básicamente eliminó algunas de mis líneas en el archivo. Cuando agregué una referencia para angula en my _references.js como abajo

///

¡Obtuve mi intellisense para Angular 1.4.3 en VS 2015!

Siga este artículo para agregar intellisense más integral a VS.

http://blogs.msdn.com/b/visualstudio/archive/2015/02/05/using-angularjs-in-visual-studio-2013.aspx

Descargue el archivo angular.intellisense.js y colóquelo en la carpeta Archivos de progtwig (x86) \ Microsoft Visual Studio 12.0 \ JavaScript \ References

tuve este problema

El estudio visual IDE escaneará cualquier archivo js al que se haga referencia en los archivos HTML y los usará si fuera necesario (para el intellisense, etc.).

Mi problema era que estaba haciendo referencia a Angularjs usando las direcciones CDN / http: // y, por lo tanto, Visual Studio no tenía ninguna información sobre angular.

Intente descargar el archivo angularjs js directamente e inclúyalo en su proyecto y haga referencia en su index.html, recupérelo (por si acaso) e inténtelo de nuevo y esperemos que funcione.

Espero que haya ayudado.

Tengo este problema para RTM … además del objeto angular y en un senario de complejidad hello world ($ http y todos los objetos personalizados no funcionan). Seguí las configuraciones de _references. Mi única sospecha es que actualicé de RC a RTM (sin nueva instalación) he creado un problema en Git [link] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues/… .. Tomando una imagen VHD Win 10 y yendo a intente eso una vez que termine d / l 🙁 –

mi _archivo de referencia con angular agregado sentado en wwwroot

error con missing intellisense para $ http y cualquier otro de mis objetos personalizados

ACTUALIZAR

Ok, con un poco de ayuda aquí está la respuesta … El motor Intellisense nunca ve el módulo llamado “sportsStore” que se está creando, ya que se creó en el archivo app.html en un bloque de script:

  

El motor VS Intellisense está “ejecutando” el código en su proyecto para descubrir cómo completar el código. Utiliza el archivo _references.js como punto de partida y ejecuta cada referencia de ese archivo, en orden. Como VS Intellisense nunca ejecuta una línea de código que crea el módulo AngularJS llamado “sportsStore”, no sabe cómo completar el código.

Mueva el código JavaScript de arriba en su propio archivo JS (vamos a llamarlo “app.js”) e incluya una referencia a él en _references.js. Asegúrese de que la referencia “app.js” esté inmediatamente después de la referencia “angular.js”, ya que necesita crear el módulo antes de que los otros archivos de script lo configuren. :RE

Simplemente cree un archivo _references.js en una carpeta llamada ‘Scripts’ (convención de nomenclatura) en la raíz de su proyecto. Actualízalo con tus archivos JavaScript necesarios y podrás obtener intellisense. Aquí hay un enlace sobre por qué se necesitaba algo así: http://madskristensen.net/post/the-story-behind-_referencesjs