[XAML/AXAML] Experimentally generate XSD from C# workspace
Opened this issue · 0 comments
This experiment is better suited for an XAML/AXAML-specific extension, but only one exists and it is specifically for NoesisGUI.
Why?
As it is, this extension's Avalonia schema is convenient, but comes with major drawbacks for both end-users and maintainers.
- Schema symbols are manually defined. This limits symbols to only those which are feasible to maintain long-term and are part of Avalonia's API. This excludes third-party Avalonia controls and add-ons. This also means the included XSD may be incompatible depending on the version of Avalonia targeted by a csproj.
- Schema symbols are manually updated. This also affects maintainability and project compatibility.
The current Avalonia completion source is outdated and partially incompatible with the latest major release of Avalonia: 11.0.0. This release included several breaking changes from the previous major release, 0.10.0. The AvaloniaUI organization provides a upgrade guide for API consumers.
How?
Generating XSD from C# workspace symbols will require either communicating with ms-dotnettools.csharp
and/or ms-dotnettools.csdevkit
or a first-party solution for analyzing the project's dependency tree for Avalonia assemblies and third-party Avalonia add-ons (those that depend on Avalonia).
Currently, I use Avant Garde's ability to export Avalonia's schema, but it's currently generated from the Avalonia version targeted by Avant Garde rather than the version targeted by the project project. This may be changed later.