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?


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/

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.