scanner

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ComputeLineOfPosition

func ComputeLineOfPosition(lineStarts []core.TextPos, pos int) int

func ComputePositionOfLineAndCharacter

func ComputePositionOfLineAndCharacter(lineStarts []core.TextPos, line int, character int) int

func DeclarationNameToString

func DeclarationNameToString(name *ast.Node) string

func GetEndLinePosition

func GetEndLinePosition(sourceFile *ast.SourceFile, line int) int

func GetIdentifierToken

func GetIdentifierToken(str string) ast.Kind

func GetLeadingCommentRanges

func GetLeadingCommentRanges(f *ast.NodeFactory, text string, pos int) iter.Seq[ast.CommentRange]

func GetLineAndCharacterOfPosition

func GetLineAndCharacterOfPosition(sourceFile *ast.SourceFile, pos int) (line int, character int)

func GetLineStarts

func GetLineStarts(sourceFile *ast.SourceFile) []core.TextPos

func GetPositionOfLineAndCharacter

func GetPositionOfLineAndCharacter(sourceFile *ast.SourceFile, line int, character int) int

func GetRangeOfTokenAtPosition

func GetRangeOfTokenAtPosition(sourceFile *ast.SourceFile, pos int) core.TextRange

func GetSourceTextOfNodeFromSourceFile

func GetSourceTextOfNodeFromSourceFile(sourceFile *ast.SourceFile, node *ast.Node, includeTrivia bool) string

func GetTextOfNode

func GetTextOfNode(node *ast.Node) string

func GetTextOfNodeFromSourceText

func GetTextOfNodeFromSourceText(sourceText string, node *ast.Node, includeTrivia bool) string

func GetTokenPosOfNode

func GetTokenPosOfNode(node *ast.Node, sourceFile *ast.SourceFile, includeJsDoc bool) int

func GetTrailingCommentRanges

func GetTrailingCommentRanges(f *ast.NodeFactory, text string, pos int) iter.Seq[ast.CommentRange]

func IdentifierToKeywordKind

func IdentifierToKeywordKind(node *ast.Identifier) ast.Kind

func IsIdentifierText

func IsIdentifierText(name string, languageVersion core.ScriptTarget) bool

func IsValidIdentifier

func IsValidIdentifier(s string, languageVersion core.ScriptTarget) bool

func ScanTokenAtPosition

func ScanTokenAtPosition(sourceFile *ast.SourceFile, pos int) ast.Kind

func SkipTrivia

func SkipTrivia(text string, pos int) int

func SkipTriviaEx

func SkipTriviaEx(text string, pos int, options *SkipTriviaOptions) int

func TokenToString

func TokenToString(token ast.Kind) string

Types

type ErrorCallback

type ErrorCallback func(diagnostic *diagnostics.Message, start, length int, args ...any)

type EscapeSequenceScanningFlags

type EscapeSequenceScanningFlags int32
const (
	EscapeSequenceScanningFlagsString                     EscapeSequenceScanningFlags = 1 << 0
	EscapeSequenceScanningFlagsReportErrors               EscapeSequenceScanningFlags = 1 << 1
	EscapeSequenceScanningFlagsRegularExpression          EscapeSequenceScanningFlags = 1 << 2
	EscapeSequenceScanningFlagsAnnexB                     EscapeSequenceScanningFlags = 1 << 3
	EscapeSequenceScanningFlagsAnyUnicodeMode             EscapeSequenceScanningFlags = 1 << 4
	EscapeSequenceScanningFlagsAtomEscape                 EscapeSequenceScanningFlags = 1 << 5
	EscapeSequenceScanningFlagsReportInvalidEscapeErrors  EscapeSequenceScanningFlags = EscapeSequenceScanningFlagsRegularExpression | EscapeSequenceScanningFlagsReportErrors
	EscapeSequenceScanningFlagsAllowExtendedUnicodeEscape EscapeSequenceScanningFlags = EscapeSequenceScanningFlagsString | EscapeSequenceScanningFlagsAnyUnicodeMode
)

type JSDocParsingMode

type JSDocParsingMode int
const (
	JSDocParsingModeParseAll JSDocParsingMode = iota
	JSDocParsingModeParseNone
	JSDocParsingModeParseForTypeErrors
	JSDocParsingModeParseForTypeInfo
)

type Scanner

type Scanner struct {
	JSDocParsingMode JSDocParsingMode

	ScannerState
	// contains filtered or unexported fields
}

func GetScannerForSourceFile

func GetScannerForSourceFile(sourceFile *ast.SourceFile, pos int) *Scanner

func NewScanner

func NewScanner() *Scanner

func (*Scanner) CommentDirectives

func (s *Scanner) CommentDirectives() []ast.CommentDirective

func (*Scanner) HasExtendedUnicodeEscape

func (s *Scanner) HasExtendedUnicodeEscape() bool

func (*Scanner) HasPrecedingJSDocComment

func (s *Scanner) HasPrecedingJSDocComment() bool

func (*Scanner) HasPrecedingJSDocLeadingAsterisks

func (s *Scanner) HasPrecedingJSDocLeadingAsterisks() bool

func (*Scanner) HasPrecedingLineBreak

func (s *Scanner) HasPrecedingLineBreak() bool

func (*Scanner) HasUnicodeEscape

func (s *Scanner) HasUnicodeEscape() bool

func (*Scanner) Mark

func (s *Scanner) Mark() ScannerState

func (*Scanner) ReScanAsteriskEqualsToken

func (s *Scanner) ReScanAsteriskEqualsToken() ast.Kind

func (*Scanner) ReScanGreaterThanToken

func (s *Scanner) ReScanGreaterThanToken() ast.Kind

func (*Scanner) ReScanHashToken

func (s *Scanner) ReScanHashToken() ast.Kind

func (*Scanner) ReScanJsxAttributeValue

func (s *Scanner) ReScanJsxAttributeValue() ast.Kind

func (*Scanner) ReScanJsxToken

func (s *Scanner) ReScanJsxToken(allowMultilineJsxText bool) ast.Kind

func (*Scanner) ReScanLessThanToken

func (s *Scanner) ReScanLessThanToken() ast.Kind

func (*Scanner) ReScanQuestionToken

func (s *Scanner) ReScanQuestionToken() ast.Kind

func (*Scanner) ReScanSlashToken

func (s *Scanner) ReScanSlashToken() ast.Kind

!!! https://github.com/microsoft/TypeScript/pull/55600

func (*Scanner) ReScanTemplateToken

func (s *Scanner) ReScanTemplateToken(isTaggedTemplate bool) ast.Kind

func (*Scanner) Reset

func (s *Scanner) Reset()

func (*Scanner) ResetPos

func (s *Scanner) ResetPos(pos int)

func (*Scanner) Rewind

func (s *Scanner) Rewind(state ScannerState)

func (*Scanner) Scan

func (s *Scanner) Scan() ast.Kind

func (*Scanner) ScanJSDocCommentTextToken

func (s *Scanner) ScanJSDocCommentTextToken(inBackticks bool) ast.Kind

* In addition to the usual JSDoc ast.Kinds, can also return ast.KindJSDocCommentTextToken

func (*Scanner) ScanJSDocToken

func (s *Scanner) ScanJSDocToken() ast.Kind

func (*Scanner) ScanJsxAttributeValue

func (s *Scanner) ScanJsxAttributeValue() ast.Kind

func (*Scanner) ScanJsxIdentifier

func (s *Scanner) ScanJsxIdentifier() ast.Kind

Scans a JSX identifier; these differ from normal identifiers in that they allow dashes

func (*Scanner) ScanJsxToken

func (s *Scanner) ScanJsxToken() ast.Kind

func (*Scanner) ScanJsxTokenEx

func (s *Scanner) ScanJsxTokenEx(allowMultilineJsxText bool) ast.Kind

func (*Scanner) SetJSDocParsingMode

func (s *Scanner) SetJSDocParsingMode(kind JSDocParsingMode)

func (*Scanner) SetLanguageVariant

func (s *Scanner) SetLanguageVariant(languageVariant core.LanguageVariant)

func (*Scanner) SetOnError

func (s *Scanner) SetOnError(errorCallback ErrorCallback)

func (*Scanner) SetScriptKind

func (s *Scanner) SetScriptKind(scriptKind core.ScriptKind)

func (*Scanner) SetScriptTarget

func (s *Scanner) SetScriptTarget(scriptTarget core.ScriptTarget)

func (*Scanner) SetSkipJsDocLeadingAsterisks

func (scanner *Scanner) SetSkipJsDocLeadingAsterisks(skip bool)

func (*Scanner) SetText

func (s *Scanner) SetText(text string)

func (*Scanner) Text

func (s *Scanner) Text() string

func (*Scanner) Token

func (s *Scanner) Token() ast.Kind

func (*Scanner) TokenEnd

func (s *Scanner) TokenEnd() int

func (*Scanner) TokenFlags

func (s *Scanner) TokenFlags() ast.TokenFlags

func (*Scanner) TokenFullStart

func (s *Scanner) TokenFullStart() int

func (*Scanner) TokenRange

func (s *Scanner) TokenRange() core.TextRange

func (*Scanner) TokenStart

func (s *Scanner) TokenStart() int

func (*Scanner) TokenText

func (s *Scanner) TokenText() string

func (*Scanner) TokenValue

func (s *Scanner) TokenValue() string

type ScannerState

type ScannerState struct {
	// contains filtered or unexported fields
}

type SkipTriviaOptions

type SkipTriviaOptions struct {
	StopAfterLineBreak bool
	StopAtComments     bool
	InJSDoc            bool
}

Jump to

Keyboard shortcuts

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