Как сообщить автозаполнению WebStorm о WebGLRenderingContext

9

Я работаю над проектом с участием WebGL и использую WebStorm для разработки.

Одна из проблем, связанных с процессом разработки, заключается в том, что WebStorm не может автоматически завершать действия, связанные с WebGL. В частности, если я аннотирую значение как имеющее типWebGLRenderingContext

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

WebStorm жалуется, что WebGLRenderingContext является неразрешенной переменной. Также он жалуется на использование методов gl, предупреждая, что он не может найти эти методы, поэтому они могут не существовать.

Мой текущий обходной путь (помимо простого отключения предупреждений) - указать тип записи следующим образом:

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

Но, очевидно, немного глупо лично перечислять десятки и десятки стандартизированных членов, подобных этому, каждый раз, когда я хочу использовать контекст рендеринга. Есть ли более простой способ?

Крейг Гидни
источник
Почему это глупо? Разве вещи, которые распознает WebStorm, не аннотированы одинаково? Вы должны добавить свои собственные аннотации вместе с теми, которые поставляются вместе с IDE.
Привет
@ Эй, в данном случае это глупо, потому что я делаю это неэффективно и излишне. Эта информация уже где-то есть, и более подробно (например, обратите внимание, я не включаю подписи или документы по параметрам). Кто-то уже сделал листинг, поэтому глупо и мне заняться этим.
Крейг Гидни
То есть вы действительно спрашиваете, где найти аннотации, которые кто-то уже написал, или как?
Привет
@ Эй, это было бы приемлемо. Вот как это работает для некоторых библиотек (с аннотациями в источнике). Тот факт, что webgl встроен в браузеры, делает его несколько иным, так как документы не имеют естественного внешнего места для жизни.
Крейг Гидни
Тем не менее, им, вероятно, есть где жить (где WebStorm хранит аннотации для остальных встроенных компонентов). Что может быть действительно полезно, так это возможность конвертировать IDL в JS-аннотации. Я не знаю, существует ли что-нибудь подобное.
Привет

Ответы:

10

Вам нужно сообщить WebStorm об API WebGL. Просто включите библиотеку WebGL в настройках | Языки и рамки | JavaScript | Библиотеки.

Это создаст / изменит файл .idea/jsLibraryMappings.xml

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

Смотрите: http://blog.jetbrains.com/webstorm/2014/07/how-webstorm-works-completion-for-javascript-libraries/

Лена
источник