hcl/hclsyntax: Fix backtick and tab duplicate detection
This commit is contained in:
parent
4f47ee198a
commit
d43e8fd7d9
@ -2071,6 +2071,44 @@ block "valid" {}
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"a = `str`",
|
||||||
|
2, // Invalid character and expression
|
||||||
|
&Body{
|
||||||
|
Attributes: Attributes{
|
||||||
|
"a": {
|
||||||
|
Name: "a",
|
||||||
|
Expr: &LiteralValueExpr{
|
||||||
|
SrcRange: hcl.Range{
|
||||||
|
Start: hcl.Pos{Line: 1, Column: 5, Byte: 4},
|
||||||
|
End: hcl.Pos{Line: 1, Column: 6, Byte: 5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
NameRange: hcl.Range{
|
||||||
|
Start: hcl.Pos{Line: 1, Column: 1, Byte: 0},
|
||||||
|
End: hcl.Pos{Line: 1, Column: 2, Byte: 1},
|
||||||
|
},
|
||||||
|
EqualsRange: hcl.Range{
|
||||||
|
Start: hcl.Pos{Line: 1, Column: 3, Byte: 2},
|
||||||
|
End: hcl.Pos{Line: 1, Column: 4, Byte: 3},
|
||||||
|
},
|
||||||
|
SrcRange: hcl.Range{
|
||||||
|
Start: hcl.Pos{Line: 1, Column: 1, Byte: 0},
|
||||||
|
End: hcl.Pos{Line: 1, Column: 4, Byte: 3},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Blocks: Blocks{},
|
||||||
|
SrcRange: hcl.Range{
|
||||||
|
Start: hcl.Pos{Line: 1, Column: 1, Byte: 0},
|
||||||
|
End: hcl.Pos{Line: 1, Column: 10, Byte: 9},
|
||||||
|
},
|
||||||
|
EndRange: hcl.Range{
|
||||||
|
Start: hcl.Pos{Line: 1, Column: 10, Byte: 9},
|
||||||
|
End: hcl.Pos{Line: 1, Column: 10, Byte: 9},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"a = sort(data.first.ref.attr)[count.index]\n",
|
"a = sort(data.first.ref.attr)[count.index]\n",
|
||||||
0,
|
0,
|
||||||
|
@ -227,14 +227,15 @@ func checkInvalidTokens(tokens Tokens) hcl.Diagnostics {
|
|||||||
case TokenBacktick:
|
case TokenBacktick:
|
||||||
// Only report for alternating (even) backticks, so we won't report both start and ends of the same
|
// Only report for alternating (even) backticks, so we won't report both start and ends of the same
|
||||||
// backtick-quoted string.
|
// backtick-quoted string.
|
||||||
if toldExponent < 4 && (toldExponent%2) == 0 {
|
if (toldBacktick % 2) == 0 {
|
||||||
diags = append(diags, &hcl.Diagnostic{
|
diags = append(diags, &hcl.Diagnostic{
|
||||||
Severity: hcl.DiagError,
|
Severity: hcl.DiagError,
|
||||||
Summary: "Invalid character",
|
Summary: "Invalid character",
|
||||||
Detail: "The \"`\" character is not valid. To create a multi-line string, use the \"heredoc\" syntax, like \"<<EOT\".",
|
Detail: "The \"`\" character is not valid. To create a multi-line string, use the \"heredoc\" syntax, like \"<<EOT\".",
|
||||||
Subject: &tok.Range,
|
Subject: &tok.Range,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
if toldBacktick <= 2 {
|
||||||
toldBacktick++
|
toldBacktick++
|
||||||
}
|
}
|
||||||
case TokenSemicolon:
|
case TokenSemicolon:
|
||||||
@ -277,8 +278,6 @@ func checkInvalidTokens(tokens Tokens) hcl.Diagnostics {
|
|||||||
Detail: "This character is not used within the language.",
|
Detail: "This character is not used within the language.",
|
||||||
Subject: &tok.Range,
|
Subject: &tok.Range,
|
||||||
})
|
})
|
||||||
|
|
||||||
toldTabs++
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return diags
|
return diags
|
||||||
|
Loading…
x
Reference in New Issue
Block a user