Documentation
¶
Overview ¶
Package tsutil holds tree-sitter helpers shared across the per-language extractors: a per-language parser pool and a tiny query-compile-once wrapper. Internal — not part of the public API.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CaptureIndex ¶
CaptureIndex returns the index of a named capture in q, or -1 if the name is not present. Used at init time to pre-resolve capture names so the hot match-iteration loop can index by uint instead of string.
func MustCompileQuery ¶
MustCompileQuery compiles a tree-sitter query at package init time and panics on failure. The query string is embedded at build time, so a compile error is a developer bug, not a runtime condition — panic is the right escalation.
Types ¶
type CursorPool ¶
type CursorPool struct {
// contains filtered or unexported fields
}
CursorPool hands out *ts.QueryCursor instances. Cursors are also not goroutine-safe individually but are cheap to allocate; pooling avoids the allocation in tight loops.
func NewCursorPool ¶
func NewCursorPool() *CursorPool
NewCursorPool returns an empty pool. Cursors are created lazily.
func (*CursorPool) Get ¶
func (cp *CursorPool) Get() *ts.QueryCursor
Get returns a fresh-or-recycled cursor.
func (*CursorPool) Put ¶
func (cp *CursorPool) Put(c *ts.QueryCursor)
Put returns a cursor to the pool.
type ParserPool ¶
type ParserPool struct {
// contains filtered or unexported fields
}
ParserPool hands out *ts.Parser instances pre-bound to a single language. Parsers are not goroutine-safe individually; the pool lets concurrent callers pick one, parse, return.
func NewParserPool ¶
func NewParserPool(lang *ts.Language) *ParserPool
NewParserPool returns a pool that produces parsers bound to lang.
func (*ParserPool) Get ¶
func (pp *ParserPool) Get() *ts.Parser
Get returns a parser ready to Parse. Callers must Put the parser back when done.
func (*ParserPool) Put ¶
func (pp *ParserPool) Put(p *ts.Parser)
Put returns a parser to the pool. The parser is not Closed — pool users own its lifetime.