parser

package
v0.3.977 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2025 License: MIT Imports: 12 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrLegacyFileFormat = errors.New("legacy file format - run templ migrate")
View Source
var ErrNonSpaceCharacter = errors.New("non space character found")
View Source
var ErrTemplateNotFound = errors.New("template not found")

Functions

func ExpressionOf added in v0.2.282

func ExpressionOf(p parse.Parser[string]) parse.Parser[Expression]

func StripType added in v0.2.282

func StripType[T any](p parse.Parser[T]) parse.Parser[any]

StripType takes the parser and throws away the return value.

Types

type Attribute

type Attribute interface {
	// Write out the string*.
	Write(w io.Writer, indent int) error
	Visit(v Visitor) error
	Copy() Attribute
}

func CopyAttributes added in v0.3.887

func CopyAttributes(attrs []Attribute) (copies []Attribute)

type AttributeKey added in v0.3.887

type AttributeKey interface {
	fmt.Stringer
}

type BoolConstantAttribute

type BoolConstantAttribute struct {
	Key AttributeKey
}

<hr noshade/>

func (*BoolConstantAttribute) Copy added in v0.3.887

func (bca *BoolConstantAttribute) Copy() Attribute

func (*BoolConstantAttribute) String

func (bca *BoolConstantAttribute) String() string

func (*BoolConstantAttribute) Visit added in v0.3.887

func (bca *BoolConstantAttribute) Visit(v Visitor) error

func (*BoolConstantAttribute) Write added in v0.2.282

func (bca *BoolConstantAttribute) Write(w io.Writer, indent int) error

type BoolExpressionAttribute

type BoolExpressionAttribute struct {
	Key        AttributeKey
	Expression Expression
}

noshade={ templ.Bool(...) }

func (*BoolExpressionAttribute) Copy added in v0.3.887

func (bea *BoolExpressionAttribute) Copy() Attribute

func (*BoolExpressionAttribute) String

func (bea *BoolExpressionAttribute) String() string

func (*BoolExpressionAttribute) Visit added in v0.3.887

func (bea *BoolExpressionAttribute) Visit(v Visitor) error

func (*BoolExpressionAttribute) Write added in v0.2.282

func (bea *BoolExpressionAttribute) Write(w io.Writer, indent int) error

type CSSProperty

type CSSProperty interface {
	IsCSSProperty() bool
	Write(w io.Writer, indent int) error
	Visit(v Visitor) error
}

CSSProperty is a CSS property and value pair.

type CSSTemplate

type CSSTemplate struct {
	Range      Range
	Name       string
	Expression Expression
	Properties []CSSProperty
}

CSS definition.

css Name() {
  color: #ffffff;
  background-color: { constants.BackgroundColor };
  background-image: url('./somewhere.png');
}

func (*CSSTemplate) IsTemplateFileNode

func (css *CSSTemplate) IsTemplateFileNode() bool

func (*CSSTemplate) Visit added in v0.3.887

func (css *CSSTemplate) Visit(v Visitor) error

func (*CSSTemplate) Write

func (css *CSSTemplate) Write(w io.Writer, indent int) error

type CallTemplateExpression

type CallTemplateExpression struct {
	// Expression returns a template to execute.
	Expression Expression
	Range      Range
}

CallTemplateExpression can be used to create and render a template using data. {! Other(p.First, p.Last) } or it can be used to render a template parameter. {! v }

func (*CallTemplateExpression) IsNode

func (cte *CallTemplateExpression) IsNode() bool

func (*CallTemplateExpression) Visit added in v0.3.887

func (cte *CallTemplateExpression) Visit(v Visitor) error

func (*CallTemplateExpression) Write

func (cte *CallTemplateExpression) Write(w io.Writer, indent int) error

type CaseExpression

type CaseExpression struct {
	Expression Expression
	Children   []Node
}

case "Something":

type ChildrenExpression added in v0.2.184

type ChildrenExpression struct{}

ChildrenExpression can be used to rended the children of a templ element. { children ... }

func (*ChildrenExpression) IsNode added in v0.2.184

func (*ChildrenExpression) IsNode() bool

func (*ChildrenExpression) Visit added in v0.3.887

func (ce *ChildrenExpression) Visit(v Visitor) error

func (*ChildrenExpression) Write added in v0.2.184

func (*ChildrenExpression) Write(w io.Writer, indent int) error

type CompositeNode added in v0.2.590

type CompositeNode interface {
	Node
	ChildNodes() []Node
}

type ConditionalAttribute added in v0.2.282

type ConditionalAttribute struct {
	Expression Expression
	Then       []Attribute
	Else       []Attribute
}
<a href="test" \
	if active {
   class="isActive"
 }

func (*ConditionalAttribute) Copy added in v0.3.887

func (ca *ConditionalAttribute) Copy() Attribute

func (*ConditionalAttribute) String added in v0.2.282

func (ca *ConditionalAttribute) String() string

func (*ConditionalAttribute) Visit added in v0.3.887

func (ca *ConditionalAttribute) Visit(v Visitor) error

func (*ConditionalAttribute) Write added in v0.2.282

func (ca *ConditionalAttribute) Write(w io.Writer, indent int) error

type ConstantAttribute

type ConstantAttribute struct {
	Key         AttributeKey
	Value       string
	SingleQuote bool
}

href=""

func (*ConstantAttribute) Copy added in v0.3.887

func (ca *ConstantAttribute) Copy() Attribute

func (*ConstantAttribute) String

func (ca *ConstantAttribute) String() string

func (*ConstantAttribute) Visit added in v0.3.887

func (ca *ConstantAttribute) Visit(v Visitor) error

func (*ConstantAttribute) Write added in v0.2.282

func (ca *ConstantAttribute) Write(w io.Writer, indent int) error

type ConstantAttributeKey added in v0.3.887

type ConstantAttributeKey struct {
	Name      string
	NameRange Range
}

func (ConstantAttributeKey) String added in v0.3.887

func (c ConstantAttributeKey) String() string

type ConstantCSSProperty

type ConstantCSSProperty struct {
	Name  string
	Value string
}

color: #ffffff;

func (*ConstantCSSProperty) IsCSSProperty

func (c *ConstantCSSProperty) IsCSSProperty() bool

func (ConstantCSSProperty) String added in v0.2.334

func (c ConstantCSSProperty) String(minified bool) string

func (*ConstantCSSProperty) Visit added in v0.3.887

func (c *ConstantCSSProperty) Visit(v Visitor) error

func (*ConstantCSSProperty) Write

func (c *ConstantCSSProperty) Write(w io.Writer, indent int) error

type Diagnostic added in v0.2.501

type Diagnostic struct {
	Message string
	Range   Range
}

Diagnostic for template file.

func Diagnose added in v0.2.590

func Diagnose(t *TemplateFile) ([]Diagnostic, error)

type DocType

type DocType struct {
	Range Range
	Value string
}

<!DOCTYPE html>

func (*DocType) IsNode

func (dt *DocType) IsNode() bool

func (*DocType) Visit added in v0.3.887

func (dt *DocType) Visit(v Visitor) error

func (*DocType) Write

func (dt *DocType) Write(w io.Writer, indent int) error

type Element

type Element struct {
	Name           string
	Attributes     []Attribute
	IndentAttrs    bool
	Children       []Node
	IndentChildren bool
	TrailingSpace  TrailingSpace
	NameRange      Range
	Range          Range
}

<a .../> or <div ...>...</div>

func (Element) ChildNodes added in v0.2.590

func (e Element) ChildNodes() []Node

func (Element) IsBlockElement added in v0.2.408

func (e Element) IsBlockElement() bool

func (*Element) IsNode

func (e *Element) IsNode() bool

func (Element) Trailing added in v0.2.408

func (e Element) Trailing() TrailingSpace

func (Element) Validate

func (e Element) Validate() (msgs []string, ok bool)

Validate that no invalid expressions have been used.

func (*Element) Visit added in v0.3.887

func (e *Element) Visit(v Visitor) error

func (*Element) Write

func (e *Element) Write(w io.Writer, indent int) error

type ElseIfExpression added in v0.2.296

type ElseIfExpression struct {
	Expression Expression
	Then       []Node
	Range      Range
}

type Expression

type Expression struct {
	Value string
	Range Range
}

Expression containing Go code.

func NewExpression

func NewExpression(value string, from, to parse.Position) Expression

NewExpression creates a Go expression.

type ExpressionAttribute

type ExpressionAttribute struct {
	Key        AttributeKey
	Expression Expression
}

href={ ... }

func (*ExpressionAttribute) Copy added in v0.3.887

func (ea *ExpressionAttribute) Copy() Attribute

func (*ExpressionAttribute) String

func (ea *ExpressionAttribute) String() string

func (*ExpressionAttribute) Visit added in v0.3.887

func (ea *ExpressionAttribute) Visit(v Visitor) error

func (*ExpressionAttribute) Write added in v0.2.282

func (ea *ExpressionAttribute) Write(w io.Writer, indent int) (err error)

type ExpressionAttributeKey added in v0.3.887

type ExpressionAttributeKey struct {
	Expression Expression
}

func (ExpressionAttributeKey) String added in v0.3.887

func (e ExpressionAttributeKey) String() string

type ExpressionCSSProperty

type ExpressionCSSProperty struct {
	Name  string
	Value *StringExpression
}

background-color: { constants.BackgroundColor };

func (*ExpressionCSSProperty) IsCSSProperty

func (c *ExpressionCSSProperty) IsCSSProperty() bool

func (*ExpressionCSSProperty) Visit added in v0.3.887

func (c *ExpressionCSSProperty) Visit(v Visitor) error

func (*ExpressionCSSProperty) Write

func (c *ExpressionCSSProperty) Write(w io.Writer, indent int) error

type Fallthrough added in v0.3.977

type Fallthrough struct {
	Range Range
}

func (*Fallthrough) IsNode added in v0.3.977

func (f *Fallthrough) IsNode() bool

func (*Fallthrough) Visit added in v0.3.977

func (f *Fallthrough) Visit(v Visitor) error

func (*Fallthrough) Write added in v0.3.977

func (f *Fallthrough) Write(w io.Writer, indent int) error

type ForExpression

type ForExpression struct {
	Expression Expression
	Children   []Node
	Range      Range
}
for i, v := range p.Addresses {
  {! Address(v) }
}

func (ForExpression) ChildNodes added in v0.2.590

func (fe ForExpression) ChildNodes() []Node

func (*ForExpression) IsNode

func (fe *ForExpression) IsNode() bool

func (*ForExpression) Visit added in v0.3.887

func (fe *ForExpression) Visit(v Visitor) error

func (*ForExpression) Write

func (fe *ForExpression) Write(w io.Writer, indent int) error

type GoCode added in v0.2.697

type GoCode struct {
	Expression Expression
	// TrailingSpace lists what happens after the expression.
	TrailingSpace TrailingSpace
	Multiline     bool
}

GoCode is used within HTML elements, and allows arbitrary go code. {{ ... }}

func (*GoCode) IsNode added in v0.2.697

func (gc *GoCode) IsNode() bool

func (*GoCode) Trailing added in v0.2.697

func (gc *GoCode) Trailing() TrailingSpace

func (*GoCode) Visit added in v0.3.887

func (gc *GoCode) Visit(v Visitor) error

func (*GoCode) Write added in v0.2.697

func (gc *GoCode) Write(w io.Writer, indent int) error

type GoComment added in v0.2.408

type GoComment struct {
	Contents  string
	Multiline bool
	Range     Range
}

GoComment.

func (*GoComment) IsNode added in v0.2.408

func (c *GoComment) IsNode() bool

func (*GoComment) Visit added in v0.3.887

func (c *GoComment) Visit(v Visitor) error

func (*GoComment) Write added in v0.2.408

func (c *GoComment) Write(w io.Writer, indent int) error

type HTMLComment added in v0.2.408

type HTMLComment struct {
	Contents string
	Range    Range
}

HTMLComment.

func (*HTMLComment) IsNode added in v0.2.408

func (c *HTMLComment) IsNode() bool

func (*HTMLComment) Visit added in v0.3.887

func (c *HTMLComment) Visit(v Visitor) error

func (*HTMLComment) Write added in v0.2.408

func (c *HTMLComment) Write(w io.Writer, indent int) error

type HTMLTemplate

type HTMLTemplate struct {
	Range      Range
	Expression Expression
	Children   []Node
}

HTMLTemplate definition.

templ Name(p Parameter) {
  if ... {
      <Element></Element>
  }
}

func (*HTMLTemplate) IsTemplateFileNode

func (t *HTMLTemplate) IsTemplateFileNode() bool

func (*HTMLTemplate) Visit added in v0.3.887

func (t *HTMLTemplate) Visit(v Visitor) error

func (*HTMLTemplate) Write

func (t *HTMLTemplate) Write(w io.Writer, indent int) error

type IfExpression

type IfExpression struct {
	Expression Expression
	Then       []Node
	ElseIfs    []ElseIfExpression
	Else       []Node
	Range      Range
}

if p.Type == "test" && p.thing { }

func (IfExpression) ChildNodes added in v0.2.590

func (n IfExpression) ChildNodes() []Node

func (*IfExpression) IsNode

func (n *IfExpression) IsNode() bool

func (*IfExpression) Visit added in v0.3.887

func (n *IfExpression) Visit(v Visitor) error

func (*IfExpression) Write

func (n *IfExpression) Write(w io.Writer, indent int) error

type Node

type Node interface {
	IsNode() bool
	// Write out the string*.
	Write(w io.Writer, indent int) error
	Visit(v Visitor) error
}

A Node appears within a template, e.g. an StringExpression, Element, IfExpression etc.

type Nodes added in v0.2.501

type Nodes struct {
	Nodes []Node
}

type Package

type Package struct {
	Expression Expression
}

func (*Package) Visit added in v0.3.887

func (p *Package) Visit(v Visitor) error

func (*Package) Write

func (p *Package) Write(w io.Writer, indent int) error

type Position

type Position struct {
	Index int64
	Line  uint32
	Col   uint32
}

Source mapping to map from the source code of the template to the in-memory representation.

func NewPosition

func NewPosition(index int64, line, col uint32) Position

NewPosition initialises a position.

func (*Position) String

func (p *Position) String() string

type Range

type Range struct {
	From Position
	To   Position
}

Range of text within a file.

func NewRange

func NewRange(from, to parse.Position) Range

NewRange creates a Range expression.

type RawElement

type RawElement struct {
	Name       string
	Attributes []Attribute
	Contents   string
	Range      Range
}

func (*RawElement) IsNode

func (e *RawElement) IsNode() bool

func (*RawElement) Visit added in v0.3.887

func (e *RawElement) Visit(v Visitor) error

func (*RawElement) Write

func (e *RawElement) Write(w io.Writer, indent int) error

type ScriptContents added in v0.3.850

type ScriptContents struct {
	// Value is the raw script contents. This is nil if the Type is Go.
	Value *string
	// GoCode is the Go expression. This is nil if the Type is JS.
	GoCode *GoCode
	// InsideStringLiteral denotes how the result of any Go expression should be escaped in the output.
	//  - Not quoted: JSON encoded.
	//  - InsideStringLiteral: JS escaped (newlines become \n, `"' becomes \`\"\' etc.), HTML escaped so that a string can't contain </script>.
	InsideStringLiteral bool
}

func NewScriptContentsGo added in v0.3.850

func NewScriptContentsGo(code *GoCode, insideStringLiteral bool) ScriptContents

func NewScriptContentsScriptCode added in v0.3.865

func NewScriptContentsScriptCode(value string) ScriptContents

type ScriptElement added in v0.3.850

type ScriptElement struct {
	Attributes []Attribute
	Contents   []ScriptContents
	Range      Range
}

func (*ScriptElement) IsNode added in v0.3.850

func (se *ScriptElement) IsNode() bool

func (*ScriptElement) Visit added in v0.3.887

func (se *ScriptElement) Visit(v Visitor) error

func (*ScriptElement) Write added in v0.3.850

func (se *ScriptElement) Write(w io.Writer, indent int) error

type ScriptTemplate

type ScriptTemplate struct {
	Range      Range
	Name       Expression
	Parameters Expression
	Value      string
}

ScriptTemplate is a script block.

func (*ScriptTemplate) IsTemplateFileNode

func (s *ScriptTemplate) IsTemplateFileNode() bool

func (*ScriptTemplate) Visit added in v0.3.887

func (s *ScriptTemplate) Visit(v Visitor) error

func (*ScriptTemplate) Write

func (s *ScriptTemplate) Write(w io.Writer, indent int) error

type SourceMap

type SourceMap struct {
	Expressions               []string
	SourceLinesToTarget       map[uint32]map[uint32]Position
	TargetLinesToSource       map[uint32]map[uint32]Position
	SourceSymbolRangeToTarget map[uint32]map[uint32]Range
	TargetSymbolRangeToSource map[uint32]map[uint32]Range
}

func NewSourceMap

func NewSourceMap() *SourceMap

NewSourceMap creates a new lookup to map templ source code to items in the parsed template.

func (*SourceMap) Add

func (sm *SourceMap) Add(src Expression, tgt Range) (updatedFrom Position)

Add an item to the lookup.

func (*SourceMap) AddSymbolRange added in v0.3.819

func (sm *SourceMap) AddSymbolRange(src Range, tgt Range)

func (*SourceMap) SourcePositionFromTarget

func (sm *SourceMap) SourcePositionFromTarget(line, col uint32) (src Position, ok bool)

SourcePositionFromTarget looks the source position using the target position. If a source exists on the line but not the col, the function will search backwards.

func (*SourceMap) SymbolSourceRangeFromTarget added in v0.3.819

func (sm *SourceMap) SymbolSourceRangeFromTarget(line, col uint32) (src Range, ok bool)

func (*SourceMap) SymbolTargetRangeFromSource added in v0.3.819

func (sm *SourceMap) SymbolTargetRangeFromSource(line, col uint32) (tgt Range, ok bool)

func (*SourceMap) TargetPositionFromSource

func (sm *SourceMap) TargetPositionFromSource(line, col uint32) (tgt Position, ok bool)

TargetPositionFromSource looks up the target position using the source position.

type SpreadAttributes added in v0.2.501

type SpreadAttributes struct {
	Expression Expression
}

<a { spread... } />

func (*SpreadAttributes) Copy added in v0.3.887

func (sa *SpreadAttributes) Copy() Attribute

func (*SpreadAttributes) String added in v0.2.501

func (sa *SpreadAttributes) String() string

func (*SpreadAttributes) Visit added in v0.3.887

func (sa *SpreadAttributes) Visit(v Visitor) error

func (*SpreadAttributes) Write added in v0.2.501

func (sa *SpreadAttributes) Write(w io.Writer, indent int) error

type StringExpression

type StringExpression struct {
	Expression Expression
	// TrailingSpace lists what happens after the expression.
	TrailingSpace TrailingSpace
}

StringExpression is used within HTML elements, and for style values. { ... }

func (*StringExpression) IsNode

func (se *StringExpression) IsNode() bool

func (*StringExpression) IsStyleDeclarationValue

func (se *StringExpression) IsStyleDeclarationValue() bool

func (*StringExpression) Trailing added in v0.2.408

func (se *StringExpression) Trailing() TrailingSpace

func (*StringExpression) Visit added in v0.3.887

func (se *StringExpression) Visit(v Visitor) error

func (*StringExpression) Write

func (se *StringExpression) Write(w io.Writer, indent int) error

type SwitchExpression

type SwitchExpression struct {
	Expression Expression
	Cases      []CaseExpression
	Range      Range
}
switch p.Type {
 case "Something":
}

func (SwitchExpression) ChildNodes added in v0.2.590

func (se SwitchExpression) ChildNodes() []Node

func (*SwitchExpression) IsNode

func (se *SwitchExpression) IsNode() bool

func (*SwitchExpression) Visit added in v0.3.887

func (se *SwitchExpression) Visit(v Visitor) error

func (*SwitchExpression) Write

func (se *SwitchExpression) Write(w io.Writer, indent int) error

type TemplElementExpression added in v0.2.184

type TemplElementExpression struct {
	// Expression returns a template to execute.
	Expression Expression
	// Children returns the elements in a block element.
	Children []Node
	Range    Range
}

TemplElementExpression can be used to create and render a template using data. @Other(p.First, p.Last) or it can be used to render a template parameter. @v

func (TemplElementExpression) ChildNodes added in v0.2.590

func (tee TemplElementExpression) ChildNodes() []Node

func (*TemplElementExpression) IsNode added in v0.2.184

func (tee *TemplElementExpression) IsNode() bool

func (*TemplElementExpression) Visit added in v0.3.887

func (tee *TemplElementExpression) Visit(v Visitor) error

func (*TemplElementExpression) Write added in v0.2.184

func (tee *TemplElementExpression) Write(w io.Writer, indent int) error

type TemplateFile

type TemplateFile struct {
	// Header contains comments or whitespace at the top of the file.
	Header []*TemplateFileGoExpression
	// Package expression.
	Package Package
	// Filepath is where the file was loaded from. It is not always available.
	Filepath string
	// Nodes in the file.
	Nodes []TemplateFileNode
}

func Parse

func Parse(fileName string) (*TemplateFile, error)

func ParseString

func ParseString(template string) (*TemplateFile, error)

func (*TemplateFile) Visit added in v0.3.887

func (tf *TemplateFile) Visit(v Visitor) error

func (*TemplateFile) Write

func (tf *TemplateFile) Write(w io.Writer) error

type TemplateFileGoExpression added in v0.2.476

type TemplateFileGoExpression struct {
	Expression    Expression
	BeforePackage bool
}

TemplateFileGoExpression within a TemplateFile

func (*TemplateFileGoExpression) IsTemplateFileNode added in v0.2.476

func (exp *TemplateFileGoExpression) IsTemplateFileNode() bool

func (*TemplateFileGoExpression) Visit added in v0.3.887

func (exp *TemplateFileGoExpression) Visit(v Visitor) error

func (*TemplateFileGoExpression) Write added in v0.2.476

func (exp *TemplateFileGoExpression) Write(w io.Writer, indent int) error

type TemplateFileNode

type TemplateFileNode interface {
	IsTemplateFileNode() bool
	Write(w io.Writer, indent int) error
	Visit(v Visitor) error
}

TemplateFileNode can be a Template, CSS, Script or Go.

type TemplateFileParser

type TemplateFileParser struct {
	DefaultPackage string
}

func NewTemplateFileParser

func NewTemplateFileParser(pkg string) TemplateFileParser

NewTemplateFileParser creates a new TemplateFileParser.

func (TemplateFileParser) Parse

func (p TemplateFileParser) Parse(pi *parse.Input) (tf *TemplateFile, matched bool, err error)

type Text

type Text struct {
	// Range of the text within the templ file.
	Range Range
	// Value is the raw HTML encoded value.
	Value string
	// TrailingSpace lists what happens after the text.
	TrailingSpace TrailingSpace
}

Text node within the document.

func (*Text) IsNode

func (t *Text) IsNode() bool

func (Text) Trailing added in v0.2.408

func (t Text) Trailing() TrailingSpace

func (*Text) Visit added in v0.3.887

func (t *Text) Visit(v Visitor) error

func (*Text) Write

func (t *Text) Write(w io.Writer, indent int) error

type TrailingSpace added in v0.2.408

type TrailingSpace string

TrailingSpace defines the whitespace that may trail behind the close of an element, a text node, or string expression.

const (
	SpaceNone       TrailingSpace = ""
	SpaceHorizontal TrailingSpace = " "
	SpaceVertical   TrailingSpace = "\n"
)

func NewTrailingSpace added in v0.2.408

func NewTrailingSpace(s string) (ts TrailingSpace, err error)

type UntilNotFoundError added in v0.2.697

type UntilNotFoundError struct {
	parse.ParseError
}

type Visitor added in v0.3.887

type Visitor interface {
	VisitTemplateFile(*TemplateFile) error
	VisitTemplateFileGoExpression(*TemplateFileGoExpression) error
	VisitPackage(*Package) error
	VisitWhitespace(*Whitespace) error
	VisitCSSTemplate(*CSSTemplate) error
	VisitConstantCSSProperty(*ConstantCSSProperty) error
	VisitExpressionCSSProperty(*ExpressionCSSProperty) error
	VisitDocType(*DocType) error
	VisitHTMLTemplate(*HTMLTemplate) error
	VisitText(*Text) error
	VisitElement(*Element) error
	VisitScriptElement(*ScriptElement) error
	VisitRawElement(*RawElement) error
	VisitBoolConstantAttribute(*BoolConstantAttribute) error
	VisitConstantAttribute(*ConstantAttribute) error
	VisitBoolExpressionAttribute(*BoolExpressionAttribute) error
	VisitExpressionAttribute(*ExpressionAttribute) error
	VisitSpreadAttributes(*SpreadAttributes) error
	VisitConditionalAttribute(*ConditionalAttribute) error
	VisitGoComment(*GoComment) error
	VisitHTMLComment(*HTMLComment) error
	VisitCallTemplateExpression(*CallTemplateExpression) error
	VisitTemplElementExpression(*TemplElementExpression) error
	VisitChildrenExpression(*ChildrenExpression) error
	VisitIfExpression(*IfExpression) error
	VisitSwitchExpression(*SwitchExpression) error
	VisitForExpression(*ForExpression) error
	VisitGoCode(*GoCode) error
	VisitStringExpression(*StringExpression) error
	VisitScriptTemplate(*ScriptTemplate) error
	VisitFallthrough(*Fallthrough) error
}

Visitor is an interface for visiting nodes in the parse tree.

type Whitespace

type Whitespace struct {
	Range Range
	Value string
}

Whitespace.

func (*Whitespace) IsNode

func (ws *Whitespace) IsNode() bool

func (*Whitespace) Visit added in v0.3.887

func (ws *Whitespace) Visit(v Visitor) error

func (*Whitespace) Write

func (ws *Whitespace) Write(w io.Writer, indent int) error

type WhitespaceTrailer added in v0.2.408

type WhitespaceTrailer interface {
	Trailing() TrailingSpace
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL