DreamShaderLang
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 预览面板,支持 sphereplanecube mesh 选择。
  • 默认通过 127.0.0.1:17864 本机 WebSocket 向 Unreal 发送 previewMaterial 请求,并接收预览结果和连续帧。
  • WebSocket 不可用时会回退到文件桥,写入 request JSON 并读取 Saved/DreamShader/Bridge/preview.jsonPreview/*.png
  • 新增 dreamshader.previewWebSocketPortdreamshader.previewAutoRefreshDelayMsdreamshader.previewTransportdreamshader.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 与模板

  • 新增 Template block 的解析、补全、格式化、语义 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,同时保持 AbsTextureSampleParameter2D 等短 label。

1.4.3 - 2026-05-18

Manifest 配置

  • 扩展内置 fallback material-expressions.json manifest,让没有自动识别 Unreal 项目时也能补全 reflected UE.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 诊断允许 ShaderFunctionFunctionGraphFunctionNamespaceVirtualFunction,并拒绝 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。
  • 修复 InputsGraphFunctionSettingsOutputs 和 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。
  • 单输出 FunctionGraphFunction 调用可作为 Graph 值表达式参与本地诊断。
  • 多输出 FunctionGraphFunction 仍使用显式 out 变量语法。
  • 顶层 block 模板拆分到 templates.js;关键字补全只插入关键字,ShaderFunctionTemplateGraphFunctionTemplate 等条目展开完整模板。
  • 新增 GraphFunction snippet、completion、hover、signature help、symbols、folding 和本地诊断。
  • 新增本地诊断:普通 HLSL Function block 内调用 UE.* graph node 时提示改用 GraphFunction

1.3.0 - 2026-05-08

Material Layer

  • 新增 MaterialLayerMaterialLayerBlend 语言支持、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 的动态 MaterialExpression completion、hover 和 signature metadata。
  • 新增泛型 UE.Expression(...)Class="..." 值补全,以及 shader output Expression(...).Pin[n] binding 补全。
  • 保留手写 UE builtin metadata 作为稳定覆盖项,同时合并 Unreal 反射 expression metadata。

1.2.26 - 2026-05-04

输出诊断同步

  • 扩展版本更新到 1.2.26
  • 本地材质输出诊断同步 DreamShader 插件当前支持的 Base.* 输出,覆盖 Base.CustomizedUV0..7Base.CustomizedUVs0..7、Custom Data、旧版 Color、DisplacementSurfaceThickness 和 Moon Engine 编译目标下的 MooaEncodedAttribute0..4
  • 表达式诊断现在接受 UE.CollectionParam(Collection=Path(...), ...) 中的 Path(...) helper,不再把它误报为未知函数。

1.2.25 - 2026-04-30

ShaderFunction Properties

  • 新增 ShaderFunction.Properties section 的补全、诊断、符号列表和可见变量收集。
  • 新增 const property 关键字 Hover、补全和 constprop snippet。
  • ShaderFunction snippet 更新为 Properties + opt Texture2D Input = PreviewTex 的预览默认值写法。

1.2.24 - 2026-04-30

MaterialAttributes

  • 新增 MaterialAttributes 图类型补全、Hover 和 snippets。
  • Attrs.BaseColorAttrs.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 / VirtualFunctionopt 输入和调用侧 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 FunctionShaderFunctionVirtualFunctionUE.* 调用。
  • 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.MoonToonPlugins.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 cinode --check extension.jsnpm 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 分支里的声明和 Function out 目标会参与可见符号收集,补全体验更接近真实写法。
  • 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.showStatusBardreamshader.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] = ... 辅助材质输出绑定的本地验证。
  • ThinTranslucentMaterialOutputTangentOutput 等输出节点补充补全、snippet 和语法高亮。
  • 内置模板和 snippets 统一使用 Base.* 输出绑定。

1.2.0 - 2026-04-21

  • 重构 UE.* 内置节点元数据,让补全、Hover 和 Signature Help 共享同一套定义。
  • 增加 TexCoordTimePannerTransformVectorTransformPositionExpression 等节点 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 头文件语言。
  • 支持 FunctionNamespaceNamespace::Functionimport
  • 提供语法高亮、补全、Hover、Signature Help、Go to Definition、Find References、格式化和本地诊断。
  • 集成 Unreal 桥接重编命令和基础诊断回传。

本页目录