Module ffi

Source

Structs§

TSInput
TSInputEdit
TSLanguage
TSLanguageMetadata
The metadata associated with a language.
TSLogger
TSLookaheadIterator
TSNode
TSParseOptions
TSParseState
TSParser
TSPoint
TSQuery
TSQueryCapture
TSQueryCursor
TSQueryCursorOptions
TSQueryCursorState
TSQueryMatch
TSQueryPredicateStep
TSRange
TSTree
TSTreeCursor
TSWasmError
TSWasmStore
wasm_engine_t

Constants§

TREE_SITTER_LANGUAGE_VERSION
TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION
TSInputEncodingCustom
TSInputEncodingUTF8
TSInputEncodingUTF16BE
TSInputEncodingUTF16LE
TSLogTypeLex
TSLogTypeParse
TSQuantifierOne
TSQuantifierOneOrMore
TSQuantifierZero
TSQuantifierZeroOrMore
TSQuantifierZeroOrOne
TSQueryErrorCapture
TSQueryErrorField
TSQueryErrorLanguage
TSQueryErrorNodeType
TSQueryErrorNone
TSQueryErrorStructure
TSQueryErrorSyntax
TSQueryPredicateStepTypeCapture
TSQueryPredicateStepTypeDone
TSQueryPredicateStepTypeString
TSSymbolTypeAnonymous
TSSymbolTypeAuxiliary
TSSymbolTypeRegular
TSSymbolTypeSupertype
TSWasmErrorKindAllocate
TSWasmErrorKindCompile
TSWasmErrorKindInstantiate
TSWasmErrorKindNone
TSWasmErrorKindParse

Functions§

ts_language_abi_version
Get the ABI version number for this language. This version number is used to ensure that languages were generated by a compatible version of Tree-sitter.
ts_language_copy
Get another reference to the given language.
ts_language_delete
Free any dynamically-allocated resources for this language, if this is the last reference.
ts_language_field_count
Get the number of distinct field names in the language.
ts_language_field_id_for_name
Get the numerical id for the given field name string.
ts_language_field_name_for_id
Get the field name string for the given numerical id.
ts_language_is_wasm
Check if the language came from a Wasm module. If so, then in order to use this language with a Parser, that parser must have a Wasm store assigned.
ts_language_metadata
Get the metadata for this language. This information is generated by the CLI, and relies on the language author providing the correct metadata in the language’s tree-sitter.json file.
ts_language_name
Get the name of this language. This returns NULL in older parsers.
ts_language_next_state
Get the next parse state. Combine this with lookahead iterators to generate completion suggestions or valid symbols in error nodes. Use ts_node_grammar_symbol for valid symbols.
ts_language_state_count
Get the number of valid states in this language.
ts_language_subtypes
Get a list of all subtype symbol ids for a given supertype symbol.
ts_language_supertypes
Get a list of all supertype symbols for the language.
ts_language_symbol_count
Get the number of distinct node types in the language.
ts_language_symbol_for_name
Get the numerical id for the given node type string.
ts_language_symbol_name
Get a node type string for the given numerical id.
ts_language_symbol_type
Check whether the given node type id belongs to named nodes, anonymous nodes, or a hidden nodes.
ts_language_version
@deprecated use ts_language_abi_version instead, this will be removed in 0.26.
ts_lookahead_iterator_current_symbol
Get the current symbol of the lookahead iterator;
ts_lookahead_iterator_current_symbol_name
Get the current symbol type of the lookahead iterator as a null terminated string.
ts_lookahead_iterator_delete
Delete a lookahead iterator freeing all the memory used.
ts_lookahead_iterator_language
Get the current language of the lookahead iterator.
ts_lookahead_iterator_new
Create a new lookahead iterator for the given language and parse state.
ts_lookahead_iterator_next
Advance the lookahead iterator to the next symbol.
ts_lookahead_iterator_reset
Reset the lookahead iterator.
ts_lookahead_iterator_reset_state
Reset the lookahead iterator to another state.
ts_node_child
Get the node’s child at the given index, where zero represents the first child.
ts_node_child_by_field_id
Get the node’s child with the given numerical field id.
ts_node_child_by_field_name
Get the node’s child with the given field name.
ts_node_child_count
Get the node’s number of children.
ts_node_child_with_descendant
Get the node that contains descendant.
ts_node_descendant_count
Get the node’s number of descendants, including one for the node itself.
ts_node_descendant_for_byte_range
Get the smallest node within this node that spans the given range of bytes or (row, column) positions.
ts_node_descendant_for_point_range
ts_node_edit
Edit the node to keep it in-sync with source code that has been edited.
ts_node_end_byte
Get the node’s end byte.
ts_node_end_point
Get the node’s end position in terms of rows and columns.
ts_node_eq
Check if two nodes are identical.
ts_node_field_name_for_child
Get the field name for node’s child at the given index, where zero represents the first child. Returns NULL, if no field is found.
ts_node_field_name_for_named_child
Get the field name for node’s named child at the given index, where zero represents the first named child. Returns NULL, if no field is found.
ts_node_first_child_for_byte
Get the node’s first child that contains or starts after the given byte offset.
ts_node_first_named_child_for_byte
Get the node’s first named child that contains or starts after the given byte offset.
ts_node_grammar_symbol
Get the node’s type as a numerical id as it appears in the grammar ignoring aliases. This should be used in ts_language_next_state instead of ts_node_symbol.
ts_node_grammar_type
Get the node’s type as it appears in the grammar ignoring aliases as a null-terminated string.
ts_node_has_changes
Check if a syntax node has been edited.
ts_node_has_error
Check if the node is a syntax error or contains any syntax errors.
ts_node_is_error
Check if the node is a syntax error.
ts_node_is_extra
Check if the node is extra. Extra nodes represent things like comments, which are not required the grammar, but can appear anywhere.
ts_node_is_missing
Check if the node is missing. Missing nodes are inserted by the parser in order to recover from certain kinds of syntax errors.
ts_node_is_named
Check if the node is named. Named nodes correspond to named rules in the grammar, whereas anonymous nodes correspond to string literals in the grammar.
ts_node_is_null
Check if the node is null. Functions like ts_node_child and ts_node_next_sibling will return a null node to indicate that no such node was found.
ts_node_language
Get the node’s language.
ts_node_named_child
Get the node’s named child at the given index.
ts_node_named_child_count
Get the node’s number of named children.
ts_node_named_descendant_for_byte_range
Get the smallest named node within this node that spans the given range of bytes or (row, column) positions.
ts_node_named_descendant_for_point_range
ts_node_next_named_sibling
Get the node’s next / previous named sibling.
ts_node_next_parse_state
Get the parse state after this node.
ts_node_next_sibling
Get the node’s next / previous sibling.
ts_node_parent
Get the node’s immediate parent. Prefer ts_node_child_with_descendant for iterating over the node’s ancestors.
ts_node_parse_state
Get this node’s parse state.
ts_node_prev_named_sibling
ts_node_prev_sibling
ts_node_start_byte
Get the node’s start byte.
ts_node_start_point
Get the node’s start position in terms of rows and columns.
ts_node_string
Get an S-expression representing the node as a string.
ts_node_symbol
Get the node’s type as a numerical id.
ts_node_type
Get the node’s type as a null-terminated string.
ts_parser_cancellation_flag
@deprecated use ts_parser_parse_with_options and pass in a callback instead, this will be removed in 0.26.
ts_parser_delete
Delete the parser, freeing all of the memory that it used.
ts_parser_included_ranges
Get the ranges of text that the parser will include when parsing.
ts_parser_language
Get the parser’s current language.
ts_parser_logger
Get the parser’s current logger.
ts_parser_new
Create a new parser.
ts_parser_parse
Use the parser to parse some source code and create a syntax tree.
ts_parser_parse_string
Use the parser to parse some source code stored in one contiguous buffer. The first two parameters are the same as in the ts_parser_parse function above. The second two parameters indicate the location of the buffer and its length in bytes.
ts_parser_parse_string_encoding
Use the parser to parse some source code stored in one contiguous buffer with a given encoding. The first four parameters work the same as in the ts_parser_parse_string method above. The final parameter indicates whether the text is encoded as UTF8 or UTF16.
ts_parser_parse_with_options
Use the parser to parse some source code and create a syntax tree, with some options.
ts_parser_print_dot_graphs
Set the file descriptor to which the parser should write debugging graphs during parsing. The graphs are formatted in the DOT language. You may want to pipe these graphs directly to a dot(1) process in order to generate SVG output. You can turn off this logging by passing a negative number.
ts_parser_reset
Instruct the parser to start the next parse from the beginning.
ts_parser_set_cancellation_flag
@deprecated use ts_parser_parse_with_options and pass in a callback instead, this will be removed in 0.26.
ts_parser_set_included_ranges
Set the ranges of text that the parser should include when parsing.
ts_parser_set_language
Set the language that the parser should use for parsing.
ts_parser_set_logger
Set the logger that a parser should use during parsing.
ts_parser_set_timeout_micros
@deprecated use ts_parser_parse_with_options and pass in a callback instead, this will be removed in 0.26.
ts_parser_set_wasm_store
Assign the given Wasm store to the parser. A parser must have a Wasm store in order to use Wasm languages.
ts_parser_take_wasm_store
Remove the parser’s current Wasm store and return it. This returns NULL if the parser doesn’t have a Wasm store.
ts_parser_timeout_micros
@deprecated use ts_parser_parse_with_options and pass in a callback instead, this will be removed in 0.26.
ts_query_capture_count
ts_query_capture_name_for_id
Get the name and length of one of the query’s captures, or one of the query’s string literals. Each capture and string is associated with a numeric id based on the order that it appeared in the query’s source.
ts_query_capture_quantifier_for_id
Get the quantifier of the query’s captures. Each capture is * associated with a numeric id based on the order that it appeared in the query’s source.
ts_query_cursor_delete
Delete a query cursor, freeing all of the memory that it used.
ts_query_cursor_did_exceed_match_limit
Manage the maximum number of in-progress matches allowed by this query cursor.
ts_query_cursor_exec
Start running a given query on a given node.
ts_query_cursor_exec_with_options
Start running a given query on a given node, with some options.
ts_query_cursor_match_limit
ts_query_cursor_new
Create a new cursor for executing a given query.
ts_query_cursor_next_capture
Advance to the next capture of the currently running query.
ts_query_cursor_next_match
Advance to the next match of the currently running query.
ts_query_cursor_remove_match
ts_query_cursor_set_byte_range
Set the range of bytes in which the query will be executed.
ts_query_cursor_set_match_limit
ts_query_cursor_set_max_start_depth
Set the maximum start depth for a query cursor.
ts_query_cursor_set_point_range
Set the range of (row, column) positions in which the query will be executed.
ts_query_cursor_set_timeout_micros
@deprecated use ts_query_cursor_exec_with_options and pass in a callback instead, this will be removed in 0.26.
ts_query_cursor_timeout_micros
@deprecated use ts_query_cursor_exec_with_options and pass in a callback instead, this will be removed in 0.26.
ts_query_delete
Delete a query, freeing all of the memory that it used.
ts_query_disable_capture
Disable a certain capture within a query.
ts_query_disable_pattern
Disable a certain pattern within a query.
ts_query_end_byte_for_pattern
Get the byte offset where the given pattern ends in the query’s source.
ts_query_is_pattern_guaranteed_at_step
ts_query_is_pattern_non_local
ts_query_is_pattern_rooted
ts_query_new
Create a new query from a string containing one or more S-expression patterns. The query is associated with a particular language, and can only be run on syntax nodes parsed with that language.
ts_query_pattern_count
Get the number of patterns, captures, or string literals in the query.
ts_query_predicates_for_pattern
Get all of the predicates for the given pattern in the query.
ts_query_start_byte_for_pattern
Get the byte offset where the given pattern starts in the query’s source.
ts_query_string_count
ts_query_string_value_for_id
ts_set_allocator
Set the allocation functions used by the library.
ts_tree_copy
Create a shallow copy of the syntax tree. This is very fast.
ts_tree_cursor_copy
ts_tree_cursor_current_depth
Get the depth of the cursor’s current node relative to the original node that the cursor was constructed with.
ts_tree_cursor_current_descendant_index
Get the index of the cursor’s current node out of all of the descendants of the original node that the cursor was constructed with.
ts_tree_cursor_current_field_id
Get the field id of the tree cursor’s current node.
ts_tree_cursor_current_field_name
Get the field name of the tree cursor’s current node.
ts_tree_cursor_current_node
Get the tree cursor’s current node.
ts_tree_cursor_delete
Delete a tree cursor, freeing all of the memory that it used.
ts_tree_cursor_goto_descendant
Move the cursor to the node that is the nth descendant of the original node that the cursor was constructed with, where zero represents the original node itself.
ts_tree_cursor_goto_first_child
Move the cursor to the first child of its current node.
ts_tree_cursor_goto_first_child_for_byte
Move the cursor to the first child of its current node that contains or starts after the given byte offset or point.
ts_tree_cursor_goto_first_child_for_point
ts_tree_cursor_goto_last_child
Move the cursor to the last child of its current node.
ts_tree_cursor_goto_next_sibling
Move the cursor to the next sibling of its current node.
ts_tree_cursor_goto_parent
Move the cursor to the parent of its current node.
ts_tree_cursor_goto_previous_sibling
Move the cursor to the previous sibling of its current node.
ts_tree_cursor_new
Create a new tree cursor starting from the given node.
ts_tree_cursor_reset
Re-initialize a tree cursor to start at the original node that the cursor was constructed with.
ts_tree_cursor_reset_to
Re-initialize a tree cursor to the same position as another cursor.
ts_tree_delete
Delete the syntax tree, freeing all of the memory that it used.
ts_tree_edit
Edit the syntax tree to keep it in sync with source code that has been edited.
ts_tree_get_changed_ranges
Compare an old edited syntax tree to a new syntax tree representing the same document, returning an array of ranges whose syntactic structure has changed.
ts_tree_included_ranges
Get the array of included ranges that was used to parse the syntax tree.
ts_tree_language
Get the language that was used to parse the syntax tree.
ts_tree_print_dot_graph
Write a DOT graph describing the syntax tree to the given file.
ts_tree_root_node
Get the root node of the syntax tree.
ts_tree_root_node_with_offset
Get the root node of the syntax tree, but with its position shifted forward by the given offset.
ts_wasm_store_delete
Free the memory associated with the given Wasm store.
ts_wasm_store_language_count
Get the number of languages instantiated in the given wasm store.
ts_wasm_store_load_language
Create a language from a buffer of Wasm. The resulting language behaves like any other Tree-sitter language, except that in order to use it with a parser, that parser must have a Wasm store. Note that the language can be used with any Wasm store, it doesn’t need to be the same store that was used to originally load it.
ts_wasm_store_new
Create a Wasm store.

Type Aliases§

DecodeFunction
TSFieldId
TSInputEncoding
TSLogType
TSQuantifier
TSQueryError
TSQueryPredicateStepType
TSStateId
TSSymbol
TSSymbolType
TSWasmEngine
TSWasmErrorKind