Buffer
Subclass of class@Gtk.TextBuffer.
A GtkSourceBuffer
object is the model for class@View widgets. It extends the class@Gtk.TextBuffer class by adding features useful to display and edit source code such as syntax highlighting and bracket matching.
To create a GtkSourceBuffer
use ctor@GtkSource.Buffer.new or ctor@GtkSource.Buffer.new_with_language. The second form is just a convenience function which allows you to initially set a class@Language. You can also directly create a class@View and get its class@Buffer with method@Gtk.TextView.get_buffer.
The highlighting is enabled by default, but you can disable it with method@Buffer.set_highlight_syntax.
Context Classes:
It is possible to retrieve some information from the syntax highlighting engine. The default context classes that are applied to regions of a GtkSourceBuffer
:
comment: the region delimits a comment;
no-spell-check: the region should not be spell checked;
path: the region delimits a path to a file;
string: the region delimits a string.
Custom language definition files can create their own context classes, since the functions like method@Buffer.iter_has_context_class take a string parameter as the context class.
GtkSourceBuffer
provides an API to access the context classes: method@Buffer.iter_has_context_class, method@Buffer.get_context_classes_at_iter, method@Buffer.iter_forward_to_context_class_toggle and method@Buffer.iter_backward_to_context_class_toggle.
And the signal@GtkSource.Buffer::highlight-updated signal permits to be notified when a context class region changes.
Each context class has also an associated class@Gtk.TextTag with the name gtksourceview:context-classes:<name>
. For example to retrieve the class@Gtk.TextTag for the string context class, one can write:
GtkTextTagTable *tag_table;
GtkTextTag *tag;
tag_table = gtk_text_buffer_get_tag_table (buffer);
tag = gtk_text_tag_table_lookup (tag_table, "gtksourceview:context-classes:string");
The tag must be used for read-only purposes.
Accessing a context class via the associated class@Gtk.TextTag is less convenient than the GtkSourceBuffer
API, because:
The tag doesn't always exist, you need to listen to the signal@Gtk.TextTagTable::tag-added and signal@Gtk.TextTagTable::tag-removed signals.
Instead of the signal@GtkSource.Buffer::highlight-updated signal, you can listen to the signal@Gtk.TextBuffer::apply-tag and signal@Gtk.TextBuffer::remove-tag signals.
A possible use-case for accessing a context class via the associated class@Gtk.TextTag is to read the region but without adding a hard dependency on the GtkSourceView library (for example for a spell-checking library that wants to read the no-spell-check region).
Skipped during bindings generation
method
backward_iter_to_source_mark
: In/Out parameter is not supportedmethod
forward_iter_to_source_mark
: In/Out parameter is not supportedmethod
iter_backward_to_context_class_toggle
: In/Out parameter is not supportedmethod
iter_forward_to_context_class_toggle
: In/Out parameter is not supported
Constructors
Properties
Whether to highlight matching brackets in the buffer.
Whether to highlight syntax in the buffer.
Whether the buffer has an implicit trailing newline. See method@Buffer.set_implicit_trailing_newline.
Style scheme. It contains styles for syntax highlighting, optionally foreground, background, cursor color, current line color, and matching brackets style.
Functions
Changes the case of the text between the specified iterators.
The "cursor-moved" signal is emitted when then insertion mark has moved.
The ::highlight-updated signal is emitted when the syntax highlighting and ./class.Buffer.html#context-classes are updated in a certain region of the @buffer.
The ::source-mark-updated signal is emitted each time a mark is added to, moved or removed from the @buffer.
Creates a source mark in the buffer
of category category
.
Forces buffer to analyze and highlight the given area synchronously.
Get all defined context classes at @iter.
Determines whether bracket match highlighting is activated for the source buffer.
Determines whether syntax highlighting is activated in the source buffer.
Returns the class@Language associated with the buffer, see method@Buffer.set_language.
Returns the list of marks of the given category at @iter.
Returns the list of marks of the given category at @line.
Returns the class@StyleScheme associated with the buffer, see method@Buffer.set_style_scheme.
Check if the class @context_class is set on @iter.
Remove all marks of @category between @start and @end from the buffer.
Controls the bracket match highlighting function in the buffer.
Controls whether syntax is highlighted in the buffer.
Sets whether the @buffer has an implicit trailing newline.
Associates a class@Language with the buffer.
Sets a class@StyleScheme to be used by the buffer and the view.