Comment informer la saisie semi-automatique de WebStorm de WebGLRenderingContext

9

Je travaille sur un projet impliquant WebGL et j'utilise WebStorm pour faire le développement.

Un problème avec le flux de développement est que WebStorm n'est pas en mesure de compléter automatiquement les éléments liés à WebGL. En particulier, si j'annote une valeur comme étant de typeWebGLRenderingContext

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

WebStorm se plaint que WebGLRenderingContext est une variable non résolue. De plus, il se plaint de l'utilisation des méthodes gl, avertissant qu'il ne peut pas trouver ces méthodes et qu'elles peuvent donc ne pas exister.

Ma solution de contournement actuelle (en plus de simplement désactiver les avertissements) consiste à spécifier un type d'enregistrement comme ceci:

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

Mais évidemment, c'est un peu idiot de lister personnellement des dizaines et des dizaines de membres normalisés comme celui-ci chaque fois que je veux utiliser un contexte de rendu. Existe-t-il un moyen plus simple?

Craig Gidney
la source
Pourquoi est-ce idiot? Les choses reconnues par WebStorm ne sont-elles pas annotées de la même manière? Vous devriez être d'ajouter vos propres annotations à côté de celles qui sont livrées avec l'IDE.
Hey
@Hey C'est idiot dans ce cas parce que je le fais de manière inefficace et redondante. Ces informations sont déjà disponibles quelque part, et de manière beaucoup plus détaillée (par exemple, je n'inclus pas de signatures ou de documents par paramètre). Quelqu'un a déjà fait l'inscription, il est donc stupide pour moi de faire également l'annonce.
Craig Gidney
Vous demandez donc vraiment où trouver les annotations que quelqu'un d'autre a déjà écrites, ou quoi?
Hey
@Hey Ce serait acceptable. C'est ainsi que cela fonctionne pour certaines bibliothèques (avec des annotations dans la source). Le fait que webgl soit intégré aux navigateurs en fait un cas un peu différent, dans la mesure où les documents n'ont pas d'espace externe naturel pour vivre.
Craig Gidney
Cependant, ils ont probablement un endroit où vivre (partout où WebStorm conserve les annotations pour le reste des éléments intégrés). Ce qui pourrait vraiment être utile, c'est de convertir les annotations IDL en JS. Je ne sais pas si quelque chose comme ça existe.
Hey

Réponses:

10

vous devez informer WebStorm de l'API WebGL. Activez simplement la bibliothèque WebGL dans Paramètres | Langues et cadres | JavaScript | Bibliothèques.

Il va créer / modifier le fichier .idea/jsLibraryMappings.xml

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

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

lena
la source