scanner

package
v0.0.0-...-73637ac Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2025 License: Apache-2.0 Imports: 12 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 GetErrorRangeForNode

func GetErrorRangeForNode(sourceFile *ast.SourceFile, node *ast.Node) core.TextRange

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.SourceFileLike, pos int) (line int, character int)

func GetLineStarts

func GetLineStarts(sourceFile ast.SourceFileLike) []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 GetShebang

func GetShebang(text string) string

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 GetViableKeywordSuggestions

func GetViableKeywordSuggestions() []string

func IdentifierToKeywordKind

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

func IsIdentifierPart

func IsIdentifierPart(ch rune) bool

func IsIdentifierPartEx

func IsIdentifierPartEx(ch rune, languageVariant core.LanguageVariant) bool

func IsIdentifierStart

func IsIdentifierStart(ch rune) bool

func IsIdentifierText

func IsIdentifierText(name string, languageVariant core.LanguageVariant) bool

func IsIntrinsicJsxName

func IsIntrinsicJsxName(name string) bool

func IsValidIdentifier

func IsValidIdentifier(s string) 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 StringToToken

func StringToToken(s string) ast.Kind

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 Scanner

type Scanner struct {
	JSDocParsingMode ast.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) ResetTokenState

func (s *Scanner) ResetTokenState(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 ast.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) SetSkipJSDocLeadingAsterisks

func (scanner *Scanner) SetSkipJSDocLeadingAsterisks(skip bool)

func (*Scanner) SetSkipTrivia

func (scanner *Scanner) SetSkipTrivia(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