Gtk.TextMark

const Gtk = imports.gi.Gtk;

let text_mark = new Gtk.TextMark({
    left_gravity: value,
    name: value,
});
  

You may wish to begin by reading the <link linkend="TextWidget">text widget conceptual overview</link> which gives an overview of all the objects and data types related to the text widget and how they work together.

A Gtk.TextMark is like a bookmark in a text buffer; it preserves a position in the text. You can convert the mark to an iterator using Gtk.TextBuffer.prototype.get_iter_at_mark. Unlike iterators, marks remain valid across buffer mutations, because their behavior is defined when text is inserted or deleted. When text containing a mark is deleted, the mark remains in the position originally occupied by the deleted text. When text is inserted at a mark, a mark with <firstterm>left gravity</firstterm> will be moved to the beginning of the newly-inserted text, and a mark with <firstterm>right gravity</firstterm> will be moved to the end.

<footnote> "left" and "right" here refer to logical direction (left is the toward the start of the buffer); in some languages such as Hebrew the logically-leftmost text is not actually on the left when displayed. </footnote>

Marks are reference counted, but the reference count only controls the validity of the memory; marks can be deleted from the buffer at any time with Gtk.TextBuffer.prototype.delete_mark. Once deleted from the buffer, a mark is essentially useless.

Marks optionally have names; these can be convenient to avoid passing the Gtk.TextMark object around.

Marks are typically created using the Gtk.TextBuffer.prototype.create_mark function.

Hierarchy

  • GObject.Object
    • Gtk.TextMark