Vixen
02b45cc4
csharp
public sealed class SelectorCompiler

Turns ExCSS's selector tree into the flat form the matcher runs.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

A visitor rather than a parser, which is the whole of what ADR-009 buys by taking the dependency — and which was verified against the library before this was written ([the spike](../../docs/plan/spikes/vcss-excss/RESULT.md)).

A selector using something Vixen does not support is dropped with a diagnostic rather than approximated. A rule that silently matches more than it says is worse than a rule that does not load: the first produces a UI that is subtly wrong everywhere the author did not look, and the second produces a message.

Fields and properties (1)

  • public IReadOnlyList<SelectorDiagnostic> Diagnostics

    Everything that could not be compiled, and why.

Methods (2)

  • public SelectorCompiler(SelectorTable table, NameTable names)

    Turns ExCSS's selector tree into the flat form the matcher runs.

  • public void Compile(ISelector selector, List<Selector> compiled)

    Compiles one ExCSS selector, splitting a list into its parts.

Used by (6)

  • HotReloadHostVixen.Ui.HotReload
  • SelectorMatchingTestsVixen.Ui.Styling.Tests
  • SelectorQueryVixen.Ui.Testing
  • StyleEngineVixen.Ui.Styling
  • StyleFixtureVixen.Ui.Styling.Tests
  • StyleSheetLoaderVixen.Ui.Styling