วิธีแจ้งการเติมข้อความอัตโนมัติของ 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
เฮ้

@ มันโง่ในกรณีนี้เพราะฉันทำมันไม่ได้ผลและซ้ำซ้อน ข้อมูลนั้นมีอยู่ที่ใดที่หนึ่งแล้วและมีรายละเอียดมากขึ้น (เช่นสังเกตว่าฉันไม่ได้รวมลายเซ็นหรือเอกสารต่อพารามิเตอร์) มีคนทำรายชื่อแล้วดังนั้นฉันจึงโง่ที่จะทำรายการนี้ด้วย
Craig Gidney

ดังนั้นคุณต้องถามว่าจะหาคำอธิบายประกอบที่คนอื่นเขียนไปแล้วหรืออะไร
เฮ้

@Hey นั่นจะเป็นที่ยอมรับ นั่นเป็นวิธีที่ใช้ได้กับบางไลบรารี (เมื่อมีคำอธิบายประกอบอยู่ในแหล่งที่มา) ความจริงที่ว่า webgl ถูกสร้างขึ้นในเบราว์เซอร์ทำให้เป็นกรณีที่แตกต่างกันเล็กน้อยเนื่องจากเอกสารไม่ได้มีที่อยู่ภายนอกที่เป็นธรรมชาติ
Craig Gidney

พวกเขาอาจมีสถานที่อยู่อาศัย แต่ (ที่ใดก็ตามที่ WebStorm เก็บบันทึกย่อสำหรับส่วนที่เหลือของสิ่งที่มีอยู่แล้ว) สิ่งที่อาจมีประโยชน์จริงๆคือการแปลง IDL เป็นหมายเหตุประกอบ JS ฉันไม่รู้ว่ามีอะไรอย่างนั้นอยู่อีกไหม
เฮ้

คำตอบ:


10

คุณต้องแจ้งให้ WebStorm ทราบเกี่ยวกับ WebGL API เพียงเปิดใช้งานไลบรารี 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-l ไลบรารี/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.