1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-03-19 21:10:15 +02:00

Add testdata for terraform

This commit is contained in:
Orhan Hirsch 2020-02-21 15:02:16 +01:00 committed by Alec Thomas
parent c83e581f07
commit e54a758d06
3 changed files with 213 additions and 10 deletions

View File

@ -25,7 +25,7 @@ var Terraform = internal.Register(MustNewLexer(
{Words(`^\s*`, `\b`, `variable`, `data`, `resource`, `provider`, `provisioner`, `module`, `output`), KeywordReserved, nil},
{Words(``, `\b`, `for`, `in`), Keyword, nil},
{Words(``, ``, `count`, `data`, `var`, `module`, `each`), NameBuiltin, nil},
{Words(``, `\b`, `abs`, `ceil`, `floor`, `log`, `max`, `min`, `parseint`, `pow`, `signum`, ), NameBuiltin, nil},
{Words(``, `\b`, `abs`, `ceil`, `floor`, `log`, `max`, `min`, `parseint`, `pow`, `signum`), NameBuiltin, nil},
{Words(``, `\b`, `chomp`, `format`, `formatlist`, `indent`, `join`, `lower`, `regex`, `regexall`, `replace`, `split`, `strrev`, `substr`, `title`, `trim`, `trimprefix`, `trimsuffix`, `trimspace`, `upper`), NameBuiltin, nil},
{Words(`[^.]`, `\b`, `chunklist`, `coalesce`, `coalescelist`, `compact`, `concat`, `contains`, `distinct`, `element`, `flatten`, `index`, `keys`, `length`, `list`, `lookup`, `map`, `matchkeys`, `merge`, `range`, `reverse`, `setintersection`, `setproduct`, `setsubtract`, `setunion`, `slice`, `sort`, `transpose`, `values`, `zipmap`), NameBuiltin, nil},
{Words(`[^.]`, `\b`, `base64decode`, `base64encode`, `base64gzip`, `csvdecode`, `jsondecode`, `jsonencode`, `urlencode`, `yamldecode`, `yamlencode`), NameBuiltin, nil},
@ -56,6 +56,5 @@ var Terraform = internal.Register(MustNewLexer(
{`\}`, LiteralStringInterpol, Pop(1)},
Include("root"),
},
},
))

39
lexers/testdata/terraform.actual vendored Normal file
View File

@ -0,0 +1,39 @@
variable "some_var" {
default = 12
}
resource "something" "nice" {
name = "hello"
value = var.some_var
x = var.some_var > 5 ? var.some_var : 10
cidr_blocks = [
for num in [1,2,3]:
cidrhost("10.0.0.0/24", num)
]
str = <<-EOT
hello
world
EOT
/*
Multiline comment
*/
# Single comment
dynamic "setting" {
for_each = var.settings
content {
namespace = setting.value["namespace"]
name = setting.value["name"]
value = setting.value["value"]
}
}
}
resource "other" "resource" {
count = 3
name = "resource${count.index+1}"
}

165
lexers/testdata/terraform.expected vendored Normal file
View File

@ -0,0 +1,165 @@
[
{"type":"KeywordReserved","value":"variable"},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"some_var\""},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"default"},
{"type":"Text","value":" = "},
{"type":"LiteralNumber","value":"12"},
{"type":"Text","value":"\n"},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n"},
{"type":"KeywordReserved","value":"\nresource"},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"something\""},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"nice\""},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"name"},
{"type":"Text","value":" = "},
{"type":"LiteralStringDouble","value":"\"hello\""},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"value"},
{"type":"Text","value":" = "},
{"type":"NameBuiltin","value":"var"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"some_var"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"x"},
{"type":"Text","value":" = "},
{"type":"NameBuiltin","value":"var"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"some_var"},
{"type":"Text","value":" "},
{"type":"Operator","value":"\u003e"},
{"type":"Text","value":" "},
{"type":"LiteralNumber","value":"5"},
{"type":"Text","value":" "},
{"type":"Operator","value":"?"},
{"type":"Text","value":" "},
{"type":"NameBuiltin","value":"var"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"some_var"},
{"type":"Text","value":" "},
{"type":"Operator","value":":"},
{"type":"Text","value":" "},
{"type":"LiteralNumber","value":"10"},
{"type":"Text","value":"\n\n "},
{"type":"NameAttribute","value":"cidr_blocks"},
{"type":"Text","value":" = "},
{"type":"Punctuation","value":"["},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"for"},
{"type":"Text","value":" "},
{"type":"NameOther","value":"num"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"in"},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"["},
{"type":"LiteralNumber","value":"1"},
{"type":"Punctuation","value":","},
{"type":"LiteralNumber","value":"2"},
{"type":"Punctuation","value":","},
{"type":"LiteralNumber","value":"3"},
{"type":"Punctuation","value":"]"},
{"type":"Operator","value":":"},
{"type":"Text","value":"\n "},
{"type":"NameBuiltin","value":"cidrhost"},
{"type":"Punctuation","value":"("},
{"type":"LiteralStringDouble","value":"\"10.0.0.0/24\""},
{"type":"Punctuation","value":","},
{"type":"Text","value":" "},
{"type":"NameOther","value":"num"},
{"type":"Punctuation","value":")"},
{"type":"Text","value":"\n "},
{"type":"Punctuation","value":"]"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"str"},
{"type":"Text","value":" = "},
{"type":"Operator","value":"\u003c\u003c-EOT"},
{"type":"LiteralString","value":"\n hello\n world\n "},
{"type":"Operator","value":"EOT"},
{"type":"Text","value":"\n\n "},
{"type":"CommentMultiline","value":"/*\n Multiline comment\n */"},
{"type":"CommentSingle","value":"\n # Single comment\n"},
{"type":"Text","value":"\n "},
{"type":"NameOther","value":"dynamic"},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"setting\""},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"for_each"},
{"type":"Text","value":" = "},
{"type":"NameBuiltin","value":"var"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"settings"},
{"type":"Text","value":"\n "},
{"type":"NameOther","value":"content"},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"namespace"},
{"type":"Text","value":" = "},
{"type":"NameOther","value":"setting"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"value"},
{"type":"Punctuation","value":"["},
{"type":"LiteralStringDouble","value":"\"namespace\""},
{"type":"Punctuation","value":"]"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"name"},
{"type":"Text","value":" = "},
{"type":"NameOther","value":"setting"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"value"},
{"type":"Punctuation","value":"["},
{"type":"LiteralStringDouble","value":"\"name\""},
{"type":"Punctuation","value":"]"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"value"},
{"type":"Text","value":" = "},
{"type":"NameOther","value":"setting"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"value"},
{"type":"Punctuation","value":"["},
{"type":"LiteralStringDouble","value":"\"value\""},
{"type":"Punctuation","value":"]"},
{"type":"Text","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n"},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n"},
{"type":"KeywordReserved","value":"\n\nresource"},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"other\""},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"resource\""},
{"type":"Text","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"count"},
{"type":"Text","value":" = "},
{"type":"LiteralNumber","value":"3"},
{"type":"Text","value":"\n "},
{"type":"NameAttribute","value":"name"},
{"type":"Text","value":" = "},
{"type":"LiteralStringDouble","value":"\"resource"},
{"type":"LiteralStringInterpol","value":"${"},
{"type":"NameBuiltin","value":"count"},
{"type":"Punctuation","value":"."},
{"type":"NameOther","value":"index"},
{"type":"Operator","value":"+"},
{"type":"LiteralNumber","value":"1"},
{"type":"LiteralStringInterpol","value":"}"},
{"type":"LiteralStringDouble","value":"\""},
{"type":"Text","value":"\n"},
{"type":"Punctuation","value":"}"},
{"type":"Text","value":"\n\n"}
]