visual-studio-code - VS CODE 中的 WEBGL 自动补全

标签 visual-studio-code webgl

我有一个学校项目,我需要使用 WEBGL。但是如果没有自动完成,很难编写所有代码。我没有找到合适的扩展名。你有想法吗?

最佳答案

为了让 Visual Studio 代码自动完成,它需要知道变量的类型。

例如,如果你有这个

const gl = init();

VSCode 不知道变量 gl 是什么类型,所以它不能自动完成。但是你可以通过在它上面添加 JSDOC 样式的注释来告诉它类型

/** @type {WebGLRenderingContext} */
const gl = init();

现在它会自动完成

enter image description here

HTML 元素也是如此。如果你这样做

const canvas = document.querySelector('#mycanvas');

VSCode 不知道这是什么类型的元素,但你可以告诉它

/** @type {HTMLCanvasElement} */
const canvas = document.querySelector('#mycanvas');

现在它会知道它是一个 HTMLCanvasElement

enter image description here

而且,因为它知道它是一个 HTMLCanvasElement 它知道 .getContext('webgl') 返回一个 WebGLRenderingContext 所以它会自动提供上下文的自动完成

enter image description here

请注意,如果您再次将 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/

相关文章:

ios - Flutter 应用程序停留在物理 iPhone 的安装和启动步骤

go - 使用 go 模块后,IDE 无法跟踪我的代码

typescript - VSCode 运行 tsc 后不显示编译的 JS 文件

javascript - 录制录制/背景录制时, Canvas 不会重新粉刷(webGl)

javascript - 使用 Three.js 变形

javascript - ReactApp - 当我在 VS 代码编辑器中保存 js 文件中的更改时,浏览器不会刷新页面。

javascript - 如何获得符合框选择的值vscode

glsl - 如何在 WebGL 上使用 GLSL 从浮点中获取位

javascript - gl.texImage2D 适用于 Image,但不适用于 ImageData

glsl - gl_PointCoord 的精确坐标?