Brainstorming benötigt. Ich habe ein Problem mit Javascript-Bibliotheken (jQuery, ExtJS usw.), die scheinbar nicht gut mit dem in Visual Studio 2008 integrierten Javascript-Intellisense zusammenarbeiten. Sie bieten bestimmte Hilfsfunktionen, die Intellisense nicht zu verstehen scheint.
Zum Beispiel ExtJS-Code
// Bequemlichkeitsfunktion zur Erstellung von Namespace-Objekt-Platzhaltern
Ext.namespace("Root.Sub.Subsub");
oder jQuery
// dasselbe mit jQuery machen
$.extend(window, {
Root: {
Sub: {
Subsub: {}
}
},
});
oder sogar (ich bedaure denjenigen, der diesen Code warten muss)
$.extend(window, { Root: {}});
$.extend(Root, { Sub: {}});
$.extend(Root.Sub, { Subsub: {}});
Das Endergebnis dieser Aufrufe ist im Grunde dasselbe. Keiner von ihnen würde dafür sorgen, dass der Root
-Namespace in Javascript-Intellisense in Visual Studio 2008 sichtbar wird. Wenn wir wüssten, wie Intellisense im Hintergrund funktioniert, könnten wir wahrscheinlich diese Situation überwinden.
Ist es möglich, Intellisense zu überzeugen, diese Namespaces anzuzeigen/zu erkennen, ohne Objekte direkt wie folgt zu schreiben:
Root = {
Sub: {
Subsub: {}
}
};
Ich gebe zu, dass der erste jQuery-Aufruf diesem hier recht ähnlich ist, aber es ist besser, die erweiterte Funktionalität zu verwenden, um das Entfernen/Überschreiben vorhandener Funktionalitäten/Namespaces zu verhindern.
Frage
Wie sollten wir diese Hilfsfunktionen verwenden, um Intellisense zum Laufen zu bringen?
Jede brainstorming-Antwort, die hier Licht ins Dunkel bringen könnte, ist willkommen?
Bearbeiten
Ich habe herausgefunden, dass mit den Hilfsfunktionen erstellte Namespaces angezeigt werden, wenn sie außerhalb definiert sind (zum Beispiel in einer anderen Skriptdatei) und Sie eine Referenz zu dieser Datei herstellen, wie folgt:
///
In diesem Fall ist alles in Ordnung. Aber wenn Sie Hilfsfunktionen im selben Skript aufrufen, werden sie nicht in der Intellisense-Auswahlliste aufgeführt.