Vixen
dd8b0a81
csharp
public static class MarkupDiagnostics

Stable descriptors for everything VXML can complain about. VXML1xxx is syntax — what the lexer and parser report — and VXML2xxx is binding, which is everything structural the parser was happy to accept.

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

Remarks

There is deliberately no VXML3xxx range for type errors. Expressions reach the generated C# verbatim under a #line, so a mistyped one is reported by Roslyn against the .vxml line — a second, worse typechecker is exactly what this design exists to avoid.

Fields and properties (32)

  • public static readonly DiagnosticDescriptor SyntaxError

    The token stream did not match the grammar.

  • public static readonly DiagnosticDescriptor UnclosedElement

    An element was opened and the file ended, or an ancestor closed, before it did.

  • public static readonly DiagnosticDescriptor MismatchedEndTag

    A closing tag named something other than the element it closed.

  • public static readonly DiagnosticDescriptor ExpectedExpression

    An @ was followed by something that cannot start an expression.

  • public static readonly DiagnosticDescriptor UnbalancedDelimiter

    A brace, paren or bracket run reached the end of the file unbalanced.

  • public static readonly DiagnosticDescriptor UnclosedStyleBlock

    A <style> block reached the end of the file without </style>.

  • public static readonly DiagnosticDescriptor EmptyOutsideLoop

    An @empty arm that no @for body ended just before.

  • public static readonly DiagnosticDescriptor MissingComponentDirective

    The file has no @component header, so there is nothing to name the class.

  • public static readonly DiagnosticDescriptor DuplicateAttribute

    The same attribute was written twice on one tag.

  • public static readonly DiagnosticDescriptor ExpectedExpressionValue

    An event or binding attribute was given a literal instead of an expression.

  • public static readonly DiagnosticDescriptor MissingKey

    An element inside an @for body carries no key.

  • public static readonly DiagnosticDescriptor DuplicateSlot

    Two <slot>s claimed the same name.

  • public static readonly DiagnosticDescriptor UnknownAttributeDirective

    An attribute used a directive prefix VXML does not define.

  • public static readonly DiagnosticDescriptor UnknownEventModifier

    An event binding carried a modifier that means nothing.

  • public static readonly DiagnosticDescriptor InvalidParameterName

    A component parameter's name could not be a C# identifier.

  • public static readonly DiagnosticDescriptor EmptyComponent

    Content was found where a single root element was expected.

  • public static readonly DiagnosticDescriptor RefInLoop

    A ref was written inside an @for body.

  • public static readonly DiagnosticDescriptor ProjectedKey

    An @for key reads a member of the loop variable rather than the variable.

  • public static readonly DiagnosticDescriptor NamedSlotOnElement

    A named <slot> in a file that declared @inherits.

  • public static readonly DiagnosticDescriptor RefsOutsideLoop

    A refs was written outside an @for body.

  • public static readonly DiagnosticDescriptor TagOnElement

    A tag attribute on a lowercase tag.

  • public static readonly DiagnosticDescriptor MisplacedSelf

    <self /> somewhere other than the component's top level.

  • public static readonly DiagnosticDescriptor MisplacedSlotAttribute

    slot="…" on something that is not a direct child of a capitalised tag.

  • public static readonly DiagnosticDescriptor SlotFallbackContent

    Content written inside a <slot>, which nothing would ever draw.

  • public static readonly DiagnosticDescriptor DynamicSlotName

    A slot attribute whose value is an expression rather than one name.

  • public static readonly DiagnosticDescriptor AliasedStaticImport

    An @using static was also given an alias, which C# has no spelling for.

  • public static readonly DiagnosticDescriptor InertElementAttribute

    A capitalised attribute on a lowercase tag, which sets no property.

  • public static readonly DiagnosticDescriptor IncompleteProvide

    A <provide> missing the half that makes it mean anything.

  • public static readonly DiagnosticDescriptor InterpolatedProvideType

    A <provide type> written as an expression rather than as a type name.

  • public static readonly DiagnosticDescriptor ProvideContent

    A <provide> written with children, which nothing would build.

  • public static readonly DiagnosticDescriptor ExitOutsideLoop

    An exit was written outside an @for body.

  • public static readonly DiagnosticDescriptor InvalidExitDuration

    An exit whose value is not a duration.

Used by (3)

  • BinderVixen.Ui.Markup
  • VxmlLexerVixen.Ui.Markup
  • VxmlParserVixen.Ui.Markup