ChangeLog
VSCode 扩展
DreamShaderLang VSCode 扩展版本更新记录。
这里记录 dreamshader-language-support 扩展的主要变化,按扩展仓库提交历史和扩展仓库 CHANGELOG.md 整理。
扩展仓库:
https://github.com/TypeDreamMoon/dreamshader-language-support
1.5.3 - 2026-06-06
材质预览
- 新增
DreamShaderLang: Show Material Preview命令,只对活动.dsm材质文件生效。 - 新增 VSCode Webview 预览面板,支持
sphere、plane和cubemesh 选择。 - 默认通过
127.0.0.1:17864本机 WebSocket 向 Unreal 发送previewMaterial请求,并接收预览结果和连续帧。 - WebSocket 不可用时会回退到文件桥,写入 request JSON 并读取
Saved/DreamShader/Bridge/preview.json与Preview/*.png。 - 新增
dreamshader.previewWebSocketPort、dreamshader.previewAutoRefreshDelayMs、dreamshader.previewTransport和dreamshader.previewLiveFrameRate设置。
1.5.2 - 2026-06-06
Callable Hover
- DreamShader 函数、UE builtin 和 Substrate helper 的 Hover 会显示返回值和输出 pin metadata。
- 补充
Substrate.ThinFilm等 helper 的输出 pin Hover,并保留旧 bridge manifest 的 fallback。
1.5.1 - 2026-06-06
Bridge、Package 与模板
- 新增
Templateblock 的解析、补全、格式化、语义 token 和语法高亮。 - 新增 DreamShader Bridge 命令、状态栏和诊断面板集成。
- 新增 Package 安装、浏览、更新、移除和 scaffold 命令。
- 新增命令面板创作模板:材质、函数文件、头文件、纹理采样和噪声材质。
- extension activation 模块拆分后恢复 CodeLens 与 Inlay Hint 注册。
- Unreal 更新
Saved/DreamShader/Bridge/diagnostics.json时会刷新 bridge 诊断。
1.4.9 - 2026-05-29
Function Builtins
- 新增统一的 Function builtin metadata,覆盖 HLSL 原生函数、GLSL 风格别名和 Unreal 纹理采样 helper。
- 补全、Hover、Signature Help、Inlay Hint、语义高亮和本地诊断白名单共享同一份 builtin 列表。
- README 和中文 README 记录支持的 Function builtin 列表。
1.4.8 - 2026-05-29
Layout 与 Region
- 新增
Layout = { Node(...); Comment(...); }section 的语言支持。 - 新增 Graph
#Region/#EndRegion解析、诊断、折叠、snippet 和高亮。 - snippets、templates、README、formatter、document symbols 和 semantic tokens 同步支持布局 metadata。
1.4.6 - 2026-05-22
Volume Texture
- 新增
VolumeTexture/Texture3D语言支持、高亮、补全、snippets 和诊断覆盖。
1.4.5 - 2026-05-18
MaterialExpression Fallback
- 从 language core 加载内置 MaterialExpression completions 作为强 fallback,即使 VSCode adapter services 没有提供项目 manifest,
UE.建议也能包含material-expressions.json条目。
1.4.4 - 2026-05-18
Reflected Expressions
- reflected
UE.MaterialExpression 补全改为插入UE.Expression(Class="...", ...)snippet,同时保持Abs、TextureSampleParameter2D等短 label。
1.4.3 - 2026-05-18
Manifest 配置
- 扩展内置 fallback
material-expressions.jsonmanifest,让没有自动识别 Unreal 项目时也能补全 reflectedUE.Expression(Class="...")。 - 新增
dreamshader.materialExpressionManifestPath,可显式指向生成的Saved/DreamShader/Bridge/material-expressions.json。 - 新增 manifest-backed reflected MaterialExpression class completion 的 language smoke test。
1.4.2 - 2026-05-10
MaterialExpression Metadata
- 语言 metadata 同步当前 DreamShader reflected MaterialExpression 支持。
- 新增 reflected texture sampler metadata 的补全、Hover、格式化和诊断,例如
SAMPLERTYPE_*、SSM_*、TMVM_*、TGM_*。 - 新增
UE.StaticComponentMaskParameter(...)、UE.CurveAtlasRowParameter(...)和 reflected TextureSample helper snippets。 - 修复 document-specific reflected UE expression manifest 的 inlay hint signature lookup。
1.4.1 - 2026-05-10
Dream Shader Function Files
- 新增
.dsf文件关联、命令面板模板创建、import 补全、可点击 import 和 workspace indexing。 .dsf诊断允许ShaderFunction、Function、GraphFunction、Namespace和VirtualFunction,并拒绝 material / layer 资产块。- 新增 statement-style 多输出
ShaderFunction/VirtualFunction调用的本地诊断。 - 保留显式 import 扩展名,
import "Functions/F_Tint.dsf";会按函数文件解析,不会改写成.dsh。
1.4.0 - 2026-05-10
Parser-based 语言服务
- 扩展版本更新到
1.4.0。 - 使用 scanner、parser、context、symbol、completion、diagnostic 和 provider 模块重写 DreamShaderLang 语言服务核心。
- completion、diagnostics、semantic tokens、folding 和 document symbols 改走新的 language core。
- 修复
Inputs、Graph、Function、Settings、Outputs和 metadata context 之间的大范围补全作用域串漏。 - 修复
Base.输出补全,应用BaseColor时不再插入Base.BaseColor。 - 新增 parser-based formatting、跨文件 import indexing 和函数循环检测。
- 恢复更深层本地诊断,覆盖 ShaderLayer / ShaderLayerBlend 形状、VirtualFunction options、Graph callable 参数数量、Graph out 变量和 MaterialAttributes 成员写入。
- 新增 Substrate / Strata 类型、语法、补全和诊断提示。
- 新增 section-aware completion 和 diagnostics 的 language smoke tests。
- README 改为英文主文档,并新增
README.zh-CN.md。
1.3.4 - 2026-05-10
模板与 Material Layer 关键字
- 更新内置模板和 snippets,生成更实用的项目级 DreamShader 骨架。
- Material Layer 语言支持和模板切换到推荐关键字
ShaderLayer/ShaderLayerBlend。 - 从 active keyword、syntax、completion、diagnostic 和 CodeLens 路径中移除
MaterialLayer/MaterialLayerBlend。
1.3.1 - 1.3.2 - 2026-05-09
GraphFunction
- 新增
GraphFunction语言支持,用于可调用UE.*节点并在调用点展开的复用 graph-node helper。 - 单输出
Function和GraphFunction调用可作为 Graph 值表达式参与本地诊断。 - 多输出
Function和GraphFunction仍使用显式 out 变量语法。 - 顶层 block 模板拆分到
templates.js;关键字补全只插入关键字,ShaderFunctionTemplate、GraphFunctionTemplate等条目展开完整模板。 - 新增 GraphFunction snippet、completion、hover、signature help、symbols、folding 和本地诊断。
- 新增本地诊断:普通 HLSL
Functionblock 内调用UE.*graph node 时提示改用GraphFunction。
1.3.0 - 2026-05-08
Material Layer
- 新增
MaterialLayer和MaterialLayerBlend语言支持、snippets、semantic tokens、folding、symbols、CodeLens、completion、hover、signature help 和本地诊断。 - 新增 Material Layer 输出形状和 Material Layer Blend
MaterialAttributes输入验证。 .dsm/.dsh诊断识别生成的 Material Layer 资产。- Material Layer snippets 改用显式
.rgb访问,让 alpha 仍可通过.a读取。
1.2.27 - 2026-05-08
Dynamic MaterialExpression Metadata
- 新增来自
Saved/DreamShader/Bridge/material-expressions.json的动态MaterialExpressioncompletion、hover 和 signature metadata。 - 新增泛型
UE.Expression(...)的Class="..."值补全,以及 shader outputExpression(...).Pin[n]binding 补全。 - 保留手写 UE builtin metadata 作为稳定覆盖项,同时合并 Unreal 反射 expression metadata。
1.2.26 - 2026-05-04
输出诊断同步
- 扩展版本更新到
1.2.26。 - 本地材质输出诊断同步 DreamShader 插件当前支持的
Base.*输出,覆盖Base.CustomizedUV0..7、Base.CustomizedUVs0..7、Custom Data、旧版 Color、Displacement、SurfaceThickness和 Moon Engine 编译目标下的MooaEncodedAttribute0..4。 - 表达式诊断现在接受
UE.CollectionParam(Collection=Path(...), ...)中的Path(...)helper,不再把它误报为未知函数。
1.2.25 - 2026-04-30
ShaderFunction Properties
- 新增
ShaderFunction.Propertiessection 的补全、诊断、符号列表和可见变量收集。 - 新增
constproperty 关键字 Hover、补全和constpropsnippet。 - ShaderFunction snippet 更新为
Properties+opt Texture2D Input = PreviewTex的预览默认值写法。
1.2.24 - 2026-04-30
MaterialAttributes
- 新增
MaterialAttributes图类型补全、Hover 和 snippets。 Attrs.BaseColor、Attrs.Roughness等 Material Attributes 成员支持补全。- 本地诊断会把
Attrs.Member = ...识别为成员写入,不再当作新变量名。 Outputs中新增Base.MaterialAttributes输出绑定支持。
1.2.23 - 2026-04-30
反射属性块
- 声明 metadata 解析和 snippets 更新为分号式
[...]反射属性块。 - 新增
TextureSampleParameter2D反射属性 snippet,覆盖 sampler、mip、coordinate 和 view mip bias 常用字段。 - 本地符号提取兼容历史逗号 metadata 和新的分号属性块。
1.2.22 - 2026-04-30
Parameter 与默认参数
- 补全、Hover、Signature Help 和 Snippet 支持显式 Parameter 节点、
StaticSwitchParameter、声明元数据和可选函数输入。 - 新增
UE.CollectionParam(...)与UE.StaticSwitchParameter(...)的语言服务支持。 - 本地诊断理解
ShaderFunction/VirtualFunction的opt输入和调用侧default参数。 - Inlay Hint 会显示更多参数和元数据信息,便于读复杂节点调用。
1.2.21 - 2026-04-29
Swizzle
- 支持
DebugFunction(...).rg这类链式调用后的 swizzle 诊断。 - Swizzle 补全和 Hover 支持 1 到 4 通道组合,包括重复通道,例如
.rrr、.ggg、.aaa、.rgaa、.rgbb。
1.2.20 - 2026-04-29
语言服务
- 新增 Semantic Tokens,让类型、变量、参数、材质输出和 UE builtin 调用有更稳定的语义高亮。
- 新增参数 Inlay Hint,用于 DreamShader
Function、ShaderFunction、VirtualFunction和UE.*调用。 - import 路径支持可点击文档链接,顶层块和 section 支持 folding range。
- Outline 视图会显示更细的顶层声明与 section 结构。
- 清理重复命令别名和历史 VSIX 构建产物。
1.2.19 - 2026-04-29
快捷入口
- 编辑器标题栏、视图标题栏和右键菜单命令改为使用 VSCode codicon 缩略图。
- CodeLens 操作从长文本改为更紧凑的图标入口。
1.2.18 - 2026-04-28
VirtualFunction
- 新增
VirtualFunction顶层声明的语法高亮、补全、Hover、Snippet、签名提示和本地诊断。 Graph中会把VirtualFunction作为可调用材质函数签名处理,支持Output/OutputName/OutputIndex。Options.Asset提供Path(Plugins.PluginName, "...")模板。Path(Plugin.)/Path(Plugins.)后会自动补全当前 Unreal 项目Plugins目录下带Content的插件名。
1.2.17 - 2026-04-28
Root 补全
Root="Plugins."作为兼容写法也支持项目内容插件名补全。Plugin.MoonToon与Plugins.MoonToon都会解析到同一个项目插件内容根。
1.2.16 - 2026-04-28
Root 补全
- 在
Root="Plugin."后自动补全当前 Unreal 项目Plugins目录下带Content的插件名。 - 补全结果会优先使用扩展配置里的
dreamshader.projectRoot,否则从当前.dsm/.dsh文件和工作区自动识别项目根。
1.2.15 - 2026-04-28
Root 文档
- 明确
Root="Plugin.PluginName"指向项目插件内容目录[Project]/Plugins/PluginName/Content。 - 示例说明
Shader(Name="Mat/Test", Root="Plugin.MoonToon")会生成/MoonToon/Mat/Test.Test。
1.2.14 - 2026-04-28
Root 支持
- 新增
Shader/ShaderFunction顶层Root属性的补全、Hover、Snippet 和语法高亮。 - 顶层 block 识别支持
Name出现在Root之后。
1.2.13 - 2026-04-26
自动发布
- 新增 GitHub Actions 自动发布流程。
- 推送到
main后,workflow 会读取package.json中的版本号,执行npm ci、node --check extension.js和npm run package。 - workflow 会创建或复用
vX.Y.Z标签,并把生成的dreamshaderlang-language-support-X.Y.Z.vsix上传到对应 GitHub Release。 - 支持手动触发 workflow,用于重新生成某个版本的发布包。
1.2.12 - 2026-04-26
控件与 Bridge 窗口
DreamShader Bridge从 Explorer 侧边栏迁移到 VSCode 底部 Panel,使用方式更接近“问题 / 输出”窗口。- 新增
Show Bridge Panel命令,状态栏点击后会打开 Bridge Panel。 - CodeLens 增加 Bridge 快捷入口,便于在源码顶部直接打开诊断窗口。
- Bridge 树节点增加更清晰的状态图标和右键打开操作。
- Package Store Webview 控件重新整理,加入统计、卡片 hover、焦点状态和更统一的按钮样式。
1.2.11 - 2026-04-26
Graph 体验
- 将
Shader/ShaderFunction的图构建区块语言服务从Code = { ... }更新到Graph = { ... }。 Graph支持基础if/else的本地解析、诊断和语句切分。Graph分支里的声明和 Functionout目标会参与可见符号收集,补全体验更接近真实写法。- snippets、内置模板、Hover、语法高亮和诊断文案统一使用
Graph。
1.2.10 - 2026-04-22
- 更新 DreamShaderLang 现代 Function 签名支持,围绕
in/out参数模型增强补全和诊断。 - 改进 Function 定义、调用和示例模板的语言服务表现。
1.2.9 - 2026-04-22
- 新增 Explorer 侧边栏
DreamShader Bridge视图,按项目、源文件和具体问题展示 Unreal 桥接诊断。 - 桥接诊断显示更多材质编译上下文,包括 stage、asset path、shader platform、quality level 和 raw detail。
- 新增
Refresh Bridge Diagnostics命令和 Bridge 视图标题栏操作。
1.2.8 - 2026-04-22
- 新增
Clean Generated Shaders命令,用于请求 Unreal 清理Intermediate/DreamShader/GeneratedShaders并触发全量重编。 - 在命令面板、编辑器标题栏和右键菜单中加入生成 shader 清理入口。
1.2.7 - 2026-04-22
- 新增 Function 调用图的本地循环诊断,包括
SelfContained通过 import 可达的递归调用。 - 加入状态栏项目提示、CodeLens 重编入口、编辑器标题栏和上下文菜单快捷操作。
- 新增
dreamshader.showStatusBar和dreamshader.enableCodeLens设置。
1.2.6 - 2026-04-22
- 支持
Function SelfContained Name(...) { ... }和Function Inline Name(...) { ... }。 - 更新补全、Hover、snippets 和语法高亮,以适配自包含 Function。
1.2.5 - 2026-04-22
- 扩展
Settings补全覆盖范围,包括 PostProcess、Refraction、WorldPositionOffset、Mobile、Nanite、Usage、Lightmass、Substrate、VirtualTexture 和 PixelDepthOffset 等材质分类。 Path(...)帮助文本扩展到 Settings 对象引用,例如 physical material 和 override asset。
1.2.4 - 2026-04-22
- 新增
TranslucencyLightingMode/LightingMode设置补全。 - 材质设置支持 Unreal 枚举显示名,例如
Surface ForwardShading,也兼容原始枚举名。
1.2.3 - 2026-04-22
- 修复 package uninstall,改为使用 lock 记录的安装路径。
- 新增
dreamshader.packageUninstall兼容命令。 - 修复只打开
ProjectName/DShader工作区时的 Unreal 桥接诊断发现和监听。 - 桥接诊断会从打开文档、活动编辑器和工作区推断 Unreal 项目根目录。
1.2.2 - 2026-04-22
- 支持逗号声明,例如
float i, d, s, t = UE.Time(), f = t + 1.0;。 - 本地诊断和可见符号追踪支持同一声明语句中后续变量引用前面的变量。
- 保留
Expression(...).Pin[n]输出绑定支持,并改进图代码解析。
1.2.1 - 2026-04-21
- 增加
Expression(...).Pin[n] = ...辅助材质输出绑定的本地验证。 - 为
ThinTranslucentMaterialOutput、TangentOutput等输出节点补充补全、snippet 和语法高亮。 - 内置模板和 snippets 统一使用
Base.*输出绑定。
1.2.0 - 2026-04-21
- 重构
UE.*内置节点元数据,让补全、Hover 和 Signature Help 共享同一套定义。 - 增加
TexCoord、Time、Panner、TransformVector、TransformPosition和Expression等节点 snippets。 Outputs补全支持Base.*材质属性和Expression(...).Pin[n]辅助输出节点。
1.1.0 - 2026-04-21
- 新增 DreamShader Package 管理命令和 Package Store Index 支持。
- 改进本地诊断、Function 跳转、References 和格式化。
- 扩展语言元数据和 VSIX 打包配置。
1.0.0 - 2026-04-21
- 初始 DreamShaderLang VSCode 扩展。
- 注册
.dsm材质文件和.dsh头文件语言。 - 支持
Function、Namespace、Namespace::Function和import。 - 提供语法高亮、补全、Hover、Signature Help、Go to Definition、Find References、格式化和本地诊断。
- 集成 Unreal 桥接重编命令和基础诊断回传。