Como informar o preenchimento automático do WebStorm sobre o WebGLRenderingContext

9

Estou trabalhando em um projeto envolvendo o WebGL e usando o WebStorm para fazer o desenvolvimento.

Um problema com o fluxo de desenvolvimento é que o WebStorm não é capaz de completar automaticamente coisas relacionadas ao WebGL. Em particular, se eu anotar um valor como sendo do tipoWebGLRenderingContext

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

O WebStorm reclama que WebGLRenderingContext é uma variável não resolvida. Também reclama sobre o uso de métodos gl, avisando que não consegue encontrar esses métodos e, portanto, eles podem não existir.

Minha solução atual (além de desativar os avisos) é especificar um tipo de registro como este:

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

Mas, obviamente, é um pouco tolo listar pessoalmente dezenas e dezenas de membros padronizados como esse toda vez que eu quero usar um contexto de renderização. Existe uma maneira mais fácil?

Craig Gidney
fonte
Por que é bobo? As coisas que o WebStorm reconhece não são anotadas da mesma maneira? Você deve adicionar suas próprias anotações juntamente com as que acompanham o IDE.
Ei
@ Hey É bobagem neste caso, porque eu estou fazendo isso de forma ineficiente e redundante. Essas informações já estão disponíveis em algum lugar e com muito mais detalhes (por exemplo, observe que não estou incluindo assinaturas ou documentos por parâmetro). Alguém já fez a listagem, por isso é tolice eu também fazer a listagem.
Craig Gidney
Então você está realmente perguntando onde encontrar anotações que alguém já escreveu, ou o quê?
Ei
@ Hey Isso seria aceitável. É assim que funciona para algumas bibliotecas (com anotações na fonte). O fato de o webgl ser incorporado aos navegadores torna um caso um pouco diferente, pois os documentos não têm um local externo natural para morar.
Craig Gidney
No entanto, eles provavelmente têm um lugar para morar (onde quer que o WebStorm mantenha as anotações para o restante do material interno). O que pode realmente ser útil é converter as anotações IDL para JS. Não sei se existe algo assim.
Ei

Respostas:

10

você precisa informar ao WebStorm sobre a API WebGL. Basta ativar a biblioteca WebGL em Configurações | Idiomas e estruturas | JavaScript | Bibliotecas.

Isso criará / modificará o arquivo .idea/jsLibraryMappings.xml

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

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

Lena
fonte