...

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

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

     1<lexer>
     2  <config>
     3    <name>QML</name>
     4    <alias>qml</alias>
     5    <alias>qbs</alias>
     6    <filename>*.qml</filename>
     7    <filename>*.qbs</filename>
     8    <mime_type>application/x-qml</mime_type>
     9    <mime_type>application/x-qt.qbs+qml</mime_type>
    10    <dot_all>true</dot_all>
    11  </config>
    12  <rules>
    13    <state name="root">
    14      <rule pattern="^(?=\s|/|&lt;!--)">
    15        <token type="Text"/>
    16        <push state="slashstartsregex"/>
    17      </rule>
    18      <rule>
    19        <include state="commentsandwhitespace"/>
    20      </rule>
    21      <rule pattern="\+\+|--|~|&amp;&amp;|\?|:|\|\||\\(?=\n)|(&lt;&lt;|&gt;&gt;&gt;?|==?|!=?|[-&lt;&gt;+*%&amp;|^/])=?">
    22        <token type="Operator"/>
    23        <push state="slashstartsregex"/>
    24      </rule>
    25      <rule pattern="[{(\[;,]">
    26        <token type="Punctuation"/>
    27        <push state="slashstartsregex"/>
    28      </rule>
    29      <rule pattern="[})\].]">
    30        <token type="Punctuation"/>
    31      </rule>
    32      <rule pattern="\bid\s*:\s*[A-Za-z][\w.]*">
    33        <token type="KeywordDeclaration"/>
    34        <push state="slashstartsregex"/>
    35      </rule>
    36      <rule pattern="\b[A-Za-z][\w.]*\s*:">
    37        <token type="Keyword"/>
    38        <push state="slashstartsregex"/>
    39      </rule>
    40      <rule pattern="(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|this)\b">
    41        <token type="Keyword"/>
    42        <push state="slashstartsregex"/>
    43      </rule>
    44      <rule pattern="(var|let|with|function)\b">
    45        <token type="KeywordDeclaration"/>
    46        <push state="slashstartsregex"/>
    47      </rule>
    48      <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">
    49        <token type="KeywordReserved"/>
    50      </rule>
    51      <rule pattern="(true|false|null|NaN|Infinity|undefined)\b">
    52        <token type="KeywordConstant"/>
    53      </rule>
    54      <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\b">
    55        <token type="NameBuiltin"/>
    56      </rule>
    57      <rule pattern="[$a-zA-Z_]\w*">
    58        <token type="NameOther"/>
    59      </rule>
    60      <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
    61        <token type="LiteralNumberFloat"/>
    62      </rule>
    63      <rule pattern="0x[0-9a-fA-F]+">
    64        <token type="LiteralNumberHex"/>
    65      </rule>
    66      <rule pattern="[0-9]+">
    67        <token type="LiteralNumberInteger"/>
    68      </rule>
    69      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    70        <token type="LiteralStringDouble"/>
    71      </rule>
    72      <rule pattern="&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
    73        <token type="LiteralStringSingle"/>
    74      </rule>
    75    </state>
    76    <state name="commentsandwhitespace">
    77      <rule pattern="\s+">
    78        <token type="Text"/>
    79      </rule>
    80      <rule pattern="&lt;!--">
    81        <token type="Comment"/>
    82      </rule>
    83      <rule pattern="//.*?\n">
    84        <token type="CommentSingle"/>
    85      </rule>
    86      <rule pattern="/\*.*?\*/">
    87        <token type="CommentMultiline"/>
    88      </rule>
    89    </state>
    90    <state name="slashstartsregex">
    91      <rule>
    92        <include state="commentsandwhitespace"/>
    93      </rule>
    94      <rule pattern="/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
    95        <token type="LiteralStringRegex"/>
    96        <pop depth="1"/>
    97      </rule>
    98      <rule pattern="(?=/)">
    99        <token type="Text"/>
   100        <push state="#pop" state="badregex"/>
   101      </rule>
   102      <rule>
   103        <pop depth="1"/>
   104      </rule>
   105    </state>
   106    <state name="badregex">
   107      <rule pattern="\n">
   108        <token type="Text"/>
   109        <pop depth="1"/>
   110      </rule>
   111    </state>
   112  </rules>
   113</lexer>

View as plain text