...

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

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

     1<lexer>
     2  <config>
     3    <name>Terraform</name>
     4    <alias>terraform</alias>
     5    <alias>tf</alias>
     6    <filename>*.tf</filename>
     7    <mime_type>application/x-tf</mime_type>
     8    <mime_type>application/x-terraform</mime_type>
     9  </config>
    10  <rules>
    11    <state name="string">
    12      <rule pattern="&#34;">
    13        <token type="LiteralStringDouble"/>
    14        <pop depth="1"/>
    15      </rule>
    16      <rule pattern="\\\\">
    17        <token type="LiteralStringDouble"/>
    18      </rule>
    19      <rule pattern="\\\\&#34;">
    20        <token type="LiteralStringDouble"/>
    21      </rule>
    22      <rule pattern="\$\{">
    23        <token type="LiteralStringInterpol"/>
    24        <push state="interp-inside"/>
    25      </rule>
    26      <rule pattern="\$">
    27        <token type="LiteralStringDouble"/>
    28      </rule>
    29      <rule pattern="[^&#34;\\\\$]+">
    30        <token type="LiteralStringDouble"/>
    31      </rule>
    32    </state>
    33    <state name="interp-inside">
    34      <rule pattern="\}">
    35        <token type="LiteralStringInterpol"/>
    36        <pop depth="1"/>
    37      </rule>
    38      <rule>
    39        <include state="root"/>
    40      </rule>
    41    </state>
    42    <state name="root">
    43      <rule pattern="[\[\](),.{}]">
    44        <token type="Punctuation"/>
    45      </rule>
    46      <rule pattern="-?[0-9]+">
    47        <token type="LiteralNumber"/>
    48      </rule>
    49      <rule pattern="=&gt;">
    50        <token type="Punctuation"/>
    51      </rule>
    52      <rule pattern="(false|true)\b">
    53        <token type="KeywordConstant"/>
    54      </rule>
    55      <rule pattern="/(?s)\*(((?!\*/).)*)\*/">
    56        <token type="CommentMultiline"/>
    57      </rule>
    58      <rule pattern="\s*(#|//).*\n">
    59        <token type="CommentSingle"/>
    60      </rule>
    61      <rule pattern="([a-zA-Z]\w*)(\s*)(=(?!&gt;))">
    62        <bygroups>
    63          <token type="NameAttribute"/>
    64          <token type="Text"/>
    65          <token type="Text"/>
    66        </bygroups>
    67      </rule>
    68      <rule pattern="^\s*(provisioner|variable|resource|provider|module|output|data)\b">
    69        <token type="KeywordReserved"/>
    70      </rule>
    71      <rule pattern="(for|in)\b">
    72        <token type="Keyword"/>
    73      </rule>
    74      <rule pattern="(module|count|data|each|var)">
    75        <token type="NameBuiltin"/>
    76      </rule>
    77      <rule pattern="(parseint|signum|floor|ceil|log|max|min|abs|pow)\b">
    78        <token type="NameBuiltin"/>
    79      </rule>
    80      <rule pattern="(trimsuffix|formatlist|trimprefix|trimspace|regexall|replace|indent|strrev|format|substr|chomp|split|title|regex|lower|upper|trim|join)\b">
    81        <token type="NameBuiltin"/>
    82      </rule>
    83      <rule pattern="[^.](setintersection|coalescelist|setsubtract|setproduct|matchkeys|chunklist|transpose|contains|distinct|coalesce|setunion|reverse|flatten|element|compact|lookup|length|concat|values|zipmap|range|merge|slice|index|list|sort|keys|map)\b">
    84        <token type="NameBuiltin"/>
    85      </rule>
    86      <rule pattern="[^.](base64decode|base64encode|base64gzip|jsondecode|jsonencode|yamldecode|yamlencode|csvdecode|urlencode)\b">
    87        <token type="NameBuiltin"/>
    88      </rule>
    89      <rule pattern="(templatefile|filebase64|fileexists|pathexpand|basename|abspath|fileset|dirname|file)\b">
    90        <token type="NameBuiltin"/>
    91      </rule>
    92      <rule pattern="(formatdate|timestamp|timeadd)\b">
    93        <token type="NameBuiltin"/>
    94      </rule>
    95      <rule pattern="(filebase64sha256|filebase64sha512|base64sha512|base64sha256|filesha256|rsadecrypt|filesha512|filesha1|filemd5|uuidv5|bcrypt|sha256|sha512|sha1|uuid|md5)\b">
    96        <token type="NameBuiltin"/>
    97      </rule>
    98      <rule pattern="(cidrnetmask|cidrsubnet|cidrhost)\b">
    99        <token type="NameBuiltin"/>
   100      </rule>
   101      <rule pattern="(tostring|tonumber|tobool|tolist|tomap|toset|can|try)\b">
   102        <token type="NameBuiltin"/>
   103      </rule>
   104      <rule pattern="=(?!&gt;)|\+|-|\*|\/|:|!|%|&gt;|&lt;(?!&lt;)|&gt;=|&lt;=|==|!=|&amp;&amp;|\||\?">
   105        <token type="Operator"/>
   106      </rule>
   107      <rule pattern="\n|\s+|\\\n">
   108        <token type="Text"/>
   109      </rule>
   110      <rule pattern="[a-zA-Z]\w*">
   111        <token type="NameOther"/>
   112      </rule>
   113      <rule pattern="&#34;">
   114        <token type="LiteralStringDouble"/>
   115        <push state="string"/>
   116      </rule>
   117      <rule pattern="(?s)(&lt;&lt;-?)(\w+)(\n\s*(?:(?!\2).)*\s*\n\s*)(\2)">
   118        <bygroups>
   119          <token type="Operator"/>
   120          <token type="Operator"/>
   121          <token type="LiteralString"/>
   122          <token type="Operator"/>
   123        </bygroups>
   124      </rule>
   125    </state>
   126    <state name="declaration">
   127      <rule pattern="(\s*)(&#34;(?:\\\\|\\&#34;|[^&#34;])*&#34;)(\s*)">
   128        <bygroups>
   129          <token type="Text"/>
   130          <token type="NameVariable"/>
   131          <token type="Text"/>
   132        </bygroups>
   133      </rule>
   134      <rule pattern="\{">
   135        <token type="Punctuation"/>
   136        <pop depth="1"/>
   137      </rule>
   138    </state>
   139  </rules>
   140</lexer>

View as plain text