Function: treesit-parser-included-ranges
treesit-parser-included-ranges is a function defined in treesit.c.
Signature
(treesit-parser-included-ranges PARSER)
Documentation
Return the ranges set for PARSER.
If no ranges are set for PARSER, return nil.
See also treesit-parser-set-included-ranges.
Other relevant functions are documented in the treesit group.
Shortdoc
;; treesit
(treesit-parser-included-ranges parser)
e.g. => ((1 . 4) (5 . 8))
Source Code
// Defined in /usr/src/emacs/src/treesit.c
{
treesit_check_parser (parser);
treesit_initialize ();
/* When the parser doesn't have a range set and we call
ts_parser_included_ranges on it, it doesn't return an empty list,
but rather return some garbled data. (A single range where
start_byte = 0, end_byte = UINT32_MAX). So we need to track
whether the parser is ranged ourselves. */
if (!XTS_PARSER (parser)->has_range)
return Qnil;
uint32_t len;
const TSRange *ranges
= ts_parser_included_ranges (XTS_PARSER (parser)->parser, &len);
/* Our return value depends on the buffer state (BUF_BEGV_BYTE,
etc), so we need to sync up. */
treesit_check_buffer_size (XBUFFER (XTS_PARSER (parser)->buffer));
treesit_sync_visible_region (parser);
struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer);
return treesit_make_ranges (ranges, len, buffer);
}