我有一个学校项目,我需要使用 WEBGL。但是如果没有自动完成,很难编写所有代码。我没有找到合适的扩展名。你有想法吗?
最佳答案
为了让 Visual Studio 代码自动完成,它需要知道变量的类型。
例如,如果你有这个
const gl = init();
VSCode 不知道变量 gl
是什么类型,所以它不能自动完成。但是你可以通过在它上面添加 JSDOC 样式的注释来告诉它类型
/** @type {WebGLRenderingContext} */
const gl = init();
现在它会自动完成
HTML 元素也是如此。如果你这样做
const canvas = document.querySelector('#mycanvas');
VSCode 不知道这是什么类型的元素,但你可以告诉它
/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');
现在它会知道它是一个 HTMLCanvasElement
而且,因为它知道它是一个 HTMLCanvasElement
它知道 .getContext('webgl')
返回一个 WebGLRenderingContext
所以它会自动提供上下文的自动完成
请注意,如果您再次将 Canvas 传递给某个函数,VSCode 不知道该函数返回什么。换句话说
/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');
const gl = someLibraryInitWebGL(canvas);
你不会再完成,因为 VSCode 不知道 someLibraryInitWebGL
返回什么,所以请遵循顶部的规则并告诉它。
/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');
/** @type {WebGLRenderingContext} */
const gl = someLibraryInitWebGL(canvas);
您可以查看其他 JSDOC 注释 here如果您想记录自己的函数,例如它们的参数和返回类型。
关于visual-studio-code - VS CODE 中的 WEBGL 自动补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61387725/