Compiler, source generation, and workspaces
Roslyn-first XAML
Make XAML compilation and editing one versioned, inspectable pipeline.
Explore source ↗Capability
One semantic XAML model powers compilation, diagnostics, editing, preview, reverse projection, and hot reload instead of treating each tool as a separate parser.
- 01
Lossless syntax, schema, and diagnostics
- 02
Typed bindings and construction IR
- 03
Incremental Roslyn source generation
- 04
Project watch, reverse projection, preview, and hot reload
How it composes
From intent
to working system.
Parse
A lossless lexer and parser preserve syntax, markup extensions, names, resources, and source coordinates.
Bind
Schema and Roslyn symbols resolve types, members, resources, data contexts, and typed binding paths.
Generate
Validated construction IR emits deterministic C# through incremental source generation or the CLI.
Round trip
Workspace services watch projects, project metadata, preview changes, reverse semantic edits, and coordinate hot reload.
Quick start
Adopt this
capability.
Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.
dotnet add package ProGPU.Xaml.SourceGenerator --prerelease<PackageReference Include="ProGPU.Xaml" Version="VERSION" /><PackageVersion Include="ProGPU.Xaml" Version="VERSION" /><Page x:Class="Sample.MainPage" x:DataType="vm:MainViewModel"> <TextBlock Text="{x:Bind Title}" /></Page>Modules in this capability
Use one layer.
Compose the rest.
Syntax, schema, binding, diagnostics, editing, formatting, serialization, and construction IR.
↗02ProGPU.Xaml.RoslynRoslyn symbol type system and structured C# emission.
↗03ProGPU.Xaml.SourceGeneratorIncremental compiler and transitive MSBuild integration.
↗04ProGPU.Xaml.WorkspacesWorkspace editing, project watch, previews, reverse projection, and metadata edit sessions.
↗05ProGPU.Xaml.CliStandalone compiler and Roslyn/MSBuild workspace command-line tool.
↗Source of truth
Read the module beside the complete system.
The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.