Intellisense funktioniert in Visual Studio 2012 nicht für JavaScript

68

Ich habe eine saubere, sofort einsatzbereite Installation von Visual Studio 2012 Web Developer Express und aus irgendeinem Grund ist die Unterstützung für JavaScript (sowohl jQuery, jQuery UI als auch andere Bibliotheken) verschwunden. Ich glaube, es hat vorher funktioniert und dann hat es ohne "Grund" aufgehört.

Ich habe wie vorgesehen im Internet gestöbert und vier Unstimmigkeiten festgestellt.

  1. Ich habe den Schlüssel HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ JavaScriptLanguageService \ ImplicitReferences nicht in meiner Registrierung. Tatsächlich habe ich nicht einmal das JavaScriptLanguageService-Verzeichnis.

  2. Ich habe überprüft, ob die referenzierte Datei domWindows.js tatsächlich dort ist, wo die Optionen verweisen.

  3. Das Ausgabefenster unter JavaScriptLanguageService ist leer und während der Entwicklung und Ausführung meiner Anwendung wird dort nichts eingegeben.

  4. Ich habe über die Optionen auf die jQuery-Datei verwiesen, die ich verwende, aber es wurden keine Änderungen vorgenommen.

Alles in allem erhalte ich die Fehlermeldung:

"Intellisense konnte keine genaue Vervollständigungsliste für diesen Ausdruck ermitteln. Die bereitgestellte Liste enthält alle Bezeichner in der Datei."

Anregungen wäre sehr dankbar.

Konrad Viltersten
quelle

Antworten:

123

Ein großes Lob an CraigTP

Zusammenfassung:

  1. Navigieren Sie zu den Optionen [Extras]> [Optionen]> Texteditor> JavaScript> IntelliSense> Referenzen

  2. Wählen Sie Implizit (Web)

    Sie finden "~ / Scripts / _references.js" (wenn Sie es an einer anderen Stelle platzieren möchten, ändern Sie es hier)

  3. Gehen Sie zu ~ / Scripts und fügen Sie das neue Element "_references.js" hinzu.

  4. füge /// <reference path="path\jquery-1.7.1.js" />"_references.js" hinzu

    oder /// <reference path="~\root\path\jquery-1.7.1.js" />

Viel Spaß beim Codieren :)

Notiz bearbeiten:

Denken Sie daran, jquery-1.7.1-vsdoc.js im selben Ordner wie jquery-1.7.1.js abzulegen

Wenn es nach den oben genannten Änderungen immer noch nicht funktioniert, starten Sie Visual Studio neu.

Maxisam
quelle
2
Es ist eine ordentliche Lösung (ich habe es noch nicht ausprobiert, aber ich kann die Ordentlichkeit trotzdem schätzen, haha). Jetzt wird alles funktionieren, bis ich auf eine neuere Version von jQ aktualisiere, die in Kürze veröffentlicht wird. Natürlich ist das Bearbeiten des Pfads auf 1.8 keine große Sache, aber es wäre immer ordentlicher, wenn dies automatisch erfolgen würde, nicht wahr? Ich kann mir keine Möglichkeit vorstellen, dies zu erreichen (außer dass ich anfange, für MS zu arbeiten und im Updator selbst in VS zu codieren - aber es ist nicht sehr wahrscheinlich, dass dies passiert).
Konrad Viltersten
Wenn Sie nuget verwenden, um Ihren jQ zu aktualisieren. Nuget ändert es automatisch auf 1,8. Es gibt jedoch keine vsdoc.js für 1.8. Sie verlieren also die Intellisense-Unterstützung. Am Ende wünschen Sie sich tatsächlich, dass Nuget das nicht automatisch aktualisiert. Und danke, dass Sie dies als Antwort markiert haben
Maxisam
Ich bin sicher, dass vsdoc.js für 1.8 in Kürze verfügbar sein wird. Und in der Zwischenzeit kann man vielleicht Dokumente von 1.7 in 1.8 umbenennen und betrügen. Das macht natürlich den eigentlichen Zweck der automatischen Aktualisierung zunichte. Ich habe NuGet übrigens noch nie benutzt. Habe ich viel vermisst
Konrad Viltersten
nuget.org Nicht so sehr. Nur etwa 2 Jahre lol. Sie müssen es wirklich versuchen. Es ist ein Muss für VS.
Maxisam
Haha, ich denke ich werde warten bis die Dokumente für 1.8 eintreffen. Ich möchte dieses Must-Have-Plug-In nicht ausprobieren, wenn es nicht funktioniert. Intellisense ist für mich ein Muss als NuGet. :)
Konrad Viltersten
64

Zum Menü Extras -> Optionen -> Texteditor -> JavaScript -> Intellisense -> Referenzen und legen Sie einen Verweis auf die IntelliSense - Dateien für die Version von jQuery Sie im verwenden Implizite Web Gruppe.

Geben Sie hier die Bildbeschreibung ein

ODER

Platzieren Sie einen "Verweis hinzufügen" auf die Intellisense-Datei in der Datei _references.js, die Sie dem ScriptsOrdner Ihres Projekts hinzufügen können .

/// <reference path="jquery-1.8.2.js"/>
/// <reference path="jquery-1.8.2.min.js"/>
/// <reference path="jquery-1.8.2.intellisense.js"/>

Dies bietet zwar nur Intellisense für das Projekt, in dem Sie sich befinden, das erste jedoch für alle geöffneten JavaScript-Dateien, nicht nur für diejenigen in dem Projekt, in dem Sie sich befinden.

Um die neuesten jQuery-Dateien mit Intellisense abzurufen, verwenden Sie das NuGet- Paketinstallationsprogramm, das standardmäßig einen Skriptordner erstellt und die Dateien jQuery version.js, min.js und Intellisense.js in ... ablegt. Von dort aus können Sie sie in das kopieren Speicherort, an dem sich die meisten Microsoft-Referenzen befinden. Dies ist normalerweise Folgendes:

install-package jquery in der Paketmanager-Konsole.

C: \ Programme (x86) \ Microsoft Visual Studio 11.0 \ JavaScript \ Referenzen

DRobertE
quelle
Wenn NuGet mit der Meldung ausfällt, dass das Standardprojekt nicht gefunden wurde, bedeutet dies, dass das von Ihnen geöffnete Projekt (z. B. Node.js) von NuGet nicht unterstützt wird. In diesem Fall müssen Sie andere Methoden verwenden, wie bereits in der Antwort erläutert.
TheCrazyProgrammer
10

Zusammenfassung:

  1. Ziehen Sie die .jsDatei, auf die Sie verweisen möchten, aus dem Projektmappen-Explorer in Ihre aktuelle Datei . (Visual Studio erstellt ein Referenz-Snippet.)
James
quelle
4

Versuchen Sie, sie Ihren impliziten JavaScript-Referenzen hinzuzufügen. Dies befindet sich unter Extras -> Optionen -> Texteditor -> JavaScript -> IntelliSense -> Referenzen.

scottheckel
quelle
Was genau soll da sein? Ich habe momentan die folgenden Referenzen: libhelp.js sitetypesWeb.js domWeb.js underscorefilter.js showPlainComments.js (alle oben unter Pfade in Formular c: \ Something) Außerdem habe ich: ~ / Scripts / _references.js (jedoch , es gibt keine solche Datei in meinem Projektverzeichnis - könnte das ein Problem sein?)
Konrad Viltersten
Jetzt bin ich mir ein bisschen unklar, auf welche Datei ich mich für Intellisense beziehen soll. Soll ich mich für die eigentliche jQuery-1.7.2.js selbst (in meinem Projektverzeichnis) entscheiden oder auf \ Microsoft Visual Studio 11.0 \ JavaScript \ References \ jquery.intellisense.js verweisen?! Es könnte der Schlafentzug sein, aber ich kann mich nicht erinnern, diese Datei in das Verzeichnis gestellt zu haben ... Ist sie standardmäßig dort?
Konrad Viltersten
2
Wenn ich diese jquery.intellisense.js öffne, gibt es eine einfache Funktion und eine Art Signatur. Nach dem Hinzufügen dieser Datei hat sich in der IDE selbst nichts geändert.
Irgendwie
4

Hinzufügen von jQuery und seinen Intellisense-Dateien zu einem aktiven / geöffneten Projekt / einer Website

Gehen Sie in Visual Studio 2012 wie folgt vor:

Öffnen Sie das Menü Extras -> Bibliothek Packet - Manager -> Verwalten Nuget Pakete für Lösung . Klicken Sie ganz rechts im Dialogfeld auf das Feld / die Auswahl Online. Suchen Sie jQuery in der mittleren Liste, klicken Sie darauf und klicken Sie auf Installieren .

Beachten Sie, dass die jQuery-Skriptdateien jetzt in Ihr Projekt eingefügt werden, indem Sie im Projektmappen-Explorer aufsehen. Sie sollten jquery-1.xxjs sehen (wobei x hier Platzhalter für die tatsächlichen Versionsnummern sind. Angenommen, jquery-1.9.0.js ist ein konkretes Beispiel).

Beachten Sie außerdem, dass sich dort jetzt eine Datei Jquery-1.9.0.intellisense.js befindet. Ordentlich ai? :-)

Beachten Sie jedoch, dass auf der Web Forms-Website bereits jQuery 1.7.1 vorhanden ist, wenn Sie eine neue Website in Visual Studio erstellen und ASP: NET Web Forms-Site auswählen (im Gegensatz zu einer leeren Site).

netfed
quelle
3

Ich habe jquery-xxx.intellisense.js in JavaScript -> Intellisense -> Referenz aufgenommen . Es hat einmal funktioniert, aber nachdem ich Visual Studio geschlossen und neu gestartet habe, hat Intellisense nicht mehr funktioniert. Aber ich habe versehentlich auf Menü Bearbeiten -> Intellisense -> Remote-Referenzen aktualisieren geklickt . Es hat wieder funktioniert. Versuch das!

Trio Cheung
quelle
Ich habe alles auf dieser Seite ausprobiert und nichts funktioniert. Verwenden von VS2013.
Mike K
3

Verwenden Sie das NuGet IntelliSense-Dokumentationspaket für JQuery, indem Sie es wie folgt über die NuGet-Konsole installieren:

Install-Package jQuery-vsdoc

Nachdem Sie das Paket installiert haben, gehen Sie zu:

Tools>>Options>>Text Editor>>JavaScript>>Intellisense>>References

und Verweis auf hinzufügen Implicit(Web) Gruppe hinzu, indem Sie den Speicherort des installierten Pakets auf Ihrer Festplatte auswählen.

Starten Sie Visual Studio neu und Sie werden jQuery Intellisense zum Laufen bringen.

Ashraf Abusada
quelle
0

Was für mich letztendlich funktioniert hat, war, die Liste in _references.js neu zu ordnen. Ich hatte fast 150 Zeilen darin, weil eine Reihe von Plugins in das Projekt importiert wurden, und jQuery befand sich ganz unten. Als ich den Verweis nach oben verschob, begann mein Intellisense wieder zu arbeiten.

Wie es aussieht:

/// <autosync enabled="true" />
/// <reference path="jquery-2.1.3.js" />
/// <reference path="jquery-ui-1.11.2.js" />
/// <reference path="modernizr-2.8.3.js" />
... more reference lines

Beachten Sie, dass sich der Verweis auf die Datei jquery- {version} .js bezieht. Es gibt auch eine Datei, die mit dem Nuget-Paket im selben Verzeichnis namens jquery- {version} .intelliense.js installiert ist. Ich gehe davon aus, dass dies verwendet wird. Hoffentlich hilft das.

Noah Stahl
quelle