So informieren Sie die automatische Vervollständigung von WebStorm über WebGLRenderingContext

9

Ich arbeite an einem Projekt mit WebGL und verwende WebStorm für die Entwicklung.

Ein Problem mit dem Entwicklungsablauf ist, dass WebStorm Dinge im Zusammenhang mit WebGL nicht automatisch vervollständigen kann. Insbesondere, wenn ich einen Wert als vom Typ annotiereWebGLRenderingContext

/** @type {!WebGLRenderingContext} */
var gl;

WebStorm beschwert sich, dass WebGLRenderingContext eine ungelöste Variable ist. Außerdem beschwert es sich über die Verwendung von Methoden glund warnt davor, dass diese Methoden nicht gefunden werden können, sodass sie möglicherweise nicht vorhanden sind.

Meine aktuelle Problemumgehung (abgesehen vom Deaktivieren der Warnungen) besteht darin, einen Datensatztyp wie folgt anzugeben:

 * @type {{
 *   texParameteri: function,
 *   TEXTURE_WRAP_T: *,
 *   ...
 * }}
 var gl;

Aber natürlich ist es ein bisschen albern, jedes Mal, wenn ich einen Rendering-Kontext verwenden möchte, Dutzende und Dutzende standardisierter Mitglieder wie diese persönlich aufzulisten. Gibt es einen einfacheren Weg?

Craig Gidney
quelle
Warum ist es dumm? Sind die Dinge, die WebStorm erkennt, nicht auf die gleiche Weise mit Anmerkungen versehen? Sie sollten Ihre eigenen Anmerkungen neben denen hinzufügen, die mit der IDE geliefert werden.
Hey
@ Hey Es ist dumm in diesem Fall, weil ich es ineffizient und redundant mache. Diese Informationen sind bereits irgendwo da draußen und weitaus detaillierter (z. B. beachten Sie, dass ich keine Signaturen oder Pro-Parameter-Dokumente einbinde). Jemand hat die Auflistung bereits durchgeführt, daher ist es dumm von mir, auch die Auflistung durchzuführen.
Craig Gidney
Sie fragen sich also wirklich, wo Sie Anmerkungen finden, die bereits jemand anderes geschrieben hat, oder was?
Hey
@ Hey Das wäre akzeptabel. So funktioniert es bei einigen Bibliotheken (mit Anmerkungen in der Quelle). Die Tatsache, dass Webgl in Browsern integriert ist, macht es etwas anders, da die Dokumente keinen natürlichen externen Lebensraum haben.
Craig Gidney
Wahrscheinlich haben sie jedoch einen Platz zum Leben (überall dort, wo WebStorm die Anmerkungen für den Rest des integrierten Materials aufbewahrt). Was wirklich nützlich sein könnte, ist die Konvertierung von IDL in JS-Annotationen. Ich weiß nicht, ob so etwas existiert.
Hey

Antworten:

10

Sie müssen WebStorm über die WebGL-API informieren. Aktivieren Sie einfach die WebGL-Bibliothek unter Einstellungen | Sprachen & Frameworks | JavaScript | Bibliotheken.

Die Datei wird erstellt / geändert .idea/jsLibraryMappings.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="JavaScriptLibraryMappings">
    <includedPredefinedLibrary name="WebGL" />
  </component>
</project>

Siehe: http://blog.jetbrains.com/webstorm/2014/07/how-webstorm-works-completion-for-javascript-libraries/

Lena
quelle