ChangeLog
VSCode Extension
Release notes for the DreamShaderLang VSCode extension, taken from the extension repository.
The main changes in the dreamshader-language-support extension, compiled from the extension
repository's commit history and its own CHANGELOG.md.
Extension repository:
https://github.com/TypeDreamMoon/dreamshader-language-support
The extension ships on its own cadence and its version numbers are unrelated to the plugin's. For the Unreal plugin see DreamShader Plugin.
1.5.3 - 2026-06-06
Material Preview
- Added the
DreamShaderLang: Show Material Previewcommand, active only for a.dsmmaterial file. - Added a VSCode Webview preview panel with
sphere,planeandcubemesh selection. - Sends
previewMaterialrequests to Unreal over the local WebSocket on127.0.0.1:17864by default, and receives preview results and continuous frames. - Falls back to the file bridge when the WebSocket is unavailable: it writes the request JSON and
reads
Saved/DreamShader/Bridge/preview.jsonplusPreview/*.png. - Added the
dreamshader.previewWebSocketPort,dreamshader.previewAutoRefreshDelayMs,dreamshader.previewTransportanddreamshader.previewLiveFrameRatesettings.
1.5.2 - 2026-06-06
Callable Hover
- Hover on DreamShader functions, UE builtins and Substrate helpers shows return-value and output-pin metadata.
- Added output-pin hover for helpers such as
Substrate.ThinFilm, keeping a fallback for older bridge manifests.
1.5.1 - 2026-06-06
Bridge, Packages and Templates
- Added parsing, completion, formatting, semantic tokens and syntax highlighting for the
Templateblock. - Added DreamShader bridge commands, status bar and diagnostics panel integration.
- Added package install, browse, update, remove and scaffold commands.
- Added command-palette authoring templates: material, function file, header file, texture sampling and noise material.
- Restored CodeLens and Inlay Hint registration after the extension activation modules were split.
- Bridge diagnostics refresh when Unreal updates
Saved/DreamShader/Bridge/diagnostics.json.
1.4.9 - 2026-05-29
Function Builtins
- Added unified Function builtin metadata covering HLSL intrinsics, GLSL-style aliases and Unreal texture-sampling helpers.
- Completion, hover, signature help, inlay hints, semantic highlighting and the local diagnostic allowlist share one builtin list.
- The README and the Chinese README list the supported Function builtins.
1.4.8 - 2026-05-29
Layout and Region
- Added language support for the
Layout = { Node(...); Comment(...); }section. - Added parsing, diagnostics, folding, snippets and highlighting for Graph
#Region/#EndRegion. - Snippets, templates, README, formatter, document symbols and semantic tokens all understand the layout metadata.
1.4.6 - 2026-05-22
Volume Texture
- Added
VolumeTexture/Texture3Dlanguage support, highlighting, completion, snippets and diagnostic coverage.
1.4.5 - 2026-05-18
MaterialExpression Fallback
- Built-in MaterialExpression completions are loaded from the language core as a strong fallback, so
UE.suggestions includematerial-expressions.jsonentries even when the VSCode adapter services provide no project manifest.
1.4.4 - 2026-05-18
Reflected Expressions
- Reflected
UE.MaterialExpression completion inserts aUE.Expression(Class="...", ...)snippet while keeping short labels such asAbsandTextureSampleParameter2D.
1.4.3 - 2026-05-18
Manifest Configuration
- The extension bundles a fallback
material-expressions.jsonmanifest, so reflectedUE.Expression(Class="...")completion works even when no Unreal project is detected automatically. - Added
dreamshader.materialExpressionManifestPath, pointing explicitly at a generatedSaved/DreamShader/Bridge/material-expressions.json. - Added a language smoke test for manifest-backed reflected MaterialExpression class completion.
1.4.2 - 2026-05-10
MaterialExpression Metadata
- Language metadata synchronized with the reflected MaterialExpression support in the current DreamShader release.
- Added completion, hover, formatting and diagnostics for reflected texture sampler metadata such as
SAMPLERTYPE_*,SSM_*,TMVM_*andTGM_*. - Added
UE.StaticComponentMaskParameter(...),UE.CurveAtlasRowParameter(...)and reflected TextureSample helper snippets. - Fixed the inlay hint signature lookup for the document-specific reflected UE expression manifest.
1.4.1 - 2026-05-10
Dream Shader Function Files
- Added
.dsffile association, command-palette template creation, import completion, clickable imports and workspace indexing. .dsfdiagnostics allowShaderFunction,Function,GraphFunction,NamespaceandVirtualFunction, and reject material and layer asset blocks.- Added local diagnostics for statement-style multi-output
ShaderFunction/VirtualFunctioncalls. - Explicit import extensions are preserved:
import "Functions/F_Tint.dsf";resolves as a function file and is not rewritten to.dsh.
1.4.0 - 2026-05-10
Parser-based Language Service
- Extension version updated to
1.4.0. - Rewrote the DreamShaderLang language service core around scanner, parser, context, symbol, completion, diagnostic and provider modules.
- Completion, diagnostics, semantic tokens, folding and document symbols all route through the new language core.
- Fixed broad completion-scope leakage between the
Inputs,Graph,Function,Settings,Outputsand metadata contexts. - Fixed
Base.output completion so applyingBaseColorno longer insertsBase.BaseColor. - Added parser-based formatting, cross-file import indexing and function cycle detection.
- Restored deeper local diagnostics covering ShaderLayer / ShaderLayerBlend shape, VirtualFunction options, Graph callable argument counts, Graph out variables and MaterialAttributes member writes.
- Added Substrate / Strata types, syntax, completion and diagnostic hints.
- Added language smoke tests for section-aware completion and diagnostics.
- The README became the English primary document, with a new
README.zh-CN.md.
1.3.4 - 2026-05-10
Templates and Material Layer Keywords
- Updated the built-in templates and snippets to produce more usable project-level DreamShader skeletons.
- Material Layer language support and templates moved to the recommended
ShaderLayer/ShaderLayerBlendkeywords. - Removed
MaterialLayer/MaterialLayerBlendfrom the active keyword, syntax, completion, diagnostic and CodeLens paths.
1.3.1 - 1.3.2 - 2026-05-09
GraphFunction
- Added
GraphFunctionlanguage support for reusable graph-node helpers that callUE.*nodes and expand at the call site. - Single-output
FunctionandGraphFunctioncalls participate in local diagnostics as Graph value expressions. - Multi-output
FunctionandGraphFunctioncalls still use the explicit out-variable syntax. - Top-level block templates moved into
templates.js; keyword completion inserts only the keyword, while entries such asShaderFunctionTemplateandGraphFunctionTemplateexpand the full template. - Added GraphFunction snippets, completion, hover, signature help, symbols, folding and local diagnostics.
- Added a local diagnostic suggesting
GraphFunctionwhen a plain HLSLFunctionblock calls aUE.*graph node.
1.3.0 - 2026-05-08
Material Layer
- Added
MaterialLayerandMaterialLayerBlendlanguage support, snippets, semantic tokens, folding, symbols, CodeLens, completion, hover, signature help and local diagnostics. - Added Material Layer output-shape and Material Layer Blend
MaterialAttributesinput validation. .dsm/.dshdiagnostics recognize generated Material Layer assets.- Material Layer snippets use explicit
.rgbaccess, so alpha stays readable through.a.
1.2.27 - 2026-05-08
Dynamic MaterialExpression Metadata
- Added dynamic
MaterialExpressioncompletion, hover and signature metadata sourced fromSaved/DreamShader/Bridge/material-expressions.json. - Added
Class="..."value completion for the genericUE.Expression(...), and shader outputExpression(...).Pin[n]binding completion. - Hand-written UE builtin metadata is kept as a stable overlay and merged with the Unreal reflected expression metadata.
1.2.26 - 2026-05-04
Output Diagnostics Sync
- Extension version updated to
1.2.26. - Local material output diagnostics synchronized with the
Base.*outputs the plugin currently supports, coveringBase.CustomizedUV0..7,Base.CustomizedUVs0..7, Custom Data, the legacy Color outputs,Displacement,SurfaceThicknessand, on Moon Engine build targets,MooaEncodedAttribute0..4. - Expression diagnostics accept the
Path(...)helper insideUE.CollectionParam(Collection=Path(...), ...)instead of reporting it as an unknown function.
1.2.25 - 2026-04-30
ShaderFunction Properties
- Added completion, diagnostics, symbol listing and visible-variable collection for the
ShaderFunction.Propertiessection. - Added hover, completion and the
constpropsnippet for theconstproperty keyword. - The ShaderFunction snippet now uses the
Propertiesplusopt Texture2D Input = PreviewTexpreview-default form.
1.2.24 - 2026-04-30
MaterialAttributes
- Added
MaterialAttributesgraph type completion, hover and snippets. - Material Attributes members such as
Attrs.BaseColorandAttrs.Roughnessare completed. - Local diagnostics treat
Attrs.Member = ...as a member write rather than a new variable name. - Added
Base.MaterialAttributesoutput binding support inOutputs.
1.2.23 - 2026-04-30
Reflection Property Blocks
- Declaration metadata parsing and snippets moved to the semicolon-separated
[...]reflection property block. - Added a
TextureSampleParameter2Dreflection property snippet covering the common sampler, mip, coordinate and view mip bias fields. - Local symbol extraction accepts both the historical comma metadata and the new property block.
1.2.22 - 2026-04-30
Parameters and Default Arguments
- Completion, hover, signature help and snippets cover explicit parameter nodes,
StaticSwitchParameter, declaration metadata and optional function inputs. - Added language service support for
UE.CollectionParam(...)andUE.StaticSwitchParameter(...). - Local diagnostics understand
optinputs onShaderFunction/VirtualFunctionand the call-sidedefaultargument. - Inlay hints show more argument and metadata information, making complex node calls easier to read.
1.2.21 - 2026-04-29
Swizzle
- Supported swizzle diagnostics after a chained call, such as
DebugFunction(...).rg. - Swizzle completion and hover cover 1 to 4 channel combinations, including repeats such as
.rrr,.ggg,.aaa,.rgaaand.rgbb.
1.2.20 - 2026-04-29
Language Service
- Added semantic tokens, giving types, variables, parameters, material outputs and UE builtin calls more stable semantic highlighting.
- Added parameter inlay hints for DreamShader
Function,ShaderFunction,VirtualFunctionandUE.*calls. - Import paths carry clickable document links; top-level blocks and sections support folding ranges.
- The outline view shows finer top-level declaration and section structure.
- Cleaned up duplicate command aliases and historical VSIX build artifacts.
1.2.19 - 2026-04-29
Quick Actions
- Editor title bar, view title bar and context menu commands use VSCode codicon glyphs.
- CodeLens actions moved from long text to compact icon entries.
1.2.18 - 2026-04-28
VirtualFunction
- Added syntax highlighting, completion, hover, snippets, signature help and local diagnostics for
the top-level
VirtualFunctiondeclaration. GraphtreatsVirtualFunctionas a callable material function signature, supportingOutput/OutputName/OutputIndex.Options.Assetoffers aPath(Plugins.PluginName, "...")template.Path(Plugin.)/Path(Plugins.)complete the names of plugins with aContentdirectory under the current Unreal project'sPluginsfolder.
1.2.17 - 2026-04-28
Root Completion
Root="Plugins."is supported as a compatibility spelling for project content plugin name completion.Plugin.MoonToonandPlugins.MoonToonresolve to the same project plugin content root.
1.2.16 - 2026-04-28
Root Completion
- After
Root="Plugin.", completes the names of plugins with aContentdirectory under the current Unreal project'sPluginsfolder. - Completion prefers
dreamshader.projectRootfrom the extension settings, otherwise it detects the project root from the current.dsm/.dshfile and the workspace.
1.2.15 - 2026-04-28
Root Documentation
- Clarified that
Root="Plugin.PluginName"points at the project plugin content directory[Project]/Plugins/PluginName/Content. - Documented that
Shader(Name="Mat/Test", Root="Plugin.MoonToon")generates/MoonToon/Mat/Test.Test.
1.2.14 - 2026-04-28
Root Support
- Added completion, hover, snippets and syntax highlighting for the
Roottop-level attribute onShader/ShaderFunction. - Top-level block recognition accepts
Nameappearing afterRoot.
1.2.13 - 2026-04-26
Automatic Publishing
- Added an automatic GitHub Actions release workflow.
- On a push to
main, the workflow reads the version frompackage.jsonand runsnpm ci,node --check extension.jsandnpm run package. - The workflow creates or reuses the
vX.Y.Ztag and uploads the resultingdreamshaderlang-language-support-X.Y.Z.vsixto the matching GitHub Release. - Manual workflow dispatch is supported, for regenerating a release package for a given version.
1.2.12 - 2026-04-26
Widgets and the Bridge Panel
DreamShader Bridgemoved from the Explorer sidebar to the VSCode bottom panel, so it behaves like the Problems and Output windows.- Added the
Show Bridge Panelcommand; clicking the status bar item opens the Bridge panel. - CodeLens gained a Bridge shortcut, opening the diagnostics window straight from the top of a source file.
- Bridge tree nodes gained clearer status icons and a context-menu open action.
- Reorganized the Package Store Webview widgets with statistics, card hover, focus states and more consistent button styling.
1.2.11 - 2026-04-26
Graph Experience
- The language service for the
Shader/ShaderFunctiongraph-building block moved fromCode = { ... }toGraph = { ... }. Graphsupports local parsing, diagnostics and statement splitting for basicif/else.- Declarations inside
Graphbranches andFunctionouttargets participate in visible-symbol collection, so completion matches how the code is actually written. - Snippets, built-in templates, hover, syntax highlighting and diagnostic wording all use
Graph.
1.2.10 - 2026-04-22
- Updated support for modern DreamShaderLang
Functionsignatures, strengthening completion and diagnostics around thein/outparameter model. - Improved language service behavior for function definitions, calls and example templates.
1.2.9 - 2026-04-22
- Added the Explorer sidebar
DreamShader Bridgeview, presenting Unreal bridge diagnostics by project, source file and individual problem. - Bridge diagnostics show more material compile context: stage, asset path, shader platform, quality level and raw detail.
- Added the
Refresh Bridge Diagnosticscommand and Bridge view title-bar actions.
1.2.8 - 2026-04-22
- Added the
Clean Generated Shaderscommand, asking Unreal to cleanIntermediate/DreamShader/GeneratedShadersand trigger a full recompile. - Added generated-shader cleanup entries to the command palette, the editor title bar and the context menu.
1.2.7 - 2026-04-22
- Added local cycle diagnostics for the Function call graph, including recursive calls reachable
through
SelfContainedimports. - Added a status bar project indicator, a CodeLens recompile entry, and editor title-bar and context menu shortcuts.
- Added the
dreamshader.showStatusBaranddreamshader.enableCodeLenssettings.
1.2.6 - 2026-04-22
- Supported
Function SelfContained Name(...) { ... }andFunction Inline Name(...) { ... }. - Updated completion, hover, snippets and syntax highlighting for self-contained functions.
1.2.5 - 2026-04-22
- Widened
Settingscompletion coverage to material categories including PostProcess, Refraction, WorldPositionOffset, Mobile, Nanite, Usage, Lightmass, Substrate, VirtualTexture and PixelDepthOffset. - Extended the
Path(...)help text to Settings object references such as physical material and override assets.
1.2.4 - 2026-04-22
- Added
TranslucencyLightingMode/LightingModesettings completion. - Material settings accept Unreal enum display names such as
Surface ForwardShading, as well as the raw enum names.
1.2.3 - 2026-04-22
- Fixed package uninstall to use the install path recorded in the lock file.
- Added the
dreamshader.packageUninstallcompatibility command. - Fixed Unreal bridge diagnostic discovery and watching when only the
ProjectName/DShaderworkspace is open. - Bridge diagnostics infer the Unreal project root from open documents, the active editor and the workspace.
1.2.2 - 2026-04-22
- Supported comma declarations such as
float i, d, s, t = UE.Time(), f = t + 1.0;. - Local diagnostics and visible-symbol tracking allow later variables in one declaration statement to reference earlier ones.
- Kept
Expression(...).Pin[n]output binding support and improved graph code parsing.
1.2.1 - 2026-04-21
- Added local validation for the
Expression(...).Pin[n] = ...auxiliary material output binding. - Added completion, snippets and syntax highlighting for output nodes such as
ThinTranslucentMaterialOutputandTangentOutput. - Built-in templates and snippets standardized on
Base.*output bindings.
1.2.0 - 2026-04-21
- Reworked the
UE.*builtin node metadata so completion, hover and signature help share one definition set. - Added snippets for nodes such as
TexCoord,Time,Panner,TransformVector,TransformPositionandExpression. Outputscompletion coversBase.*material attributes and theExpression(...).Pin[n]auxiliary output nodes.
1.1.0 - 2026-04-21
- Added DreamShader package management commands and Package Store Index support.
- Improved local diagnostics, Function go-to-definition, find references and formatting.
- Extended the language metadata and the VSIX packaging configuration.
1.0.0 - 2026-04-21
- The initial DreamShaderLang VSCode extension.
- Registers the
.dsmmaterial and.dshheader file languages. - Supports
Function,Namespace,Namespace::Functionandimport. - Provides syntax highlighting, completion, hover, signature help, go to definition, find references, formatting and local diagnostics.
- Integrates the Unreal bridge recompile command and basic diagnostic feedback.