wgsl-analyzer 0.10.114
分类: 下载/工具 · 工具软件 | 来源: 点击进入 | 版本: 0.10.114 |
日期: 2025-05-31 | 人气: | 大小: |
标签: Web keybindings __ext_wast __ext_wgsl wgsl shading wa_syntax_tree |
wgsl-analyzer:WGSL着色语言的强大助手
wgsl-analyzer是一款专为WGSL着色语言设计的语言服务器插件,旨在提升开发者的编程体验。通过集成到您的开发环境中,wgsl-analyzer能够为您提供以下核心功能:
- 语法高亮:让您的代码更加清晰易读。
- 基本自动补全:加速您的代码编写过程。
- 类型检查:确保代码的正确性和健壮性。
- 跳转定义:快速定位到变量和函数的定义位置。
- 基本格式化:保持代码的整洁和一致性。
如果您有任何建议或发现bug,欢迎在我们的GitHub页面提出问题:https://github.com/wgsl-analyzer/wgsl-analyzer/issues。
配置指南
在您的vscode设置中,可以通过wgsl-analyzer部分进行以下配置:
自定义服务器路径
{
"wgsl-analyzer.server.path": "~/.cargo/bin/wgsl-analyzer"
}
自定义导入
wgsl-analyzer支持类似于Bevy Engine的着色器预处理器的#import指令。您可以在wgsl-analyzer.customImports部分定义自定义导入片段。
如果您提供的URL包含http、https或file协议,该资源将被下载并使用。请注意,这会延长LSP的启动时间,如果您注意到显著的延迟(扩展程序会在启动超过一秒时发出警告),请考虑将网络资源替换为文件URL或内联文本。
{
"wgsl-analyzer.customImports": {
"bevy_pbr::mesh_bindings": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/crates/bevy_pbr/src/render/mesh_bindings.wgsl",
"bevy_pbr::mesh_functions": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/crates/bevy_pbr/src/render/mesh_functions.wgsl"
}
}
对于Bevy版本0.15.2的导入列表如下:
通过以下命令生成:
rg define_import_path -g '*.wgsl' --sort path | sd '^([^:]*):#define_import_path (.*)' ' "$2": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/$1",' >> ~/source/wgsl-analyzer/output.txt
在Bevy文件夹内执行。
{
"wgsl-analyzer.customImports": {
"bevy_core_pipeline::fullscreen_vertex_shader": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/crates/bevy_core_pipeline/src/fullscreen_vertex_shader/fullscreen.wgsl",
"bevy_core_pipeline::oit": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/crates/bevy_core_pipeline/src/oit/oit_draw.wgsl",
"bevy_core_pipeline::post_processing::chromatic_aberration": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/crates/bevy_core_pipeline/src/post_process/chromatic_aberration.wgsl",
// ...(省略其他导入项)
"bevy_ui::ui_vertex_output": "https://raw.githubusercontent.com/bevyengine/bevy/refs/tags/v0.15.2/crates/bevy_ui/src/render/ui_vertex_output.wgsl"
}
}
为了更快的启动速度,您可以使用文件URL:
{
"wgsl-analyzer.customImports": {
"bevy_core_pipeline::fullscreen_vertex_shader": "file:///path/to/your/local/bevy/clone/crates/bevy_core_pipeline/src/fullscreen_vertex_shader/fullscreen.wgsl",
"bevy_core_pipeline::oit": "file:///path/to/your/local/bevy/clone/crates/bevy_core_pipeline/src/oit/oit_draw.wgsl",
"bevy_core_pipeline::post_processing::chromatic_aberration": "file:///path/to/your/local/bevy/clone/crates/bevy_core_pipeline/src/post_process/chromatic_aberration.wgsl",
// ...(省略其他导入项)
"bevy_ui::ui_vertex_output": "file:///path/to/your/local/bevy/clone/crates/bevy_ui/src/render/ui_vertex_output.wgsl"
}
}
预处理器定义
wgsl-analyzer支持类似于Bevy Engine的着色器预处理器的#ifdef、#ifndef、#else、#endif指令。
{
"wgsl-analyzer.preprocessor.shaderDefs": ["VERTEX_TANGENTS"]
}
诊断
wgsl-analyzer支持解析错误的诊断,并可选择性地(默认启用)支持类型错误和naga报告的验证错误。您还可以启用对naga解析错误的诊断。
{
"wgsl-analyzer.diagnostics.typeErrors": true,
"wgsl-analyzer.diagnostics.nagaParsing": false,
"wgsl-analyzer.diagnostics.nagaValidation": true,
"wgsl-analyzer.diagnostics.nagaVersion": "0.22" // 支持的版本之一或'main'
}
内联提示
wgsl-analyzer可以显示只读的虚拟文本片段,穿插在代码中,用于显示变量声明推断的类型或在调用点显示函数参数的名称。
{
"wgsl-analyzer.inlayHints.enabled": true,
"wgsl-analyzer.inlayHints.typeHints": true,
"wgsl-analyzer.inlayHints.parameterHints": true,
"wgsl-analyzer.inlayHints.structLayoutHints": false,
"wgsl-analyzer.inlayHints.typeVerbosity": "compact"
}
typeVerbosity参数可以是full、compact或inner,分别对应于:
var x: ref<function, f32, read_write> = 0.0;
var x: ref<f32> = 0.0;
var x: f32 = 0.0;
更多信息,请参考WGSL规范中的“Load Rule”。
通过wgsl-analyzer,您可以更高效地编写和优化WGSL着色语言代码,提升开发效率。
-
- Golang云原生架构师课程
- Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
- 204次学习
-
- MySQL数据管理之备份恢复案例解析视频教程
- 《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
- 163次学习
-
- MySQL索引优化解决方案
- 本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
- 182次学习
-
- 极客学院Docker视频教程
- Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
- 243次学习
-
- Golang进阶实战编程
- 本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
- 128次学习
-
- JavaScript极速入门
- 本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......
- 431次学习
-
- Golangmap实践及实现原理解析
- 2022-12-28 505浏览
-
- GoLand调式动态执行代码
- 2023-01-13 502浏览
-
- 试了下Golang实现try catch的方法
- 2022-12-27 502浏览
-
- 用Nginx反向代理部署go写的网站。
- 2023-01-17 502浏览
-
- MySQL主从切换的超详细步骤
- 2023-01-01 501浏览
-
- Mysql-普通索引的 change buffer
- 2023-01-25 501浏览