Documentation
      ¶
    
    
  
    
  
    Index ¶
- Variables
 - func NewDiagnosticWriter(w io.Writer, files []*File, width uint, color bool) hcl.DiagnosticWriter
 - func OperationTokenType(operation *hclsyntax.Operation) hclsyntax.TokenType
 - type AttributeTokens
 - type BinaryOpTokens
 - type BlockTokens
 - type BodyTokens
 - type BracketTraverserTokens
 - type Comment
 - type ConditionalTokens
 - type DotTraverserTokens
 - type File
 - type ForTokens
 - type FunctionCallTokens
 - type IndexTokens
 - type LiteralValueTokens
 - type NodeTokens
 - type ObjectConsItemTokens
 - type ObjectConsTokens
 - type Parentheses
 - func (parens Parentheses) Any() bool
 - func (parens Parentheses) Format(f fmt.State, c rune)
 - func (parens Parentheses) GetLeadingTrivia() TriviaList
 - func (parens Parentheses) GetTrailingTrivia() TriviaList
 - func (parens Parentheses) SetLeadingTrivia(trivia TriviaList)
 - func (parens Parentheses) SetTrailingTrivia(trivia TriviaList)
 
- type Parser
 - type RelativeTraversalTokens
 - type ScopeTraversalTokens
 - type SplatTokens
 - type TemplateConditionalTokens
 - type TemplateDelimiter
 - type TemplateForTokens
 - type TemplateTokens
 - type Token
 - type TokenMap
 - type TraverserTokens
 - type Trivia
 - type TriviaList
 - func (trivia TriviaList) CollapseWhitespace() TriviaList
 - func (trivia TriviaList) EndsOnNewLine() bool
 - func (trivia TriviaList) Format(f fmt.State, c rune)
 - func (trivia TriviaList) Index(sep string) (Trivia, int)
 - func (trivia TriviaList) LeadingWhitespace() TriviaList
 - func (trivia TriviaList) TrailingWhitespace() TriviaList
 
- type TupleConsTokens
 - type UnaryOpTokens
 - type Whitespace
 
Constants ¶
This section is empty.
Variables ¶
var None hclsyntax.Node = &hclsyntax.Body{}
    None is an HCL syntax node that can be used when a syntax node is required but none is appropriate.
Functions ¶
func NewDiagnosticWriter ¶
NewDiagnosticWriter creates a new diagnostic writer for the given list of HCL2 files.
Types ¶
type AttributeTokens ¶
AttributeTokens records the tokens associated with an *hclsyntax.Attribute.
func NewAttributeTokens ¶
func NewAttributeTokens(name string) *AttributeTokens
func (*AttributeTokens) GetEquals ¶
func (t *AttributeTokens) GetEquals() Token
func (*AttributeTokens) GetName ¶
func (t *AttributeTokens) GetName(name string) Token
type BinaryOpTokens ¶
type BinaryOpTokens struct {
	Parentheses Parentheses
	Operator Token
}
    BinaryOpTokens records the tokens associated with an *hclsyntax.BinaryOpExpr.
func NewBinaryOpTokens ¶
func NewBinaryOpTokens(operation *hclsyntax.Operation) *BinaryOpTokens
func (*BinaryOpTokens) GetOperator ¶
func (t *BinaryOpTokens) GetOperator(operation *hclsyntax.Operation) Token
func (*BinaryOpTokens) GetParentheses ¶
func (t *BinaryOpTokens) GetParentheses() Parentheses
type BlockTokens ¶
BlockTokens records the tokens associated with an *hclsyntax.Block.
func NewBlockTokens ¶
func NewBlockTokens(typ string, labels ...string) *BlockTokens
func (*BlockTokens) GetCloseBrace ¶
func (t *BlockTokens) GetCloseBrace() Token
func (*BlockTokens) GetLabels ¶
func (t *BlockTokens) GetLabels(labels []string) []Token
func (*BlockTokens) GetOpenBrace ¶
func (t *BlockTokens) GetOpenBrace() Token
func (*BlockTokens) GetType ¶
func (t *BlockTokens) GetType(typ string) Token
type BodyTokens ¶
type BodyTokens struct {
	EndOfFile *Token
}
    BodyTokens records the tokens associated with an *hclsyntax.Body.
func (*BodyTokens) GetEndOfFile ¶
func (t *BodyTokens) GetEndOfFile() *Token
type BracketTraverserTokens ¶
type BracketTraverserTokens struct {
	Parentheses Parentheses
	OpenBracket  Token
	Index        Token
	CloseBracket Token
}
    BracketTraverserTokens records the tokens associated with a bracketed traverser (i.e. '[' <index> ']').
func NewBracketTraverserTokens ¶
func NewBracketTraverserTokens(index string) *BracketTraverserTokens
func (*BracketTraverserTokens) Range ¶
func (t *BracketTraverserTokens) Range() hcl.Range
type Comment ¶
type Comment struct {
	// Lines contains the lines of the comment without leading comment characters or trailing newlines.
	Lines []string
	// contains filtered or unexported fields
}
    Comment is a piece of trivia that represents a line or block comment in a source file.
type ConditionalTokens ¶
type ConditionalTokens struct {
	Parentheses Parentheses
	QuestionMark Token
	Colon        Token
}
    ConditionalTokens records the tokens associated with an *hclsyntax.ConditionalExpr of the form "a ? t : f".
func NewConditionalTokens ¶
func NewConditionalTokens() *ConditionalTokens
type DotTraverserTokens ¶
type DotTraverserTokens struct {
	Parentheses Parentheses
	Dot   Token
	Index Token
}
    DotTraverserTokens records the tokens associated with dotted traverser (i.e. '.' <attr>).
func NewDotTraverserTokens ¶
func NewDotTraverserTokens(index string) *DotTraverserTokens
func (*DotTraverserTokens) Range ¶
func (t *DotTraverserTokens) Range() hcl.Range
type File ¶
type File struct {
	Name   string          // The name of the file.
	Body   *hclsyntax.Body // The body of the parsed file.
	Bytes  []byte          // The raw bytes of the source file.
	Tokens TokenMap        // A map from syntax nodes to token information.
}
    File represents a single parsed HCL2 source file.
type ForTokens ¶
type ForTokens struct {
	Parentheses Parentheses
	Open  Token
	For   Token
	Key   *Token
	Comma *Token
	Value Token
	In    Token
	Colon Token
	Arrow *Token
	Group *Token
	If    *Token
	Close Token
}
    ForTokens records the tokens associated with an *hclsyntax.ForExpr.
func NewForTokens ¶
type FunctionCallTokens ¶
type FunctionCallTokens struct {
	Parentheses Parentheses
	Name       Token
	OpenParen  Token
	Commas     []Token
	CloseParen Token
}
    FunctionCallTokens records the tokens associated with an *hclsyntax.FunctionCallExpr.
func NewFunctionCallTokens ¶
func NewFunctionCallTokens(name string, argCount int) *FunctionCallTokens
func (*FunctionCallTokens) GetCloseParen ¶
func (t *FunctionCallTokens) GetCloseParen() Token
func (*FunctionCallTokens) GetCommas ¶
func (t *FunctionCallTokens) GetCommas(argCount int) []Token
func (*FunctionCallTokens) GetName ¶
func (t *FunctionCallTokens) GetName(name string) Token
func (*FunctionCallTokens) GetOpenParen ¶
func (t *FunctionCallTokens) GetOpenParen() Token
func (*FunctionCallTokens) GetParentheses ¶
func (t *FunctionCallTokens) GetParentheses() Parentheses
type IndexTokens ¶
type IndexTokens struct {
	Parentheses Parentheses
	OpenBracket  Token
	CloseBracket Token
}
    IndexTokens records the tokens associated with an *hclsyntax.IndexExpr.
func NewIndexTokens ¶
func NewIndexTokens() *IndexTokens
func (*IndexTokens) GetCloseBracket ¶
func (t *IndexTokens) GetCloseBracket() Token
func (*IndexTokens) GetOpenBracket ¶
func (t *IndexTokens) GetOpenBracket() Token
func (*IndexTokens) GetParentheses ¶
func (t *IndexTokens) GetParentheses() Parentheses
type LiteralValueTokens ¶
type LiteralValueTokens struct {
	Parentheses Parentheses
	Value []Token
}
    LiteralValueTokens records the tokens associated with an *hclsyntax.LiteralValueExpr.
func NewLiteralValueTokens ¶
func NewLiteralValueTokens(value cty.Value) *LiteralValueTokens
func (*LiteralValueTokens) GetParentheses ¶
func (t *LiteralValueTokens) GetParentheses() Parentheses
type NodeTokens ¶
type NodeTokens interface {
	// contains filtered or unexported methods
}
    NodeTokens is a closed interface that is used to represent arbitrary *Tokens types in this package.
type ObjectConsItemTokens ¶
ObjectConsItemTokens records the tokens associated with an hclsyntax.ObjectConsItem.
func NewObjectConsItemTokens ¶
func NewObjectConsItemTokens(last bool) ObjectConsItemTokens
type ObjectConsTokens ¶
type ObjectConsTokens struct {
	Parentheses Parentheses
	OpenBrace  Token
	Items      []ObjectConsItemTokens
	CloseBrace Token
}
    ObjectConsTokens records the tokens associated with an *hclsyntax.ObjectConsExpr.
func NewObjectConsTokens ¶
func NewObjectConsTokens(itemCount int) *ObjectConsTokens
func (*ObjectConsTokens) GetCloseBrace ¶
func (t *ObjectConsTokens) GetCloseBrace() Token
func (*ObjectConsTokens) GetItems ¶
func (t *ObjectConsTokens) GetItems(itemCount int) []ObjectConsItemTokens
func (*ObjectConsTokens) GetOpenBrace ¶
func (t *ObjectConsTokens) GetOpenBrace(itemCount int) Token
func (*ObjectConsTokens) GetParentheses ¶
func (t *ObjectConsTokens) GetParentheses() Parentheses
type Parentheses ¶
Parentheses records enclosing parenthesis tokens for expressions.
func (Parentheses) Any ¶
func (parens Parentheses) Any() bool
func (Parentheses) GetLeadingTrivia ¶
func (parens Parentheses) GetLeadingTrivia() TriviaList
func (Parentheses) GetTrailingTrivia ¶
func (parens Parentheses) GetTrailingTrivia() TriviaList
func (Parentheses) SetLeadingTrivia ¶
func (parens Parentheses) SetLeadingTrivia(trivia TriviaList)
func (Parentheses) SetTrailingTrivia ¶
func (parens Parentheses) SetTrailingTrivia(trivia TriviaList)
type Parser ¶
type Parser struct {
	Files       []*File         // The parsed files.
	Diagnostics hcl.Diagnostics // The diagnostics, if any, produced during parsing.
	// contains filtered or unexported fields
}
    Parser is a parser for HCL2 source files.
func (*Parser) NewDiagnosticWriter ¶
NewDiagnosticWriter creates a new diagnostic writer for the files parsed by the parser.
type RelativeTraversalTokens ¶
type RelativeTraversalTokens struct {
	Parentheses Parentheses
	Traversal []TraverserTokens
}
    RelativeTraversalTokens records the tokens associated with an *hclsyntax.RelativeTraversalExpr.
func NewRelativeTraversalTokens ¶
func NewRelativeTraversalTokens(traversal hcl.Traversal) *RelativeTraversalTokens
func (*RelativeTraversalTokens) GetParentheses ¶
func (t *RelativeTraversalTokens) GetParentheses() Parentheses
func (*RelativeTraversalTokens) GetTraversal ¶
func (t *RelativeTraversalTokens) GetTraversal(traversal hcl.Traversal) []TraverserTokens
type ScopeTraversalTokens ¶
type ScopeTraversalTokens struct {
	Parentheses Parentheses
	Root      Token
	Traversal []TraverserTokens
}
    ScopeTraversalTokens records the tokens associated with an *hclsyntax.ScopeTraversalExpr.
func NewScopeTraversalTokens ¶
func NewScopeTraversalTokens(traversal hcl.Traversal) *ScopeTraversalTokens
func (*ScopeTraversalTokens) GetParentheses ¶
func (t *ScopeTraversalTokens) GetParentheses() Parentheses
func (*ScopeTraversalTokens) GetRoot ¶
func (t *ScopeTraversalTokens) GetRoot(traversal hcl.Traversal) Token
func (*ScopeTraversalTokens) GetTraversal ¶
func (t *ScopeTraversalTokens) GetTraversal(traversal hcl.Traversal) []TraverserTokens
type SplatTokens ¶
type SplatTokens struct {
	Parentheses Parentheses
	Open  Token
	Star  Token
	Close *Token
}
    SplatTokens records the tokens associated with an *hclsyntax.SplatExpr.
func NewSplatTokens ¶
func NewSplatTokens(dotted bool) *SplatTokens
func (*SplatTokens) GetClose ¶
func (t *SplatTokens) GetClose() *Token
func (*SplatTokens) GetOpen ¶
func (t *SplatTokens) GetOpen() Token
func (*SplatTokens) GetParentheses ¶
func (t *SplatTokens) GetParentheses() Parentheses
func (*SplatTokens) GetStar ¶
func (t *SplatTokens) GetStar() Token
type TemplateConditionalTokens ¶
type TemplateConditionalTokens struct {
	OpenIf     Token
	If         Token
	CloseIf    Token
	OpenElse   *Token
	Else       *Token
	CloseElse  *Token
	OpenEndif  Token
	Endif      Token
	CloseEndif Token
}
    TemplateConditionalTokens records the tokens associated with an *hclsyntax.ConditionalExpr inside a template expression.
func NewTemplateConditionalTokens ¶
func NewTemplateConditionalTokens(hasElse bool) *TemplateConditionalTokens
type TemplateDelimiter ¶
type TemplateDelimiter struct {
	// Type is the type of the delimiter (e.g. hclsyntax.TokenTemplateInterp)
	Type hclsyntax.TokenType
	// contains filtered or unexported fields
}
    TemplateDelimiter is a piece of trivia that represents a token that demarcates an interpolation or control sequence inside of a template.
func NewTemplateDelimiter ¶
func NewTemplateDelimiter(typ hclsyntax.TokenType) TemplateDelimiter
NewTemplateDelimiter creates a new TemplateDelimiter value with the given delimiter type. If the token type is not a template delimiter, this function will panic.
func (TemplateDelimiter) Bytes ¶
func (t TemplateDelimiter) Bytes() []byte
Bytes returns the raw bytes that comprise the delimiter.
func (TemplateDelimiter) Range ¶
func (t TemplateDelimiter) Range() hcl.Range
Range returns the range of the delimiter in the source file.
type TemplateForTokens ¶
type TemplateForTokens struct {
	OpenFor     Token
	For         Token
	Key         *Token
	Comma       *Token
	Value       Token
	In          Token
	CloseFor    Token
	OpenEndfor  Token
	Endfor      Token
	CloseEndfor Token
}
    TemplateForTokens records the tokens associated with an *hclsyntax.ForExpr inside a template.
func NewTemplateForTokens ¶
func NewTemplateForTokens(keyVariable, valueVariable string) *TemplateForTokens
type TemplateTokens ¶
type TemplateTokens struct {
	Parentheses Parentheses
	Open  Token
	Close Token
}
    TemplateTokens records the tokens associated with an *hclsyntax.TemplateExpr.
func NewTemplateTokens ¶
func NewTemplateTokens() *TemplateTokens
func (*TemplateTokens) GetClose ¶
func (t *TemplateTokens) GetClose() Token
func (*TemplateTokens) GetOpen ¶
func (t *TemplateTokens) GetOpen() Token
func (*TemplateTokens) GetParentheses ¶
func (t *TemplateTokens) GetParentheses() Parentheses
type Token ¶
type Token struct {
	Raw            hclsyntax.Token
	LeadingTrivia  TriviaList
	TrailingTrivia TriviaList
}
    Token represents an HCL2 syntax token with attached leading trivia.
func (Token) AllTrivia ¶
func (t Token) AllTrivia() TriviaList
type TokenMap ¶
type TokenMap interface {
	ForNode(n hclsyntax.Node) NodeTokens
	// contains filtered or unexported methods
}
    A TokenMap is used to map from syntax nodes to information about their tokens and leading whitespace/comments.
func NewTokenMapForFiles ¶
NewTokenMapForFiles creates a new token map that can be used to look up tokens for nodes in any of the given files.
func ParseExpression ¶
func ParseExpression(expression, filename string, start hcl.Pos) (hclsyntax.Expression, TokenMap, hcl.Diagnostics)
ParseExpression attempts to parse the given string as an HCL2 expression.
type TraverserTokens ¶
type TraverserTokens interface {
	Range() hcl.Range
	// contains filtered or unexported methods
}
    TraverserTokens is a closed interface implemented by DotTraverserTokens and BracketTraverserTokens
func NewTraverserTokens ¶
func NewTraverserTokens(traverser hcl.Traverser) TraverserTokens
type Trivia ¶
type Trivia interface {
	// Range returns the range of the trivia in the source file.
	Range() hcl.Range
	// Bytes returns the raw bytes that comprise the trivia.
	Bytes() []byte
	// contains filtered or unexported methods
}
    Trivia represents bytes in a source file that are not syntactically meaningful. This includes whitespace and comments.
type TriviaList ¶
type TriviaList []Trivia
TriviaList is a list of trivia.
func (TriviaList) CollapseWhitespace ¶
func (trivia TriviaList) CollapseWhitespace() TriviaList
func (TriviaList) EndsOnNewLine ¶
func (trivia TriviaList) EndsOnNewLine() bool
func (TriviaList) LeadingWhitespace ¶
func (trivia TriviaList) LeadingWhitespace() TriviaList
func (TriviaList) TrailingWhitespace ¶
func (trivia TriviaList) TrailingWhitespace() TriviaList
type TupleConsTokens ¶
type TupleConsTokens struct {
	Parentheses Parentheses
	OpenBracket  Token
	Commas       []Token
	CloseBracket Token
}
    TupleConsTokens records the tokens associated with an *hclsyntax.TupleConsExpr.
func NewTupleConsTokens ¶
func NewTupleConsTokens(elementCount int) *TupleConsTokens
func (*TupleConsTokens) GetCloseBracket ¶
func (t *TupleConsTokens) GetCloseBracket() Token
func (*TupleConsTokens) GetCommas ¶
func (t *TupleConsTokens) GetCommas(elementCount int) []Token
func (*TupleConsTokens) GetOpenBracket ¶
func (t *TupleConsTokens) GetOpenBracket() Token
func (*TupleConsTokens) GetParentheses ¶
func (t *TupleConsTokens) GetParentheses() Parentheses
type UnaryOpTokens ¶
type UnaryOpTokens struct {
	Parentheses Parentheses
	Operator Token
}
    UnaryOpTokens records the tokens associated with an *hclsyntax.UnaryOpExpr.
func NewUnaryOpTokens ¶
func NewUnaryOpTokens(operation *hclsyntax.Operation) *UnaryOpTokens
func (*UnaryOpTokens) GetOperator ¶
func (t *UnaryOpTokens) GetOperator(operation *hclsyntax.Operation) Token
func (*UnaryOpTokens) GetParentheses ¶
func (t *UnaryOpTokens) GetParentheses() Parentheses
type Whitespace ¶
type Whitespace struct {
	// contains filtered or unexported fields
}
    Whitespace is a piece of trivia that represents a sequence of whitespace characters in a source file.
func NewWhitespace ¶
func NewWhitespace(bytes ...byte) Whitespace
NewWhitespace returns a new piece of whitespace trivia with the given contents.
func (Whitespace) Bytes ¶
func (w Whitespace) Bytes() []byte
Bytes returns the raw bytes that comprise the whitespace.
func (Whitespace) Range ¶
func (w Whitespace) Range() hcl.Range
Range returns the range of the whitespace in the source file.