Jak poinformować autouzupełnianie WebStorm o WebGLRenderingContext

9

Pracuję nad projektem obejmującym WebGL i używam WebStorm do programowania.

Jednym z problemów z przepływem programowania jest to, że WebStorm nie jest w stanie automatycznie uzupełniać rzeczy związanych z WebGL. W szczególności, jeśli adnotuję wartość jako typWebGLRenderingContext

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

WebStorm skarży się, że WebGLRenderingContext jest nierozwiązaną zmienną. Skarży się również na użycie metod gl, ostrzegając, że nie może znaleźć tych metod, więc mogą one nie istnieć.

Moje obecne obejście (oprócz wyłączania ostrzeżeń) to określenie typu rekordu:

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

Ale oczywiście głupio jest osobiście wymieniać dziesiątki takich standardowych członków za każdym razem, gdy chcę użyć kontekstu renderowania. Czy istnieje prostszy sposób?

Craig Gidney
źródło
Dlaczego to jest głupie? Czy WebStorm rozpoznaje adnotacje w ten sam sposób? Powinieneś dodać własne adnotacje wraz z tymi, które są dostarczane z IDE.
Hej,
@ Hej W tym przypadku jest to głupie, ponieważ robię to nieefektywnie i zbędnie. Ta informacja już gdzieś tam jest i jest o wiele bardziej szczegółowa (np. Zauważ, że nie dołączam podpisów ani dokumentów dotyczących poszczególnych parametrów). Ktoś już zrobił listę, więc głupotą jest dla mnie, aby zrobić tę listę.
Craig Gidney
Więc naprawdę pytasz, gdzie znaleźć adnotacje, które ktoś już napisał, czy co?
Hej
@ Hej To byłoby do przyjęcia. Tak to działa w przypadku niektórych bibliotek (z adnotacjami znajdującymi się w źródle). Fakt, że webgl jest wbudowany w przeglądarki, sprawia, że ​​jest to nieco inny przypadek, ponieważ dokumenty nie mają naturalnego miejsca do życia.
Craig Gidney
Prawdopodobnie mają jednak miejsce do życia (gdziekolwiek WebStorm przechowuje adnotacje dla reszty wbudowanych rzeczy). To, co może być naprawdę przydatne, to konwersja IDL na adnotacje JS. Nie wiem czy coś takiego istnieje.
Hej,

Odpowiedzi:

10

musisz poinformować WebStorm o interfejsie API WebGL. Wystarczy włączyć bibliotekę WebGL w Ustawieniach | Języki i ramy | JavaScript | Biblioteki.

Stworzy / zmodyfikuje plik .idea/jsLibraryMappings.xml

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

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

Lena
źródło