DreamShaderLang
Ecosystem and Tools

Editor Support

VSCode and Rider language plugin support for DreamShaderLang.

DreamShaderLang has editor support for both VSCode and Rider. VSCode is the main extension documented here; Rider support is available through a separate JetBrains plugin repository.

Support Matrix

CapabilityVSCodeRider
File type recognitionyesyes
Syntax highlightingyesyes
Parser / PSI modelparser-based language serviceJetBrains PSI parser
Completionyesyes
Hoveryesyes
Go to definition / navigationyesyes
Diagnosticslocal + Unreal bridgesupported by plugin
Inlay hintsyesyes
Package commandsyesplugin-dependent
Templatesyesplugin-dependent

VSCode Extension

ItemValue
RepositoryTypeDreamMoon/dreamshader-language-support
Current documented version1.5.3
File types.dsm, .dsf, .dsh

VSCode Capability Overview

The VSCode extension provides:

AreaFeatures
EditingSyntax highlighting, semantic tokens, folding, document symbols.
IntelliSenseCompletion, hover, signature help, inlay hints.
NavigationGo to definition for symbols and imports.
DiagnosticsParser, scope, type, section, output, metadata, and bridge diagnostics.
CommandsRecompile current source, recompile all sources, material preview, package operations, templates.

VSCode Editing Experience

The extension uses a scanner / parser / context / symbol / provider architecture. This reduces scope leakage between Inputs, Graph, Function, Settings, Outputs, and metadata blocks. The 1.5.x line adds Template-block language support, bridge commands, package tooling, authoring templates, callable output hover metadata, and a .dsm material preview panel.

VSCode Local Diagnostics

Local diagnostics catch syntax, scope, type, section, import, and metadata problems before Unreal generation runs.

Unreal Bridge Diagnostics

The DreamShader plugin exports bridge metadata and diagnostics. The extension can read:

Saved/DreamShader/Bridge/material-expressions.json

This powers reflected UMaterialExpression completion, hover, and signature help. A built-in fallback manifest is used when project metadata is not available.

Material Preview

DreamShaderLang: Show Material Preview works on the active .dsm material file. The extension saves the current document, sends a previewMaterial request to Unreal, and renders the latest result in a VSCode Webview.

TransportBehavior
WebSocketDefault. Connects to 127.0.0.1:17864 for preview results and live frames.
File bridgeFallback or forced mode. Writes request files and reads Saved/DreamShader/Bridge/preview.json plus Preview/*.png.

The panel follows the active .dsm file, supports sphere / plane / cube preview meshes, and can auto-refresh after edits.

VSCode Common Commands

DreamShaderLang: Recompile Current Source
DreamShaderLang: Recompile All Sources
DreamShaderLang: Clean Generated Shaders
DreamShaderLang: Show Bridge Panel
DreamShaderLang: Show Material Preview

Package and template commands are also exposed under the DreamShaderLang command group.

VSCode Workspace Settings

Keep the workspace pointed at the Unreal project root so the extension can resolve:

PathUse
DShaderSource root.
DShader/PackagesInstalled packages.
Saved/DreamShader/BridgeUnreal bridge metadata.

Preview settings:

SettingDefaultUse
dreamshader.previewWebSocketPort17864Local Unreal preview WebSocket port.
dreamshader.previewAutoRefreshDelayMs1200Delay before saving and refreshing after edits.
dreamshader.previewTransportwebsocketUse WebSocket or force file bridge requests.
dreamshader.previewLiveFrameRate2Maximum streamed preview FPS; set 0 to disable continuous frames.

Rider Plugin

ItemValue
Repositorytsdaer/dreamshader-language-support
RoleJetBrains Rider language support for DreamShaderLang.
FeaturesFile type support, PSI parser, highlighting, completion, navigation, diagnostics, and inlay hints.

Use the Rider plugin when your Unreal workflow is centered on JetBrains tools.

WorkflowRecommendation
Authoring and refactoring language filesUse VSCode or Rider language support.
Validating generated assetsInspect Unreal Editor and Output Log.
Working with reflected nodesRefresh DreamShader bridge metadata after plugin or engine changes.
Team package workflowsKeep package manifests and source files in source control.

On this page