semantic

package
v1.5.2 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package semantic provides semantic token analysis for syntax highlighting.

It generates semantic tokens following the LSP specification, enabling editors to provide accurate syntax highlighting based on the semantic meaning of code elements rather than just lexical patterns.

Package semantic provides semantic token support for LSP.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Encode

func Encode(tokens []Token) []uint32

Encode encodes tokens to LSP delta format. Returns array of: [deltaLine, deltaStartChar, length, tokenType, tokenModifiers]

Types

type Legend

type Legend struct {
	TokenTypes     []string
	TokenModifiers []string
}

Legend describes available token types and modifiers.

func DefaultLegend

func DefaultLegend() *Legend

DefaultLegend returns the standard legend for our semantic tokens.

type Provider

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

Provider computes semantic tokens for a file.

func NewProvider

func NewProvider(symbols *index.SymbolIndex) *Provider

NewProvider creates a semantic tokens provider.

func (*Provider) TokensFull

func (p *Provider) TokensFull(file string) []Token

TokensFull returns all semantic tokens for a file.

func (*Provider) TokensRange

func (p *Provider) TokensRange(file string, span diag.Span) []Token

TokensRange returns semantic tokens for a range.

type Token

type Token struct {
	Span      diag.Span
	Type      TokenType
	Modifiers TokenModifier
}

Token represents a single semantic token.

func Decode

func Decode(data []uint32) []Token

Decode decodes LSP delta format back to tokens.

type TokenModifier

type TokenModifier uint32

TokenModifier represents semantic token modifiers as a bitmask.

const (
	ModDeclaration TokenModifier = 1 << iota
	ModDefinition
	ModReadonly
	ModStatic
	ModDeprecated
	ModAbstract
	ModAsync
	ModModification
	ModDocumentation
	ModDefaultLibrary
	// Custom modifiers for Lua
	ModPure    // function is pure (no side effects)
	ModEscapes // variable escapes its scope
	ModUnused  // variable is unused
	ModMutable // variable is mutated
)

func (TokenModifier) String

func (m TokenModifier) String() string

String returns modifier names.

type TokenType

type TokenType uint32

TokenType represents semantic token types.

const (
	TokNamespace TokenType = iota
	TokType
	TokClass
	TokEnum
	TokInterface
	TokStruct
	TokTypeParameter
	TokParameter
	TokVariable
	TokProperty
	TokEnumMember
	TokEvent
	TokFunction
	TokMethod
	TokMacro
	TokKeyword
	TokModifier
	TokComment
	TokString
	TokNumber
	TokRegexp
	TokOperator
)

func (TokenType) String

func (t TokenType) String() string

String returns the LSP token type name.

Jump to

Keyboard shortcuts

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