Region

class Region(**properties: Any)

Superclasses: Object

Region utility.

A GtkSourceRegion permits to store a group of subregions of a TextBuffer. GtkSourceRegion stores the subregions with pairs of TextMark’s, so the region is still valid after insertions and deletions in the TextBuffer.

The TextMark for the start of a subregion has a left gravity, while the TextMark for the end of a subregion has a right gravity.

The typical use-case of GtkSourceRegion is to scan a TextBuffer chunk by chunk, not the whole buffer at once to not block the user interface. The GtkSourceRegion represents in that case the remaining region to scan. You can listen to the insert_text and delete_range signals to update the GtkSourceRegion accordingly.

To iterate through the subregions, you need to use a RegionIter, for example:

GtkSourceRegion *region;
GtkSourceRegionIter region_iter;

gtk_source_region_get_start_region_iter (region, &region_iter);

while (!gtk_source_region_iter_is_end (&region_iter))
{
        GtkTextIter subregion_start;
        GtkTextIter subregion_end;

        if (!gtk_source_region_iter_get_subregion (&region_iter,
                                                   &subregion_start,
                                                   &subregion_end))
        {
                break;
        }

        // Do something useful with the subregion.

        gtk_source_region_iter_next (&region_iter);
}

Constructors

class Region
classmethod new(buffer: TextBuffer) Region
Parameters:

buffer – a TextBuffer.

Methods

class Region
add_region(region_to_add: Region | None = None) None

Adds region_to_add to region.

region_to_add is not modified.

Parameters:

region_to_add – the Region to add to region, or None.

add_subregion(_start: TextIter, _end: TextIter) None

Adds the subregion delimited by _start and _end to region.

Parameters:
  • _start – the start of the subregion.

  • _end – the end of the subregion.

get_bounds() tuple[bool, TextIter, TextIter]

Gets the start and end bounds of the region.

get_buffer() TextBuffer | None
get_start_region_iter() RegionIter

Initializes a RegionIter to the first subregion of region.

If region is empty, iter will be initialized to the end iterator.

intersect_region(region2: Region | None = None) Region | None

Returns the intersection between region1 and region2.

region1 and region2 are not modified.

Parameters:

region2 – a Region, or None.

intersect_subregion(_start: TextIter, _end: TextIter) Region | None

Returns the intersection between region and the subregion delimited by _start and _end.

region is not modified.

Parameters:
  • _start – the start of the subregion.

  • _end – the end of the subregion.

is_empty() bool

Returns whether the region is empty.

A None region is considered empty.

subtract_region(region_to_subtract: Region | None = None) None

Subtracts region_to_subtract from region.

region_to_subtract is not modified.

Parameters:

region_to_subtract – the Region to subtract from region, or None.

subtract_subregion(_start: TextIter, _end: TextIter) None

Subtracts the subregion delimited by _start and _end from region.

Parameters:
  • _start – the start of the subregion.

  • _end – the end of the subregion.

to_string() str | None

Gets a string represention of region, for debugging purposes.

The returned string contains the character offsets of the subregions. It doesn’t include a newline character at the end of the string.

Properties

class Region
props.buffer: TextBuffer

The TextBuffer. The Region has a weak reference to the buffer.

Fields

class Region
parent_instance