Use this guide when AXSG behavior is wrong, slow, or inconsistent across build, runtime, hot reload, or editor tooling.
Release once before blaming the language service or hot reload.dotnet watch, reproduce with AXSG_HOTRELOAD_TRACE=1.bash ./check-docs.sh or pwsh ./check-docs.ps1 serially, not in parallel shells against the same output tree.Compiled binding ... requires x:DataType in scopeLikely causes:
x:DataTypeCheck:
x:DataType on the nearest binding scope$parent[...], $self, #name, or RelativeSource source expressionsRelevant docs:
BasedOn cycle diagnosticsIf a theme uses the same key as a base theme and BasedOn points to the same key, AXSG now treats that as the normal override pattern unless there is an actual earlier local cycle.
If you still see a cycle:
dotnet watchEmitDifference duplicate-key or duplicate-row crashesThese usually mean generated helper identities are unstable between edits.
Typical surfaces that can destabilize EnC:
Checklist:
objRelevant docs:
dotnet watch metadata-reference or named-pipe issuesCheck:
Runtime.Avalonia is not accidentally pulling incompatible compiler-only dependenciesFor iOS-specific workflows, use iOS Hot Reload.
Check:
MSBuildWorkspace initialization is happening eagerly because the server has already serviced a compilation-backed requestUseful actions:
AXSG answers inline code directly first and only falls back to projected C# providers when needed. If inline requests are still slow:
CSharp region and not plain XAML textAXSG differentiates several split-token surfaces:
pages:TypeName -> prefix vs type tokenWindow.IsVisible -> owner type vs property tokenToggleButton#ThemeToggle:checked -> type vs #name vs pseudoclass tokenIf navigation chooses the wrong side, reproduce with the exact cursor position because token-side behavior is deliberate and separately tested.
Check:
site/config.scriban bundle configurationsite/.lunet/includes/_builtins/bundle.sbn-htmlsite/.lunet/css/template-main.css.md linksUse:
bash ./check-docs.shpwsh ./check-docs.ps1Both scripts fail when generated output still contains raw .md article links.
AvaloniaEdit.* links are expected to resolve through the external Avalonia API site:
https://api-docs.avaloniaui.net/docs/AvaloniaEdit.TextEditor/https://api-docs.avaloniaui.net/docs/AvaloniaEdit.Document.TextDocument/If editor-package links regress:
site/config.scriban still maps the AvaloniaEdit assembly under external_apis./build-docs.sh or ./build-docs.ps1Do not add a docs-only project that merely references the package. Lunet documents the output assembly of the configured project, not arbitrary referenced package assemblies, so that approach does not generate AvaloniaEdit API pages.
Start with:
Start with:
Go to the generated API when you already know the subsystem and want member-level details.
Start with: