|
3 | 3 | <name>Terraform</name>
|
4 | 4 | <alias>terraform</alias>
|
5 | 5 | <alias>tf</alias>
|
| 6 | + <alias>hcl</alias> |
6 | 7 | <filename>*.tf</filename>
|
| 8 | + <filename>*.hcl</filename> |
7 | 9 | <mime_type>application/x-tf</mime_type>
|
8 | 10 | <mime_type>application/x-terraform</mime_type>
|
9 | 11 | </config>
|
|
13 | 15 | <token type="LiteralStringDouble"/>
|
14 | 16 | <pop depth="1"/>
|
15 | 17 | </rule>
|
16 |
| - <rule pattern="\\\\"> |
| 18 | + <rule pattern="\\\\""> |
17 | 19 | <token type="LiteralStringDouble"/>
|
18 | 20 | </rule>
|
19 |
| - <rule pattern="\\\\""> |
| 21 | + <rule pattern="[^"\\\\$]+"> |
| 22 | + <token type="LiteralStringDouble"/> |
| 23 | + </rule> |
| 24 | + <rule pattern="[^\\\\"$]+"> |
20 | 25 | <token type="LiteralStringDouble"/>
|
21 | 26 | </rule>
|
22 | 27 | <rule pattern="\$\{">
|
23 | 28 | <token type="LiteralStringInterpol"/>
|
24 | 29 | <push state="interp-inside"/>
|
25 | 30 | </rule>
|
26 |
| - <rule pattern="\$"> |
27 |
| - <token type="LiteralStringDouble"/> |
28 |
| - </rule> |
29 |
| - <rule pattern="[^"\\\\$]+"> |
30 |
| - <token type="LiteralStringDouble"/> |
31 |
| - </rule> |
32 | 31 | </state>
|
33 | 32 | <state name="interp-inside">
|
34 | 33 | <rule pattern="\}">
|
|
43 | 42 | <rule pattern="[\[\](),.{}]">
|
44 | 43 | <token type="Punctuation"/>
|
45 | 44 | </rule>
|
| 45 | + <rule pattern="""> |
| 46 | + <token type="LiteralStringDouble"/> |
| 47 | + <push state="string"/> |
| 48 | + </rule> |
46 | 49 | <rule pattern="-?[0-9]+">
|
47 | 50 | <token type="LiteralNumber"/>
|
48 | 51 | </rule>
|
|
58 | 61 | <rule pattern="\s*(#|//).*\n">
|
59 | 62 | <token type="CommentSingle"/>
|
60 | 63 | </rule>
|
61 |
| - <rule pattern="([a-zA-Z]\w*)(\s*)(=(?!>))"> |
| 64 | + <rule pattern="(?!\s*)(variable)(\s*)"> |
62 | 65 | <bygroups>
|
63 |
| - <token type="NameAttribute"/> |
| 66 | + <token type="Name"/> |
64 | 67 | <token type="Text"/>
|
65 | 68 | <token type="Text"/>
|
66 | 69 | </bygroups>
|
67 | 70 | </rule>
|
68 |
| - <rule pattern="^\s*(provisioner|variable|resource|provider|module|output|data)\b"> |
| 71 | + <rule pattern="^(provisioner|variable|resource|provider|module|output|data)(?!\.)\b"> |
69 | 72 | <token type="KeywordReserved"/>
|
70 | 73 | </rule>
|
71 | 74 | <rule pattern="(for|in)\b">
|
|
101 | 104 | <rule pattern="(tostring|tonumber|tobool|tolist|tomap|toset|can|try)\b">
|
102 | 105 | <token type="NameBuiltin"/>
|
103 | 106 | </rule>
|
| 107 | + <rule pattern="(name|x|default|type|description|value)"> |
| 108 | + <token type="NameAttribute"/> |
| 109 | + </rule> |
104 | 110 | <rule pattern="=(?!>)|\+|-|\*|\/|:|!|%|>|<(?!<)|>=|<=|==|!=|&&|\||\?">
|
105 | 111 | <token type="Operator"/>
|
106 | 112 | </rule>
|
|
110 | 116 | <rule pattern="[a-zA-Z]\w*">
|
111 | 117 | <token type="NameOther"/>
|
112 | 118 | </rule>
|
113 |
| - <rule pattern="""> |
114 |
| - <token type="LiteralStringDouble"/> |
115 |
| - <push state="string"/> |
116 |
| - </rule> |
117 | 119 | <rule pattern="(?s)(<<-?)(\w+)(\n\s*(?:(?!\2).)*\s*\n\s*)(\2)">
|
118 | 120 | <bygroups>
|
119 | 121 | <token type="Operator"/>
|
|
127 | 129 | <rule pattern="(\s*)("(?:\\\\|\\"|[^"])*")(\s*)">
|
128 | 130 | <bygroups>
|
129 | 131 | <token type="Text"/>
|
130 |
| - <token type="NameVariable"/> |
| 132 | + <token type="NameAttribute"/> |
131 | 133 | <token type="Text"/>
|
132 | 134 | </bygroups>
|
133 | 135 | </rule>
|
|
0 commit comments