Vixen
02b45cc4
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 (15)

  • 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 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.

Used by (3)

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