batgrl.queries#

Functions and classes for syntax highlighting with tree-sitter.

Functions

_find_tree_sitter_language(language)

changed_ranges_point_range(changed_ranges)

Combine a syntax tree's changed ranges into a single range.

get_highlighter(language)

Return a highlighter for a given language.

register_language(language_name, language, ...)

Register a tree-sitter language and its queries for syntax highlighting.

Classes

Highlighter(language_name, language, parser, ...)

Language, parser, and queries needed for syntax highlighting.

class batgrl.queries.Highlighter(language_name: str, language: Language, parser: Parser, highlights: Query, injections: Query | None = None)#

Bases: object

Language, parser, and queries needed for syntax highlighting.

Attributes:
injections
highlights: Query#

A highlight query for syntax highlighting.

injections: Query | None = None#

Optional injection query for injected languages.

language: Language#

A tree-sitter language.

language_name: str#

Name of language.

parser: Parser#

A tree-sitter parser for given language.

batgrl.queries.changed_ranges_point_range(changed_ranges: list[Range]) tuple[TSPoint, TSPoint]#

Combine a syntax tree’s changed ranges into a single range.

Parameters:
changed_rangeslist[Range]

Non-empty list of changed ranges.

Returns:
tuple[TSPoint, TSPoint]

Combined range of changed ranges.

batgrl.queries.get_highlighter(language: str) Highlighter | None#

Return a highlighter for a given language.

Parameters:
languagestr

Name of the language.

Returns:
Highlighter | None

Highlighter for a given language if found.

batgrl.queries.register_language(language_name: str, language: Language, highlights_source: str, injections_source: str | None = None) None#

Register a tree-sitter language and its queries for syntax highlighting.

Once registered, a Highlighter for language_name can be retrieved with get_highlighter.

Parameters:
language_namestr

Name of the language.

languagetree_sitter.Language

A tree-sitter language.

highlights_sourcestr

Source for highlight queries.

injections_sourcestr | None, default: None

Optional source for injection queries. Injection language must exist to be highlighted.