AngularJS intellisense não está funcionando no Visual Studio 2015

De acordo com esse post o intellisense também deve estar trabalhando no novo VS 2015, mas até agora só obtenho intellisense para o object angular e não para as dependencies ou meus módulos customizados.

imagem

Aqui está o que eu fiz:

  1. Adicionamos o angular.intellisense.js às referências globais de javascript em C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References
  2. Reiniciado VS2015 E, em seguida, nada, ele apenas mostrou pontos de exclamação sempre que eu tentei usar intellisense em um object $ http.

Eu também adicionei o arquivo no mesmo lugar que o meu angular.js, mas ele ainda não funcionou. A questão que tenho neste caso é, onde devo colocar o arquivo? na pasta pública angular com apenas o meu angular.js, ou no meu dev pasta angular, onde todos os arquivos baixados do bower são.

Eu também tentei adicioná-lo diretamente no menu tools / options / editor de texto / javascriptr / intellisense / reference, no grupo de referência Implícito (Web), mas ele ainda não funcionou.

No meu projeto eu tenho a seguinte estrutura de pastas dentro da pasta src:

  • wwwroot
    • app (meu material de site angular)
      • controladores
      • Serviços
      • visualizações
    • lib (dependencies js, apenas o arquivo .min.js de cada biblioteca)
      • angular
      • rota angular
      • ….
    • _references.js (o arquivo de referência do visual studio js, ​​contém referência aos arquivos dentro do aplicativo e pastas lib)
  • Bibliotecas (contém as bibliotecas completas como baixadas pelo bower)
    • angular
    • rota angular

Como observação, não tenho uma pasta / scripts e, portanto, nenhum arquivo /scripts/_references.js

.

Isso não estava funcionando para mim no Visual Studio 2015 RTM em um projeto da web, mas resolvi o problema.

Este projeto não foi criado com o Visual Studio e não possui um arquivo _references.js nenhum lugar. Então, acho que isso funcionará em qualquer situação.

Eu removi todos os outros resources do intellisense da interface do usuário do VS para ter certeza de que o que fiz foi o que o consertou.

  1. Vá para https://www.angularjs.org e abra a checkbox de diálogo de download.

Faça o download da caixa de diálogo AngularJS

  1. Copie a URL CDN não compactada. Hoje, isso acontece com https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js
  2. No Visual Studio 2015 RTM, vá para Tools, Options, Text Editor, Javascript, Intellisense, References . Escolha o grupo de referência apropriado; para a maioria dos projetos da web, isso é Implicit (Web) . Cole o URL na checkbox de texto inferior e clique no botão Adicionar . Não dispense a checkbox de diálogo ainda. insira a descrição da imagem aqui
  3. Em Text Editor, Javascript, Intellisense, General , verifique se a checkbox de seleção está marcada para Download remote references .
  4. Clique no botão OK .
  5. (opcional) Se você quiser intellisense para os provedores angulares que você cria (não faz parte do framework angular), adicione _references.js à raiz do seu projeto. Não se preocupe em fazer uma pasta de Scripts . Clique com o botão direito do mouse e escolha a synchronization automática e escolha atualizar. Entre nele e remova todos os arquivos js criados por um processo de compilation. Se você não o fizer, eles podem ser tão grandes que quebrarão o intelisense. Esteja preparado para um atraso de ~ 5-10 segundos na primeira vez que você usar o intellisense, já que ele precisa carregar todas essas referências do seu projeto.
  6. Você pode precisar desativar o intellisense no Resharper para javascript se ele interferir no intellisense nativo.
  7. Reinicie o Visual Studio . Não vai funcionar até você fazer isso. Além disso, estou paranóico sobre fechar todas as outras instâncias que não sejam essa instância primeiro, então essas configurações “permanecem”. Então, sugiro que você faça isso antes de reiniciar essa instância.

Como o @Balthasar apontou (e caso você esteja usando o Resharper) você precisará habilitar o intellisense do Visual Studio para que ele funcione:

Resharper -> opções -> ambiente -> intellisense -> geral, selecione ‘Custom Intellisense’ e para Javascript você pode selecionar Visual Studio. Alternativamente, você pode usar a conclusão da instrução ‘Visual Studio’ (segunda opção)

insira a descrição da imagem aqui

Acabei de perceber que a ordem automática que o arquivo _reference.js usa (primeiro meus arquivos, em seguida, os arquivos da estrutura) impediu que o intellinsense trabalhasse em outros arquivos que não eram o arquivo app.js

é assim que meu _references.js se parece:

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

Eu tive um problema semelhante e descobri que o Resharper estava bloqueando todo o bom intellisense de JavaScript que eu tinha configurado no meu arquivo _references.js.

O intellisense do Visual Studio para o AngularJS é extremamente sentimental (uma boa maneira de dizer que é provavelmente pouco desenvolvido).

Então, mesmo que tudo esteja bem configurado com o arquivo _references.js, e você tenha intellisense para outras bibliotecas como o jquery, você provavelmente não irá obtê-lo para o AngularJS.

Por exemplo, na comunidade do VS 2015, a diretiva abaixo não mostrará o intellisense para o object $ http angular, embora tudo funcione bem com o código:

insira a descrição da imagem aqui

Na imagem abaixo, eu adiciono um array vazio ao módulo (o que significa que o módulo será criado, e se outro com o mesmo nome existir, ele será sobrescrito), e o intellisense começará a funcionar:

insira a descrição da imagem aqui

Aqui está um trecho do código para você testar (tente e adicione o array vazio aqui):

 (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) { } } })(); 

Eu tive o mesmo problema. Quando adicionei o angular, o VS 2015 (RTM) modificou meu _references.js; basicamente removeu algumas das minhas linhas no arquivo. Quando adicionei uma referência para angula em minhas _references.js como abaixo

///

Eu tenho o meu intellisense para o Angular 1.4.3 no VS 2015!

Siga este artigo para adicionar intellisense mais abrangente ao VS.

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

Baixe o arquivo angular.intellisense.js e coloque-o na pasta Arquivos de Programas (x86) \ Microsoft Visual Studio 12.0 \ JavaScript \ References

Eu tive esse problema.

O IDE do visual studio varrerá qualquer arquivo js referenciado nos arquivos HTML e os utilizará se necessário (para o intellisense etc).

Meu problema era que eu estava fazendo referência ao Angularjs usando os endereços CDN / http: // e, portanto, o Visual Studio não tinha nenhuma informação sobre o angular.

Tente baixar o arquivo angularjs js diretamente e include em seu projeto e referência em seu index.html, reconstruir (apenas no caso) e tente novamente e esperamos que ele funcione.

Espero ter ajudado.

Eu tenho esse problema para RTM ..apart de object angular e em um senario de complexidade de mundo Olá ($ http e todos os objects personalizados não funcionam) .. Seguido as configurações de _references. Minha única suspeita é que eu atualizei de RC para RTM (sem nova instalação) criou um problema no Git [link] github.com/jmbledsoe/angularjs-visualstudio-intellisense/issues/… ..Grabbing uma imagem VHD Win 10 e indo para tente que uma vez que o d / l termine 🙁 –

meu arquivo _reference com angular adicionado sentado em wwwroot

erro com falta intellisense para $ http e qualquer outro dos meus objetos personalizados

ATUALIZAR

Ok, com um pouco de ajuda aqui é a resposta …. O mecanismo Intellisense nunca vê o módulo chamado “sportsStore” sendo criado, uma vez que é criado no arquivo app.html em um bloco de script:

  

O mecanismo do VS Intellisense está “executando” o código em seu projeto para descobrir como concluir o código. Ele está usando o arquivo _references.js como ponto de partida e executando cada referência desse arquivo, em ordem. Como o VS Intellisense nunca executa uma linha de código que cria o módulo AngularJS chamado “sportsStore”, ele não sabe como fazer o auto-completar de código.

Mova o código JavaScript acima em seu próprio arquivo JS (vamos chamá-lo de “app.js”) e inclua uma referência a ele em _references.js. Certifique-se de que a referência “app.js” esteja imediatamente após a referência “angular.js”, pois é necessário criá-lo antes que os outros arquivos de script o configurem. : D

Basta criar um arquivo _references.js em uma pasta chamada ‘Scripts’ (convenção de nomenclatura) na raiz do seu projeto. Atualize-o com seus arquivos javascript necessários e você poderá obter intellisense. Aqui está um link sobre porque tal coisa era necessária: http://madskristensen.net/post/the-story-behind-_referencesjs