RazorDocument - [0..47)::47 - [LF@custom TSomething where TSomething : classLF]
    MarkupBlock - [0..47)::47
        MarkupTextLiteral - [0..2)::2 - [LF] - Gen<Markup> - SpanEditHandler;Accepts:Any
            NewLine;[LF];
        CSharpCodeBlock - [2..47)::45
            RazorDirective - [2..47)::45 - Directive:{custom;SingleLine;Unrestricted}
                CSharpTransition - [2..3)::1 - Gen<None> - SpanEditHandler;Accepts:None
                    Transition;[@];
                RazorDirectiveBody - [3..47)::44
                    RazorMetaCode - [3..9)::6 - Gen<None> - SpanEditHandler;Accepts:None
                        Identifier;[custom];
                    CSharpCodeBlock - [9..47)::38
                        CSharpStatementLiteral - [9..10)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:Whitespace
                            Whitespace;[ ];
                        CSharpStatementLiteral - [10..20)::10 - [TSomething] - Gen<DirectiveToken {;Member;Opt:False}> - DirectiveTokenEditHandler;Accepts:NonWhitespace
                            Identifier;[TSomething];
                        CSharpStatementLiteral - [20..21)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:Whitespace
                            Whitespace;[ ];
                        CSharpStatementLiteral - [21..45)::24 - [where TSomething : class] - Gen<DirectiveToken {name;GenericTypeConstraint;Opt:True}> - DirectiveTokenEditHandler;Accepts:NonWhitespace
                            Keyword;[where];
                            Whitespace;[ ];
                            Identifier;[TSomething];
                            Whitespace;[ ];
                            Colon;[:];
                            Whitespace;[ ];
                            Keyword;[class];
                        MarkupEphemeralTextLiteral - [45..47)::2 - [LF] - Gen<None> - SpanEditHandler;Accepts:Whitespace
                            NewLine;[LF];
        MarkupTextLiteral - [47..47)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
            Marker;[];
