gtksource.region

Module for [Region] class

Types 3

Region utility.

A [gtksource.region.Region] permits to store a group of subregions of a [gtk.text_buffer.TextBuffer]. [gtksource.region.Region] stores the subregions with pairs of [gtk.text_mark.TextMark]'s, so the region is still valid after insertions and deletions in the [gtk.text_buffer.TextBuffer].

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

The typical use-case of [gtksource.region.Region] is to scan a [gtk.text_buffer.TextBuffer] chunk by chunk, not the whole buffer at once to not block the user interface. The [gtksource.region.Region] represents in that case the remaining region to scan. You can listen to the signal@Gtk.TextBuffer::insert-text and signal@Gtk.TextBuffer::delete-range signals to update the [gtksource.region.Region] accordingly.

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

GtkSourceRegion *region;
GtkSourceRegionIter region_iter;

gtk_source_region_get_start_region_iter (region, ®ion_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 (®ion_iter);
}

Methods
GType _gType() @property
Region self()Returns `this`, for use in `with` statements.
RegionGidBuilder builder()Get builder for [gtksource.region.Region] Returns: New builder object
gtk.text_buffer.TextBuffer buffer() @propertyGet `buffer` property. Returns: The [gtk.text_buffer.TextBuffer]. The #GtkSourceRegion has a weak reference to the buffer.
void addRegion(gtksource.region.Region regionToAdd = null)Adds regiontoadd to region.
void addSubregion(gtk.text_iter.TextIter Start, gtk.text_iter.TextIter End)Adds the subregion delimited by start and end to region.
bool getBounds(out gtk.text_iter.TextIter start, out gtk.text_iter.TextIter end)Gets the start and end bounds of the region.
void getStartRegionIter(out gtksource.region_iter.RegionIter iter)Initializes a `structRegionIter` to the first subregion of region.
gtksource.region.Region intersectRegion(gtksource.region.Region region2 = null)Returns the intersection between region1 and region2.
gtksource.region.Region intersectSubregion(gtk.text_iter.TextIter Start, gtk.text_iter.TextIter End)Returns the intersection between region and the subregion delimited by start and end.
bool isEmpty()Returns whether the region is empty.
void subtractRegion(gtksource.region.Region regionToSubtract = null)Subtracts regiontosubtract from region.
void subtractSubregion(gtk.text_iter.TextIter Start, gtk.text_iter.TextIter End)Subtracts the subregion delimited by start and end from region.
string toString_()Gets a string represention of region, for debugging purposes.
Constructors
this(void * ptr, Flag!"Take" take)
Methods
T buffer(gtk.text_buffer.TextBuffer propval)Set `buffer` property. Params: propval = The [gtk.text_buffer.TextBuffer]. The #GtkSourceRegion has a weak reference to the buffer. Returns: Builder instance for fluent chaining

Fluent builder for [gtksource.region.Region]

Methods