...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/vue.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>vue</name>
     4    <alias>vue</alias>
     5    <alias>vuejs</alias>
     6    <filename>*.vue</filename>
     7    <mime_type>text/x-vue</mime_type>
     8    <mime_type>application/x-vue</mime_type>
     9    <dot_all>true</dot_all>
    10  </config>
    11  <rules>
    12    <state name="interp-inside">
    13      <rule pattern="\}">
    14        <token type="LiteralStringInterpol"/>
    15        <pop depth="1"/>
    16      </rule>
    17      <rule>
    18        <include state="root"/>
    19      </rule>
    20    </state>
    21    <state name="attr">
    22      <rule pattern="{">
    23        <token type="Punctuation"/>
    24        <push state="expression"/>
    25      </rule>
    26      <rule pattern="&#34;.*?&#34;">
    27        <token type="LiteralString"/>
    28        <pop depth="1"/>
    29      </rule>
    30      <rule pattern="&#39;.*?&#39;">
    31        <token type="LiteralString"/>
    32        <pop depth="1"/>
    33      </rule>
    34      <rule>
    35        <pop depth="1"/>
    36      </rule>
    37    </state>
    38    <state name="interp">
    39      <rule pattern="`">
    40        <token type="LiteralStringBacktick"/>
    41        <pop depth="1"/>
    42      </rule>
    43      <rule pattern="\\\\">
    44        <token type="LiteralStringBacktick"/>
    45      </rule>
    46      <rule pattern="\\`">
    47        <token type="LiteralStringBacktick"/>
    48      </rule>
    49      <rule pattern="\$\{">
    50        <token type="LiteralStringInterpol"/>
    51        <push state="interp-inside"/>
    52      </rule>
    53      <rule pattern="\$">
    54        <token type="LiteralStringBacktick"/>
    55      </rule>
    56      <rule pattern="[^`\\$]+">
    57        <token type="LiteralStringBacktick"/>
    58      </rule>
    59    </state>
    60    <state name="tag">
    61      <rule pattern="\s+">
    62        <token type="Text"/>
    63      </rule>
    64      <rule pattern="(-)([\w]+)">
    65        <token type="NameTag"/>
    66      </rule>
    67      <rule pattern="(@[\w]+)(=&#34;[\S]+&#34;)(&gt;)">
    68        <bygroups>
    69          <token type="NameTag"/>
    70          <token type="LiteralString"/>
    71          <token type="Punctuation"/>
    72        </bygroups>
    73      </rule>
    74      <rule pattern="(@[\w]+)(=&#34;[\S]+&#34;)">
    75        <bygroups>
    76          <token type="NameTag"/>
    77          <token type="LiteralString"/>
    78        </bygroups>
    79      </rule>
    80      <rule pattern="(@[\S]+)(=&#34;[\S]+&#34;)">
    81        <bygroups>
    82          <token type="NameTag"/>
    83          <token type="LiteralString"/>
    84        </bygroups>
    85      </rule>
    86      <rule pattern="(:[\S]+)(=&#34;[\S]+&#34;)">
    87        <bygroups>
    88          <token type="NameTag"/>
    89          <token type="LiteralString"/>
    90        </bygroups>
    91      </rule>
    92      <rule pattern="(:)">
    93        <token type="Operator"/>
    94      </rule>
    95      <rule pattern="(v-b-[\S]+)">
    96        <token type="NameTag"/>
    97      </rule>
    98      <rule pattern="(v-[\w]+)(=&#34;.+)([:][\w]+)(=&#34;[\w]+&#34;)(&gt;)">
    99        <bygroups>
   100          <token type="NameTag"/>
   101          <token type="LiteralString"/>
   102          <token type="NameTag"/>
   103          <token type="LiteralString"/>
   104          <token type="Punctuation"/>
   105        </bygroups>
   106      </rule>
   107      <rule pattern="(v-[\w]+)(=&#34;[\S]+&#34;)(&gt;)">
   108        <bygroups>
   109          <token type="NameTag"/>
   110          <token type="LiteralString"/>
   111          <token type="Punctuation"/>
   112        </bygroups>
   113      </rule>
   114      <rule pattern="(v-[\w]+)(&gt;)">
   115        <bygroups>
   116          <token type="NameTag"/>
   117          <token type="Punctuation"/>
   118        </bygroups>
   119      </rule>
   120      <rule pattern="(v-[\w]+)(=&#34;.+&#34;)(&gt;)">
   121        <bygroups>
   122          <token type="NameTag"/>
   123          <token type="LiteralString"/>
   124          <token type="Punctuation"/>
   125        </bygroups>
   126      </rule>
   127      <rule pattern="(&lt;)([\w]+)">
   128        <bygroups>
   129          <token type="Punctuation"/>
   130          <token type="NameTag"/>
   131        </bygroups>
   132      </rule>
   133      <rule pattern="(&lt;)(/)([\w]+)(&gt;)">
   134        <bygroups>
   135          <token type="Punctuation"/>
   136          <token type="Punctuation"/>
   137          <token type="NameTag"/>
   138          <token type="Punctuation"/>
   139        </bygroups>
   140      </rule>
   141      <rule pattern="([\w]+\s*)(=)(\s*)">
   142        <bygroups>
   143          <token type="NameAttribute"/>
   144          <token type="Operator"/>
   145          <token type="Text"/>
   146        </bygroups>
   147        <push state="attr"/>
   148      </rule>
   149      <rule pattern="[{}]+">
   150        <token type="Punctuation"/>
   151      </rule>
   152      <rule pattern="[\w\.]+">
   153        <token type="NameAttribute"/>
   154      </rule>
   155      <rule pattern="(/?)(\s*)(&gt;)">
   156        <bygroups>
   157          <token type="Punctuation"/>
   158          <token type="Text"/>
   159          <token type="Punctuation"/>
   160        </bygroups>
   161        <pop depth="1"/>
   162      </rule>
   163    </state>
   164    <state name="slashstartsregex">
   165      <rule>
   166        <include state="commentsandwhitespace"/>
   167      </rule>
   168      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)">
   169        <token type="LiteralStringRegex"/>
   170        <pop depth="1"/>
   171      </rule>
   172      <rule pattern="(?=/)">
   173        <token type="Text"/>
   174        <push state="#pop" state="badregex"/>
   175      </rule>
   176      <rule>
   177        <pop depth="1"/>
   178      </rule>
   179    </state>
   180    <state name="root">
   181      <rule>
   182        <include state="vue"/>
   183      </rule>
   184      <rule pattern="\A#! ?/.*?\n">
   185        <token type="CommentHashbang"/>
   186      </rule>
   187      <rule pattern="^(?=\s|/|&lt;!--)">
   188        <token type="Text"/>
   189        <push state="slashstartsregex"/>
   190      </rule>
   191      <rule>
   192        <include state="commentsandwhitespace"/>
   193      </rule>
   194      <rule pattern="(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?">
   195        <token type="LiteralNumberFloat"/>
   196      </rule>
   197      <rule pattern="0[bB][01]+">
   198        <token type="LiteralNumberBin"/>
   199      </rule>
   200      <rule pattern="0[oO][0-7]+">
   201        <token type="LiteralNumberOct"/>
   202      </rule>
   203      <rule pattern="0[xX][0-9a-fA-F]+">
   204        <token type="LiteralNumberHex"/>
   205      </rule>
   206      <rule pattern="[0-9]+">
   207        <token type="LiteralNumberInteger"/>
   208      </rule>
   209      <rule pattern="\.\.\.|=&gt;">
   210        <token type="Punctuation"/>
   211      </rule>
   212      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
   213        <token type="Operator"/>
   214        <push state="slashstartsregex"/>
   215      </rule>
   216      <rule pattern="[{(\[;,]">
   217        <token type="Punctuation"/>
   218        <push state="slashstartsregex"/>
   219      </rule>
   220      <rule pattern="[})\].]">
   221        <token type="Punctuation"/>
   222      </rule>
   223      <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\b">
   224        <token type="Keyword"/>
   225        <push state="slashstartsregex"/>
   226      </rule>
   227      <rule pattern="(var|let|with|function)\b">
   228        <token type="KeywordDeclaration"/>
   229        <push state="slashstartsregex"/>
   230      </rule>
   231      <rule pattern="(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\b">
   232        <token type="KeywordReserved"/>
   233      </rule>
   234      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
   235        <token type="KeywordConstant"/>
   236      </rule>
   237      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\b">
   238        <token type="NameBuiltin"/>
   239      </rule>
   240      <rule pattern="(?:[$_\p{L}\p{N}]|\\u[a-fA-F0-9]{4})(?:(?:[$\p{L}\p{N}]|\\u[a-fA-F0-9]{4}))*">
   241        <token type="NameOther"/>
   242      </rule>
   243      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
   244        <token type="LiteralStringDouble"/>
   245      </rule>
   246      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
   247        <token type="LiteralStringSingle"/>
   248      </rule>
   249      <rule pattern="`">
   250        <token type="LiteralStringBacktick"/>
   251        <push state="interp"/>
   252      </rule>
   253    </state>
   254    <state name="badregex">
   255      <rule pattern="\n">
   256        <token type="Text"/>
   257        <pop depth="1"/>
   258      </rule>
   259    </state>
   260    <state name="vue">
   261      <rule pattern="(&lt;)([\w]+)">
   262        <bygroups>
   263          <token type="Punctuation"/>
   264          <token type="NameTag"/>
   265        </bygroups>
   266        <push state="tag"/>
   267      </rule>
   268      <rule pattern="(&lt;)(/)([\w]+)(&gt;)">
   269        <bygroups>
   270          <token type="Punctuation"/>
   271          <token type="Punctuation"/>
   272          <token type="NameTag"/>
   273          <token type="Punctuation"/>
   274        </bygroups>
   275      </rule>
   276    </state>
   277    <state name="expression">
   278      <rule pattern="{">
   279        <token type="Punctuation"/>
   280        <push/>
   281      </rule>
   282      <rule pattern="}">
   283        <token type="Punctuation"/>
   284        <pop depth="1"/>
   285      </rule>
   286      <rule>
   287        <include state="root"/>
   288      </rule>
   289    </state>
   290    <state name="commentsandwhitespace">
   291      <rule pattern="\s+">
   292        <token type="Text"/>
   293      </rule>
   294      <rule pattern="&lt;!--">
   295        <token type="Comment"/>
   296      </rule>
   297      <rule pattern="//.*?\n">
   298        <token type="CommentSingle"/>
   299      </rule>
   300      <rule pattern="/\*.*?\*/">
   301        <token type="CommentMultiline"/>
   302      </rule>
   303    </state>
   304  </rules>
   305</lexer>

View as plain text