1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
<Comment>// TypeScript React</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>/** </Comment><Tags>@author</Tags><Comment> Willy </Comment><HTML Tag><willy@wmail.com></HTML Tag><br/>
<Comment> * </Comment><Custom Tags>@url</Custom Tags><Comment> https://reactjs.org/ **/</Comment><br/>
<Normal Text></Normal Text><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>React </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>'react'</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>{ </Normal Text><Normal Text>PhotoStory</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>VideoStory </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>'./stories'</String><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>Story</Function Declaration><Normal Text>(</Normal Text><Normal Text>props</Normal Text><Normal Text>) </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>SpecificStory </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>components</Normal Text><Normal Text>[</Normal Text><Objects>props</Objects><Symbol>.</Symbol><Object Member>storyType</Object Member><Normal Text>]</Normal Text><Symbol>;</Symbol><br/>
<Normal Text> </Normal Text><ControlFlow>return </ControlFlow><Component Tag><SpecificStory</Component Tag><Normal Text> </Normal Text><Attribute>story</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Objects>props</Objects><Symbol>.</Symbol><Object Member>story</Object Member><Normal Text> </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>attr2</Attribute><Symbol>=</Symbol><Value>"</Value><EntityRef>&ref;</EntityRef><Value>"</Value><Normal Text> </Normal Text><Attribute>attr3</Attribute><Symbol>=</Symbol><Value>"Hello\n"</Value><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><br/>
<Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Attribute>attr1</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Reserved>class</Reserved><Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> </Normal Text><Hexadecimal>0x123</Hexadecimal><Normal Text> </Normal Text><Normal Text>{ } </Normal Text><Symbol>&</Symbol><Normal Text>noRef</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Function Name>hello</Function Name><Normal Text>() </Normal Text><Objects>React</Objects><Symbol>.</Symbol><Function Name>Component</Function Name><Normal Text>() </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>attr2</Attribute><Symbol>=</Symbol><Value>"</Value><EntityRef>&ref;</EntityRef><Value>"</Value><Component Tag>></Component Tag><br/>
<Tag Content Text> /* no comment*/ function </Tag Content Text><Element Tag><tag/></Element Tag><Tag Content Text> return class var 0x123 </Tag Content Text><EntityRef>&ref;</EntityRef><Tag Content Text> hello() React.Component()</Tag Content Text><br/>
<Tag Content Text> .</Tag Content Text><Element Tag><tag/></Element Tag><Tag Content Text> anyWord </Tag Content Text><Element Tag><tag/></Element Tag><br/>
<Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>tag</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Reserved>class</Reserved><Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> </Normal Text><Hexadecimal>0x123</Hexadecimal><Normal Text> </Normal Text><Function Name>hello</Function Name><Normal Text>() </Normal Text><Objects>React</Objects><Symbol>.</Symbol><Function Name>Component</Function Name><Normal Text>() </Normal Text><Code Brackets>}</Code Brackets><br/>
<Component Tag></Tag></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Element Tag><tag1></Element Tag><Tag Content Text> </Tag Content Text><Element Tag></tag1></Element Tag><br/>
<Element Tag><tag1></Element Tag><Tag Content Text> </Tag Content Text><Element Tag></</Element Tag><Error>Tag$</Error><Element Tag>></Element Tag><br/>
<Component Tag><Tag$></Component Tag><Tag Content Text> </Tag Content Text><Component Tag></tag></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Element Tag><tag</Element Tag><Comment>/*comment*/</Comment><Attribute>attr1</Attribute><Comment>/*comment*/</Comment><Symbol>=</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Value>"value"</Value><Comment>/*comment*/</Comment><Attribute>attr2</Attribute><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Attribute>attr3</Attribute><Symbol>=</Symbol><Value>'a'</Value><Normal Text> </Normal Text><Attribute>key</Attribute><Comment>/*comment*/</Comment><Attribute>key2</Attribute><Normal Text> </Normal Text><Element Tag>/></Element Tag><br/>
<Normal Text></Normal Text><br/>
<Comment>// Detect Valid tags</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>/* comment */</Comment><Normal Text> </Normal Text><Element Tag><tag></tag></Element Tag><br/>
<Normal Text>{ </Normal Text><Comment>/* comment</Comment><br/>
<Comment> */</Comment><Normal Text> </Normal Text><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Normal Text> </Normal Text><Normal Text>word </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> } </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<ControlFlow>return </ControlFlow><Comment>/* comment</Comment><br/>
<Comment> multiline */</Comment><Normal Text> </Normal Text><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Comment>/* comment */</Comment><Normal Text> </Normal Text><Component Tag><Tag/></Component Tag><br/>
<Symbol>&& </Symbol><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Component Tag><Tag/></Component Tag><br/>
<Symbol>&</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text> </Normal Text><Element Tag><tag/></Element Tag><br/>
<Normal Text>{ </Normal Text><Element Tag><hello></Element Tag><Tag Content Text>Hello</Tag Content Text><Element Tag></hello></Element Tag><Normal Text> }</Normal Text><br/>
<Symbol>?</Symbol><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Normal Text>[ </Normal Text><Element Tag><tag</Element Tag><Normal Text> </Normal Text><Element Tag>/></Element Tag><Normal Text> ( </Normal Text><Element Tag><tag</Element Tag><Normal Text> </Normal Text><Element Tag>/></Element Tag><br/>
<Symbol>,</Symbol><Component Tag><Tag/></Component Tag><Normal Text> </Normal Text><Symbol>=</Symbol><Component Tag><Tag/></Component Tag><br/>
<Symbol>&&</Symbol><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Symbol>||</Symbol><Element Tag><tag/></Element Tag><br/>
<ControlFlow>return </ControlFlow><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Symbol>;</Symbol><br/>
<Module>default</Module><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Symbol>;</Symbol><br/>
<Component Tag><Tag></Component Tag><Tag Content Text> </Tag Content Text><Element Tag><tag></Element Tag><Tag Content Text> </Tag Content Text><Component Tag><tag$/></Component Tag><Tag Content Text> </Tag Content Text><Element Tag></tag></Element Tag><Tag Content Text> return </Tag Content Text><Component Tag></Tag></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Normal Text>anyWord</Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>></Symbol><br/>
<Normal Text>anyWord</Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Symbol>.</Symbol><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>></Symbol><br/>
<Symbol>&</Symbol><Symbol><</Symbol><Normal Text>notag</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Symbol>%</Symbol><Normal Text> </Normal Text><Comment>/* comment*/</Comment><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// </Comment><Alert Level 2>TODO</Alert Level 2><Comment>: Fix this (comment before the tag name):</Comment><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Comment>/**/</Comment><Normal Text>div</Normal Text><Symbol>></</Symbol><Normal Text>div</Normal Text><Symbol>>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Tag after ":"</Comment><br/>
<Parameter>annotation</Parameter><Symbol>: </Symbol><Element Tag><tag/></Element Tag><br/>
<Parameter>annotation</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>text </Normal Text><Normal Text>[ </Normal Text><Element Tag><tag/></Element Tag><Normal Text> ]</Normal Text><br/>
<Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><String>"hello"</String><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Type assertion in tag</Comment><br/>
<Component Tag><C</Component Tag><Symbol><</Symbol><Component Tag>number</Component Tag><Symbol>></Symbol><Component Tag>/></Component Tag><br/>
<Component Tag><C</Component Tag><Symbol><</Symbol><Component Tag>number</Component Tag><Symbol>></Symbol><Component Tag>></Component Tag><Tag Content Text> </Tag Content Text><Component Tag></C></Component Tag><br/>
<Component Tag><C</Component Tag><br/>
<Error><error</Error><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Comment>// Non-ASCII tag name & attribute</Comment><br/>
<Component Tag><日本語></日本語></Component Tag><Symbol>;</Symbol><br/>
<Component Tag><Component</Component Tag><Normal Text> </Normal Text><Attribute>本本:本-本</Attribute><Normal Text> </Normal Text><Attribute>aa本:本</Attribute><Normal Text> </Normal Text><Attribute>aa:aa</Attribute><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Component Tag><aaaa:ñ</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Component Tag><Namespace.DeepNamespace.Component</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Component Tag><Component</Component Tag><Normal Text> </Normal Text><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Symbol>...</Symbol><Normal Text> </Normal Text><Normal Text>x </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>y</Attribute><br/>
<Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>2</Decimal><Normal Text> </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>z</Attribute><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k1 </Normal Text><Symbol>=</Symbol><br/>
<Normal Text> </Normal Text><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Normal Text> </Normal Text><Code Brackets>{</Code Brackets><Symbol>...</Symbol><Normal Text>o</Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Component Tag>></Component Tag><br/>
<Tag Content Text> hi hi hi!</Tag Content Text><br/>
<Tag Content Text> </Tag Content Text><Component Tag></Comp></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k2 </Normal Text><Symbol>=</Symbol><br/>
<Normal Text> </Normal Text><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><br/>
<Tag Content Text> </Tag Content Text><Element Tag><div></Element Tag><Tag Content Text> My Div </Tag Content Text><Element Tag></div></Element Tag><br/>
<Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text>(</Normal Text><Parameter>name</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>) </Normal Text><Special Operators>=> </Special Operators><Element Tag><div></Element Tag><Tag Content Text> My name </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text>name</Normal Text><Code Brackets>}</Code Brackets><Tag Content Text> </Tag Content Text><Element Tag></div></Element Tag><Code Brackets>}</Code Brackets><br/>
<Tag Content Text> </Tag Content Text><Component Tag></Comp></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k3 </Normal Text><Symbol>= </Symbol><Component Tag><GenericComponent</Component Tag><Normal Text> </Normal Text><Attribute>initialValues</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text>{ </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><String>"y"</String><Normal Text> </Normal Text><Normal Text>}</Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>nextValues</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text>a </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>(</Normal Text><Normal Text>{ </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Objects>a</Objects><Symbol>.</Symbol><Object Member>x</Object Member><Normal Text> </Normal Text><Normal Text>}</Normal Text><Normal Text>)</Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// No Error</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// OK</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k1 </Normal Text><Symbol>= </Symbol><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Comp></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k2 </Normal Text><Symbol>= </Symbol><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Element Tag></></Element Tag><Component Tag><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Comp></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k3 </Normal Text><Symbol>= </Symbol><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Element Tag></></Element Tag><Component Tag></Comp></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k4 </Normal Text><Symbol>= </Symbol><Component Tag><SingleChildComp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Element Tag></></Element Tag><Component Tag></SingleChildComp></Component Tag><Symbol>;</Symbol><br/>
<Comment>// OK</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k1 </Normal Text><Symbol>= </Symbol><Element Tag><div></Element Tag><Tag Content Text> </Tag Content Text><Element Tag><h2></Element Tag><Tag Content Text> Hello </Tag Content Text><Element Tag></h2></Element Tag><Tag Content Text> </Tag Content Text><Element Tag><h1></Element Tag><Tag Content Text> world </Tag Content Text><Element Tag></h1></div></Element Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k2 </Normal Text><Symbol>= </Symbol><Element Tag><div></Element Tag><Tag Content Text> </Tag Content Text><Element Tag><h2></Element Tag><Tag Content Text> Hello </Tag Content Text><Element Tag></h2></Element Tag><Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text>(</Normal Text><Parameter>user</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>any</Types><Normal Text>) </Normal Text><Special Operators>=> </Special Operators><Element Tag><h2></Element Tag><Code Brackets>{</Code Brackets><Objects>user</Objects><Symbol>.</Symbol><Object Member>name</Object Member><Code Brackets>}</Code Brackets><Element Tag></h2></Element Tag><Code Brackets>}</Code Brackets><Element Tag></div></Element Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k3 </Normal Text><Symbol>= </Symbol><Element Tag><div></Element Tag><Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><Decimal>1</Decimal><Code Brackets>}</Code Brackets><Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><String>"That is a number"</String><Code Brackets>}</Code Brackets><Tag Content Text> </Tag Content Text><Element Tag></div></Element Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k4 </Normal Text><Symbol>= </Symbol><Component Tag><Button></Component Tag><Tag Content Text> </Tag Content Text><Element Tag><h2></Element Tag><Tag Content Text> Hello </Tag Content Text><Element Tag></h2></Element Tag><Tag Content Text> </Tag Content Text><Component Tag></Button></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Empty tags</Comment><br/>
<Normal Text>hello</Normal Text><Symbol><></Symbol><br/>
<Normal Text>hello</Normal Text><Symbol><</Symbol><Types>string</Types><Symbol>></Symbol><br/>
<Normal Text></Normal Text><br/>
<Element Tag><></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// no whitespace</Comment><br/>
<Element Tag>< ></ ></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// lots of whitespace</Comment><br/>
<Symbol><</Symbol><Normal Text> </Normal Text><Comment>/*starting wrap*/</Comment><Normal Text> </Normal Text><Symbol>></</Symbol><Normal Text> </Normal Text><Comment>/*ending wrap*/</Comment><Symbol>>;</Symbol><Normal Text> </Normal Text><Comment>// comments in the tags</Comment><br/>
<Element Tag><></Element Tag><Tag Content Text>hi</Tag Content Text><Element Tag></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// text inside</Comment><br/>
<Element Tag><><span></Element Tag><Tag Content Text>hi</Tag Content Text><Element Tag></span><div></Element Tag><Tag Content Text>bye</Tag Content Text><Element Tag></div></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// children</Comment><br/>
<Element Tag><><span></Element Tag><Tag Content Text>1</Tag Content Text><Element Tag></span><><span></Element Tag><Tag Content Text>2.1</Tag Content Text><Element Tag></span><span></Element Tag><Tag Content Text>2.2</Tag Content Text><Element Tag></span></><span></Element Tag><Tag Content Text>3</Tag Content Text><Element Tag></span></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// nested fragments</Comment><br/>
<Element Tag><></Element Tag><Tag Content Text>#</Tag Content Text><Element Tag></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// # would cause scanning error if not in jsxtext</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// Tags after substitutions in templates</Comment><br/>
<Template>`aaa</Template><Substitution>${</Substitution><Element Tag><tag></tag></Element Tag><Comment>//comment</Comment><br/>
<Normal Text> </Normal Text><Comment>/*comment*/</Comment><Component Tag><A/></Component Tag><Substitution>}</Substitution><Template>`</Template><br/>
<Normal Text></Normal Text><br/>
<Comment>// Don't highlight tags within type declaration</Comment><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T12 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Normal Text>(</Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>() </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T13 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Normal Text>(</Normal Text><Symbol><</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>U</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>U </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Types>number</Types><Normal Text>[]</Normal Text><Symbol>></Symbol><Normal Text>() </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T14 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Keyword>typeof</Keyword><Normal Text> </Normal Text><Normal Text>f1</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T15 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Normal Text>(</Normal Text><Parameter>s</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Types>void</Types><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Don't highlight tags within variable declaration</Comment><br/>
<Reserved>let</Reserved><Normal Text> myIdentity</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>T </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>= </Symbol><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> myIdentity</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>U</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>U</Normal Text><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>U </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>identity</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> myIdentity</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>{</Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>}</Normal Text><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>identity</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Don't highlight tags within interfaces and classes</Comment><br/>
<Reserved>interface</Reserved><Normal Text> </Normal Text><Normal Text>GenericIdentityFn </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Symbol>;</Symbol><br/>
<Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag </Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>Handler </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text> </Normal Text><Parameter>info</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T </Normal Text><Symbol><</Symbol><Normal Text>noTag </Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Normal Text> </Normal Text><Element Tag><tag></Element Tag><Tag Content Text> </Tag Content Text><Element Tag></tag></Element Tag><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Highlight "<T extends" as a type assertion, not as a tag</Comment><br/>
<Comment>// (the "cast" expression works and isn't supported in the TSX file)</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>goodHighlighting </Normal Text><Symbol>= <</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>I</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><br/>
<Normal Text> </Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><br/>
<Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> {</Normal Text><br/>
<Normal Text> </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>arg</Normal Text><br/>
<Normal Text> </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Normal Text>a</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Element Tag><tag></Element Tag><Tag Content Text> text </Tag Content Text><Component Tag><T</Component Tag><Normal Text> </Normal Text><Attribute>extends</Attribute><Normal Text> </Normal Text><Attribute>I</Attribute><Component Tag>/></Component Tag><Tag Content Text> </Tag Content Text><Element Tag></tag></Element Tag><Normal Text> </Normal Text><Comment>// Here "<T extends I/>" is a tag</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// Check character after tag name, do not highlight invalid tags</Comment><br/>
<Symbol><</Symbol><Normal Text>noTag </Normal Text><Symbol>?</Symbol><br/>
<Symbol><</Symbol><Normal Text>noTag </Normal Text><Symbol>,</Symbol><br/>
<Symbol><</Symbol><Normal Text>noTag </Normal Text><Comment>/* comment */</Comment><Normal Text> </Normal Text><Symbol>?</Symbol><br/>
<Symbol><</Symbol><Normal Text>noTag</Normal Text><Private Member Operator>#</Private Member Operator><br/>
<Symbol><</Symbol><Normal Text>noTag</Normal Text><Comment>/*comment*/</Comment><Private Member Operator>#</Private Member Operator><br/>
<Normal Text></Normal Text><br/>
<Comment>// Conditionals expressions</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>y </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Component Tag><Tag/></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>(</Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>||</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>undefined</Keyword><Normal Text>) </Normal Text><Symbol>?</Symbol><br/>
<Normal Text> </Normal Text><Keyword>undefined</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><Element Tag><tag></Element Tag><Tag Content Text>hello</Tag Content Text><Element Tag></tag></Element Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Tagged template literals</Comment><br/>
<Function Name>tagFunc</Function Name><Template>`</Template><br/>
<Template> Hello world!</Template><br/>
<Template> </Template><Substitution>${</Substitution><Normal Text> </Normal Text><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Decimal>22</Decimal><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><String>"11"</String><Normal Text> </Normal Text><Substitution>}</Substitution><Template>`</Template><Symbol>;</Symbol><br/>
<Objects>obj</Objects><Symbol>.</Symbol><Object Member>something</Object Member><Symbol>.</Symbol><Function Name>tagFunc</Function Name><Template>`Setting </Template><Substitution>${</Substitution><Normal Text>setting</Normal Text><Substitution>}</Substitution><Template> is </Template><Substitution>${</Substitution><Normal Text>value</Normal Text><Substitution>}</Substitution><Template>!`</Template><Symbol>;</Symbol><br/>
|