<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gtk" version="4.0"/>
  <package name="gtksourceview-5"/>
  <c:include name="gtksourceview/gtksource.h"/>
  <doc:format name="gi-docgen"/>
  <namespace name="GtkSource"
             version="5"
             shared-library="libgtksourceview-5.so.0.4"
             c:identifier-prefixes="GtkSource"
             c:symbol-prefixes="gtk_source">
    <class name="Annotation"
           c:symbol-prefix="annotation"
           c:type="GtkSourceAnnotation"
           version="5.18"
           parent="GObject.Object"
           glib:type-name="GtkSourceAnnotation"
           glib:get-type="gtk_source_annotation_get_type"
           glib:type-struct="AnnotationClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceannotation.c"
           line="29">Represents an annotation added to [class@View], it has a [property@Annotation:line] property,
[property@Annotation:description], icon and a style.

It will be displayed always at the end of a line.

If the style is GTK_SOURCE_ANNOTATION_STYLE_NONE it will use the same color as [class@SpaceDrawer].</doc>
      <source-position filename="gtksourceview/gtksourceannotation.h"
                       line="55"/>
      <constructor name="new" c:identifier="gtk_source_annotation_new">
        <source-position filename="gtksourceview/gtksourceannotation.h"
                         line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotation.c"
               line="200">a new [class@Annotation]</doc>
          <type name="Annotation" c:type="GtkSourceAnnotation*"/>
        </return-value>
        <parameters>
          <parameter name="description"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="195">the text to display or %NULL.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="196">the icon name to display or %NULL.</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="197">the line where to display the annotation.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="198">#GtkSourceAnnotationStyle</doc>
            <type name="AnnotationStyle" c:type="GtkSourceAnnotationStyle"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_description"
              c:identifier="gtk_source_annotation_get_description"
              glib:get-property="description">
        <source-position filename="gtksourceview/gtksourceannotation.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotation.c"
               line="222">the description text displayed</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="220">a #GtkSourceAnnotation</doc>
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon"
              c:identifier="gtk_source_annotation_get_icon"
              glib:get-property="icon">
        <source-position filename="gtksourceview/gtksourceannotation.h"
                         line="65"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotation.c"
               line="236">a #GIcon or %NULL</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="234">a #GtkSourceAnnotation</doc>
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line"
              c:identifier="gtk_source_annotation_get_line"
              glib:get-property="line">
        <source-position filename="gtksourceview/gtksourceannotation.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotation.c"
               line="250">the line number.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="248">a #GtkSourceAnnotation</doc>
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style"
              c:identifier="gtk_source_annotation_get_style"
              glib:get-property="style">
        <source-position filename="gtksourceview/gtksourceannotation.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotation.c"
               line="264">the style of the annotation</doc>
          <type name="AnnotationStyle" c:type="GtkSourceAnnotationStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotation.c"
                 line="262">a #GtkSourceAnnotation</doc>
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="description"
                version="5.18"
                transfer-ownership="none"
                getter="get_description"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.c"
             line="127">The text description displayed at [property@Annotation:line]</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon"
                version="5.18"
                transfer-ownership="none"
                getter="get_icon">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.c"
             line="140">The icon displayed at [property@Annotation:line]

It will be displayed before the text description</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="line"
                version="5.18"
                transfer-ownership="none"
                getter="get_line"
                default-value="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.c"
             line="155">The line where to display the annotation</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="style"
                version="5.18"
                transfer-ownership="none"
                getter="get_style"
                default-value="GTK_SOURCE_ANNOTATION_STYLE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.c"
             line="170">The style of the annotation</doc>
        <type name="AnnotationStyle"/>
      </property>
    </class>
    <record name="AnnotationClass"
            c:type="GtkSourceAnnotationClass"
            glib:is-gtype-struct-for="Annotation">
      <source-position filename="gtksourceview/gtksourceannotation.h"
                       line="55"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="AnnotationProvider"
           c:symbol-prefix="annotation_provider"
           c:type="GtkSourceAnnotationProvider"
           version="5.18"
           parent="GObject.Object"
           glib:type-name="GtkSourceAnnotationProvider"
           glib:get-type="gtk_source_annotation_provider_get_type"
           glib:type-struct="AnnotationProviderClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceannotationprovider.c"
           line="8">It is used to provide annotations and display them on [class@View] and also populate
[class@HoverDisplay] when the user hovers over an annotation.

You can subclass this object and implement [method@AnnotationProvider.populate_hover_async] and
[method@AnnotationProvider.populate_hover_finish] or connect to [signal@AnnotationProvider::populate]
and call [method@AnnotationProvider.populate] or do it asynchronously.</doc>
      <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                       line="53"/>
      <constructor name="new"
                   c:identifier="gtk_source_annotation_provider_new"
                   version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="124">Used to create a new annotation provider.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotationprovider.c"
               line="129">a new #GtkSourceAnnotationProvider</doc>
          <type name="AnnotationProvider"
                c:type="GtkSourceAnnotationProvider*"/>
        </return-value>
      </constructor>
      <virtual-method name="populate_hover_async"
                      invoker="populate_hover_async"
                      version="5.18"
                      glib:finish-func="populate_hover_finish">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="139">Used to populate the [class@HoverDisplay] asynchronously, use
[method@AnnotationProvider.populate_hover] to do it synchronously.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="141">a #GtkSourceAnnotationProvider</doc>
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
          <parameter name="annotation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="142">a #GtkSourceAnnotation</doc>
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </parameter>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="143">a #GtkSourceHoverDisplay to populate</doc>
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="4">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_hover_finish"
                      invoker="populate_hover_finish"
                      version="5.18"
                      throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="171">Finishes populating the [class@HoverDisplay] asynchronously.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotationprovider.c"
               line="176">%TRUE if successful; otherwise %FALSE and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_annotation"
              c:identifier="gtk_source_annotation_provider_add_annotation"
              version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="191">Add an annotation to the provider.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
          <parameter name="annotation" transfer-ownership="none">
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_hover_async"
              c:identifier="gtk_source_annotation_provider_populate_hover_async"
              version="5.18"
              glib:finish-func="populate_hover_finish">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="139">Used to populate the [class@HoverDisplay] asynchronously, use
[method@AnnotationProvider.populate_hover] to do it synchronously.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="141">a #GtkSourceAnnotationProvider</doc>
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
          <parameter name="annotation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="142">a #GtkSourceAnnotation</doc>
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </parameter>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="143">a #GtkSourceHoverDisplay to populate</doc>
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_hover_finish"
              c:identifier="gtk_source_annotation_provider_populate_hover_finish"
              version="5.18"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="171">Finishes populating the [class@HoverDisplay] asynchronously.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotationprovider.c"
               line="176">%TRUE if successful; otherwise %FALSE and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all"
              c:identifier="gtk_source_annotation_provider_remove_all"
              version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="236">Removes all annotations from the provider.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_annotation"
              c:identifier="gtk_source_annotation_provider_remove_annotation"
              version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotationprovider.c"
             line="212">Remove an annotation from the provider.</doc>
        <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotationprovider.c"
               line="217">%TRUE if the annotation was found and removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </instance-parameter>
          <parameter name="annotation" transfer-ownership="none">
            <type name="Annotation" c:type="GtkSourceAnnotation*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="changed" when="last" version="5.18">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AnnotationProviderClass"
            c:type="GtkSourceAnnotationProviderClass"
            glib:is-gtype-struct-for="AnnotationProvider">
      <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                       line="53"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="populate_hover_async">
        <callback name="populate_hover_async">
          <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                           line="44"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceannotationprovider.c"
                   line="141">a #GtkSourceAnnotationProvider</doc>
              <type name="AnnotationProvider"
                    c:type="GtkSourceAnnotationProvider*"/>
            </parameter>
            <parameter name="annotation" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceannotationprovider.c"
                   line="142">a #GtkSourceAnnotation</doc>
              <type name="Annotation" c:type="GtkSourceAnnotation*"/>
            </parameter>
            <parameter name="display" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceannotationprovider.c"
                   line="143">a #GtkSourceHoverDisplay to populate</doc>
              <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="5">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="5">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_hover_finish">
        <callback name="populate_hover_finish" throws="1">
          <source-position filename="gtksourceview/gtksourceannotationprovider.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotationprovider.c"
                 line="176">%TRUE if successful; otherwise %FALSE and @error is set.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="AnnotationProvider"
                    c:type="GtkSourceAnnotationProvider*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="AnnotationStyle"
                 version="5.18"
                 glib:type-name="GtkSourceAnnotationStyle"
                 glib:get-type="gtk_source_annotation_style_get_type"
                 c:type="GtkSourceAnnotationStyle">
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_ANNOTATION_STYLE_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_ANNOTATION_STYLE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.h"
             line="36">same color as drawn spaces</doc>
      </member>
      <member name="warning"
              value="1"
              c:identifier="GTK_SOURCE_ANNOTATION_STYLE_WARNING"
              glib:nick="warning"
              glib:name="GTK_SOURCE_ANNOTATION_STYLE_WARNING">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.h"
             line="37">same as the diff:changed-line foreground color</doc>
      </member>
      <member name="error"
              value="2"
              c:identifier="GTK_SOURCE_ANNOTATION_STYLE_ERROR"
              glib:nick="error"
              glib:name="GTK_SOURCE_ANNOTATION_STYLE_ERROR">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.h"
             line="38">same as the diff:removed-line foreground color</doc>
      </member>
      <member name="accent"
              value="3"
              c:identifier="GTK_SOURCE_ANNOTATION_STYLE_ACCENT"
              glib:nick="accent"
              glib:name="GTK_SOURCE_ANNOTATION_STYLE_ACCENT">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotation.h"
             line="39">same as the diff:added-line foreground color</doc>
      </member>
    </enumeration>
    <class name="Annotations"
           c:symbol-prefix="annotations"
           c:type="GtkSourceAnnotations"
           version="5.18"
           parent="GObject.Object"
           glib:type-name="GtkSourceAnnotations"
           glib:get-type="gtk_source_annotations_get_type"
           glib:type-struct="AnnotationsClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceannotations.c"
           line="40">Use this object to manage [class@Annotation]s. Each [class@View] has a single annotation
manager and it is guaranteed to be the same for the lifetime of [class@View].

Add [class@AnnotationProvider]s with [method@Annotations.add_provider] to
display all the annotations added to each [class@AnnotationProvider].</doc>
      <source-position filename="gtksourceview/gtksourceannotations.h"
                       line="39"/>
      <method name="add_provider"
              c:identifier="gtk_source_annotations_add_provider">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotations.c"
             line="111">Adds a new annotation provider.</doc>
        <source-position filename="gtksourceview/gtksourceannotations.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotations.c"
                 line="113">a #GtkSourceAnnotations</doc>
            <type name="Annotations" c:type="GtkSourceAnnotations*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotations.c"
                 line="114">a #GtkSourceAnnotationProvider.</doc>
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_provider"
              c:identifier="gtk_source_annotations_remove_provider">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceannotations.c"
             line="143">Removes a provider.</doc>
        <source-position filename="gtksourceview/gtksourceannotations.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceannotations.c"
               line="150">%TRUE if the provider was found and removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotations.c"
                 line="145">a #GtkSourceAnnotations</doc>
            <type name="Annotations" c:type="GtkSourceAnnotations*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceannotations.c"
                 line="146">a #GtkSourceAnnotationProvider.</doc>
            <type name="AnnotationProvider"
                  c:type="GtkSourceAnnotationProvider*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AnnotationsClass"
            c:type="GtkSourceAnnotationsClass"
            glib:is-gtype-struct-for="Annotations">
      <source-position filename="gtksourceview/gtksourceannotations.h"
                       line="39"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="BackgroundPatternType"
                 glib:type-name="GtkSourceBackgroundPatternType"
                 glib:get-type="gtk_source_background_pattern_type_get_type"
                 c:type="GtkSourceBackgroundPatternType">
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_BACKGROUND_PATTERN_TYPE_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_BACKGROUND_PATTERN_TYPE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="71">no pattern</doc>
      </member>
      <member name="grid"
              value="1"
              c:identifier="GTK_SOURCE_BACKGROUND_PATTERN_TYPE_GRID"
              glib:nick="grid"
              glib:name="GTK_SOURCE_BACKGROUND_PATTERN_TYPE_GRID">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="72">grid pattern</doc>
      </member>
    </enumeration>
    <enumeration name="BracketMatchType"
                 glib:type-name="GtkSourceBracketMatchType"
                 glib:get-type="gtk_source_bracket_match_type_get_type"
                 c:type="GtkSourceBracketMatchType">
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_BRACKET_MATCH_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="43">there is no bracket to match.</doc>
      </member>
      <member name="out_of_range"
              value="1"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_OUT_OF_RANGE"
              glib:nick="out-of-range"
              glib:name="GTK_SOURCE_BRACKET_MATCH_OUT_OF_RANGE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="44">matching a bracket
 failed because the maximum range was reached.</doc>
      </member>
      <member name="not_found"
              value="2"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_NOT_FOUND"
              glib:nick="not-found"
              glib:name="GTK_SOURCE_BRACKET_MATCH_NOT_FOUND">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="46">a matching bracket was not found.</doc>
      </member>
      <member name="found"
              value="3"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_FOUND"
              glib:nick="found"
              glib:name="GTK_SOURCE_BRACKET_MATCH_FOUND">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="47">a matching bracket was found.</doc>
      </member>
    </enumeration>
    <class name="Buffer"
           c:symbol-prefix="buffer"
           c:type="GtkSourceBuffer"
           parent="Gtk.TextBuffer"
           glib:type-name="GtkSourceBuffer"
           glib:get-type="gtk_source_buffer_get_type"
           glib:type-struct="BufferClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcebuffer.c"
           line="46">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:&lt;name&gt;`. For example to
retrieve the [class@Gtk.TextTag] for the string context class, one can write:
```c
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");
```
```python
buffer = GtkSource.Buffer()

tag_table = buffer.get_tag_table()
tag = tag_table.lookup(name="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).</doc>
      <source-position filename="gtksourceview/gtksourcebuffer.h" line="109"/>
      <constructor name="new" c:identifier="gtk_source_buffer_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="640">Creates a new source buffer.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="112"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="646">a new source buffer.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="table"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="642">a #GtkTextTagTable, or %NULL to create a new one.</doc>
            <type name="Gtk.TextTagTable" c:type="GtkTextTagTable*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_language"
                   c:identifier="gtk_source_buffer_new_with_language">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="658">Creates a new source buffer using the highlighting patterns in `language`.

This is equivalent to creating a new source buffer with
a new tag table and then calling [method@Buffer.set_language].</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="114"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="667">a new source buffer which will highlight text
according to the highlighting patterns in `language`.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="660">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="bracket_matched">
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="BracketMatchType" c:type="GtkSourceBracketMatchType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="backward_iter_to_source_mark"
              c:identifier="gtk_source_buffer_backward_iter_to_source_mark">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1962">Moves `iter` to the position of the previous [class@Mark] of the given
category.

Returns %TRUE if `iter` was moved. If `category` is NULL, the
previous source mark can be of any category.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1974">whether `iter` was moved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1964">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1965">an iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1966">category to search for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_case" c:identifier="gtk_source_buffer_change_case">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2528">Changes the case of the text between the specified iterators.

Since 5.4, this function will update the position of `start` and
`end` to surround the modified text.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2530">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="case_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2531">how to change the case.</doc>
            <type name="ChangeCaseType" c:type="GtkSourceChangeCaseType"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2532">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2533">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_source_mark"
              c:identifier="gtk_source_buffer_create_source_mark">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1822">Creates a source mark in the `buffer` of category `category`.

A source mark is a [class@Gtk.TextMark] but organized into categories.
Depending on the category a pixbuf can be specified that will be displayed
along the line of the mark.

Like a [class@Gtk.TextMark], a [class@Mark] can be anonymous if the
passed `name` is %NULL.  Also, the buffer owns the marks so you
shouldn't unreference it.

Marks always have left gravity and are moved to the beginning of
the line when the user deletes the line they were in.

Typical uses for a source mark are bookmarks, breakpoints, current
executing instruction indication in a source file, etc..</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1845">a new [class@Mark], owned by the buffer.</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1824">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1825">the name of the mark, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1826">a string defining the mark category.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1827">location to place the mark.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_source_tag"
              c:identifier="gtk_source_buffer_create_source_tag"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="3077">In short, this is the same function as [method@Gtk.TextBuffer.create_tag] but
instead of creating a [class@Gtk.TextTag], this function creates a [class@Tag].

This function creates a [class@Tag] and adds it to the tag table for
`buffer`.  Equivalent to calling [ctor@Gtk.TextTag.new] and then adding the tag to
the buffer’s tag table. The returned tag is owned by the buffer’s tag table,
so the ref count will be equal to one.

If `tag_name` is %NULL, the tag is anonymous.

If `tag_name` is non-%NULL, a tag called `tag_name` must not already
exist in the tag table for this buffer.

The `first_property_name` argument and subsequent arguments are a list
of properties to set on the tag, as with [method@GObject.Object.set].</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="203"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="3100">a new [class@Tag].</doc>
          <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3079">a #GtkSourceBuffer</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="tag_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3080">name of the new tag, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="first_property_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3081">name of first property to set, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3082">%NULL-terminated list of property names and values</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_highlight"
              c:identifier="gtk_source_buffer_ensure_highlight">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1661">Forces buffer to analyze and highlight the given area synchronously.

**Note**:

This is a potentially slow operation and should be used only
when you need to make sure that some text not currently
visible is highlighted, for instance before printing.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1663">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1664">start of the area to highlight.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1665">end of the area to highlight.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_iter_to_source_mark"
              c:identifier="gtk_source_buffer_forward_iter_to_source_mark">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1928">Moves `iter` to the position of the next [class@Mark] of the given
`category`.

Returns %TRUE if `iter` was moved. If `category` is NULL, the
next source mark can be of any category.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1940">whether `iter` was moved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1930">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1931">an iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1932">category to search for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_context_classes_at_iter"
              c:identifier="gtk_source_buffer_get_context_classes_at_iter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2181">Get all defined context classes at @iter.

See the [class@Buffer] description for the list of default context classes.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="172"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="2190">a new %NULL
terminated array of context class names.
Use g_strfreev() to free the array if it is no longer needed.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2183">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2184">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_highlight_matching_brackets"
              c:identifier="gtk_source_buffer_get_highlight_matching_brackets"
              glib:get-property="highlight-matching-brackets">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1415">Determines whether bracket match highlighting is activated for the
source buffer.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1422">%TRUE if the source buffer will highlight matching
brackets.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1417">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_highlight_syntax"
              c:identifier="gtk_source_buffer_get_highlight_syntax"
              glib:get-property="highlight-syntax">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1466">Determines whether syntax highlighting is activated in the source
buffer.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1473">%TRUE if syntax highlighting is enabled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1468">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_implicit_trailing_newline"
              c:identifier="gtk_source_buffer_get_implicit_trailing_newline"
              glib:get-property="implicit-trailing-newline">
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="201"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="3065">whether the @buffer has an implicit trailing newline.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3063">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="gtk_source_buffer_get_language"
              glib:get-property="language">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1572">Returns the [class@Language] associated with the buffer,
see [method@Buffer.set_language].

The returned object should not be unreferenced by the user.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="126"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1581">the [class@Language] associated
with the buffer, or %NULL.</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1574">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_loading"
              c:identifier="gtk_source_buffer_get_loading"
              glib:get-property="loading">
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="131"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_markup"
              c:identifier="gtk_source_buffer_get_markup"
              version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="3562">Returns the text in the specified range converting any text formatting
to equivalent Pango markup tags.
This allows the styled text to be displayed in other widgets that support
Pango markup, such as #GtkLabel.

For very long ranges this function can take long enough that you could
potentially miss frame renderings.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="208"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="3576">a newly-allocated string containing the text
  with Pango markup, or %NULL if @start and @end are invalid.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3564">a #GtkSourceBuffer</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3565">start of range as a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3566">end of range as a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source_marks_at_iter"
              c:identifier="gtk_source_buffer_get_source_marks_at_iter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1996">Returns the list of marks of the given category at @iter.

If @category is %NULL it returns all marks at @iter.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="155"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="2006">
a newly allocated #GSList.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Mark"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1998">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1999">an iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2000">category to search for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source_marks_at_line"
              c:identifier="gtk_source_buffer_get_source_marks_at_line">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2029">Returns the list of marks of the given category at @line.

If @category is %NULL, all marks at @line are returned.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="159"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="2039">
a newly allocated #GSList.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Mark"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2031">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2032">a line number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2033">category to search for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_style_scheme"
              c:identifier="gtk_source_buffer_get_style_scheme"
              glib:get-property="style-scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1725">Returns the [class@StyleScheme] associated with the buffer,
see [method@Buffer.set_style_scheme].

The returned object should not be unreferenced by the user.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="133"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="1734">the [class@StyleScheme]
associated with the buffer, or %NULL.</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1727">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iter_backward_to_context_class_toggle"
              c:identifier="gtk_source_buffer_iter_backward_to_context_class_toggle">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2271">Moves backward to the next toggle (on or off) of the context class.

If no matching context class toggles are found, returns %FALSE, otherwise %TRUE.
Does not return toggles located at @iter, only toggles after @iter. Sets
@iter to the location of the toggle, or to the end of the buffer if no
toggle is found.

See the [class@Buffer] description for the list of default context classes.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="2286">whether we found a context class toggle before @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2273">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2274">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="context_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2275">the context class.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_forward_to_context_class_toggle"
              c:identifier="gtk_source_buffer_iter_forward_to_context_class_toggle">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2233">Moves forward to the next toggle (on or off) of the context class.

If no matching context class toggles are found, returns %FALSE, otherwise %TRUE.
Does not return toggles located at @iter, only toggles after @iter. Sets
@iter to the location of the toggle, or to the end of the buffer if no
toggle is found.

See the [class@Buffer] description for the list of default context classes.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="175"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="2248">whether we found a context class toggle after @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2235">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2236">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="context_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2237">the context class.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_has_context_class"
              c:identifier="gtk_source_buffer_iter_has_context_class">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2148">Check if the class @context_class is set on @iter.

See the [class@Buffer] description for the list of default context classes.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcebuffer.c"
               line="2158">whether @iter has the context class.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2150">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2151">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="context_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2152">class to search for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="join_lines" c:identifier="gtk_source_buffer_join_lines">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2619">Joins the lines of text between the specified iterators.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="188"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2621">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2622">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2623">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_source_marks"
              c:identifier="gtk_source_buffer_remove_source_marks">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2074">Remove all marks of @category between @start and @end from the buffer.

If @category is NULL, all marks in the range will be removed.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2076">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2077">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2078">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2079">category to search for, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_matching_brackets"
              c:identifier="gtk_source_buffer_set_highlight_matching_brackets"
              glib:set-property="highlight-matching-brackets">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1435">Controls the bracket match highlighting function in the buffer.

If activated, when you position your cursor over a bracket character
(a parenthesis, a square bracket, etc.) the matching opening or
closing bracket character will be highlighted.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1437">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1438">%TRUE if you want matching brackets highlighted.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_syntax"
              c:identifier="gtk_source_buffer_set_highlight_syntax"
              glib:set-property="highlight-syntax">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1485">Controls whether syntax is highlighted in the buffer.

If @highlight is %TRUE, the text will be highlighted according to the syntax
patterns specified in the [class@Language] set with [method@Buffer.set_language].

If @highlight is %FALSE, syntax highlighting is disabled and all the
[class@Gtk.TextTag] objects that have been added by the syntax highlighting engine
are removed from the buffer.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1487">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1488">%TRUE to enable syntax highlighting, %FALSE to disable it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_implicit_trailing_newline"
              c:identifier="gtk_source_buffer_set_implicit_trailing_newline"
              glib:set-property="implicit-trailing-newline">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="3023">Sets whether the @buffer has an implicit trailing newline.

If an explicit trailing newline is present in a [class@Gtk.TextBuffer], [class@Gtk.TextView]
shows it as an empty line. This is generally not what the user expects.

If @implicit_trailing_newline is %TRUE (the default value):
 - when a [class@FileLoader] loads the content of a file into the @buffer,
   the trailing newline (if present in the file) is not inserted into the
   @buffer.
 - when a [class@FileSaver] saves the content of the @buffer into a file, a
   trailing newline is added to the file.

On the other hand, if @implicit_trailing_newline is %FALSE, the file's
content is not modified when loaded into the @buffer, and the @buffer's
content is not modified when saved into a file.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="198"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3025">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="implicit_trailing_newline"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="3026">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_language"
              c:identifier="gtk_source_buffer_set_language"
              glib:set-property="language">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1516">Associates a [class@Language] with the buffer.

Note that a [class@Language] affects not only the syntax highlighting, but
also the [context classes](./class.Buffer.html#context-classes). If you want to disable just the
syntax highlighting, see [method@Buffer.set_highlight_syntax].

The buffer holds a reference to @language.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1518">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="language"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1519">a #GtkSourceLanguage to set, or %NULL.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style_scheme"
              c:identifier="gtk_source_buffer_set_style_scheme"
              glib:set-property="style-scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="1684">Sets a [class@StyleScheme] to be used by the buffer and the view.

Note that a [class@StyleScheme] affects not only the syntax highlighting,
but also other [class@View] features such as highlighting the current line,
matching brackets, the line numbers, etc.

Instead of setting a %NULL @scheme, it is better to disable syntax
highlighting with [method@Buffer.set_highlight_syntax], and setting the
[class@StyleScheme] with the "classic" or "tango" ID, because those two
style schemes follow more closely the GTK theme (for example for the
background color).

The buffer holds a reference to @scheme.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1686">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="scheme"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="1687">a #GtkSourceStyleScheme or %NULL.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sort_lines" c:identifier="gtk_source_buffer_sort_lines">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="2780">Sort the lines of text between the specified iterators.</doc>
        <source-position filename="gtksourceview/gtksourcebuffer.h"
                         line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2782">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2783">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2784">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2785">#GtkSourceSortFlags specifying how the sort should behave</doc>
            <type name="SortFlags" c:type="GtkSourceSortFlags"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="2786">sort considering the text starting at the given column</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="highlight-matching-brackets"
                writable="1"
                transfer-ownership="none"
                setter="set_highlight_matching_brackets"
                getter="get_highlight_matching_brackets"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="324">Whether to highlight matching brackets in the buffer.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="highlight-syntax"
                writable="1"
                transfer-ownership="none"
                setter="set_highlight_syntax"
                getter="get_highlight_syntax"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="311">Whether to highlight syntax in the buffer.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="implicit-trailing-newline"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_implicit_trailing_newline"
                getter="get_implicit_trailing_newline"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="379">Whether the buffer has an implicit trailing newline. See
[method@Buffer.set_implicit_trailing_newline].</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="language"
                writable="1"
                transfer-ownership="none"
                setter="set_language"
                getter="get_language">
        <type name="Language"/>
      </property>
      <property name="loading"
                version="5.10"
                transfer-ownership="none"
                getter="get_loading"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="345">The "loading" property denotes that a `GtkSourceFileLoader` is
currently loading the buffer.

Applications may want to use this setting to avoid doing work
while the buffer is loading such as spellchecking.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="style-scheme"
                writable="1"
                transfer-ownership="none"
                setter="set_style_scheme"
                getter="get_style_scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="364">Style scheme. It contains styles for syntax highlighting, optionally
foreground, background, cursor color, current line color, and matching
brackets style.</doc>
        <type name="StyleScheme"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TextBuffer" c:type="GtkTextBuffer"/>
      </field>
      <glib:signal name="bracket-matched" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="455">@iter is set to a valid iterator pointing to the matching bracket
if @state is %GTK_SOURCE_BRACKET_MATCH_FOUND. Otherwise @iter is
meaningless.

The signal is emitted only when the @state changes, typically when
the cursor moves.

A use-case for this signal is to show messages in a [class@Gtk.Statusbar].</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="458">if found, the location of the matching bracket.</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="459">state of bracket matching.</doc>
            <type name="BracketMatchType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="cursor-moved" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="396">The "cursor-moved" signal is emitted when then insertion mark has moved.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="highlight-updated" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="409">The ::highlight-updated signal is emitted when the syntax
highlighting and [context classes](./class.Buffer.html#context-classes) are updated in a
certain region of the @buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="412">the start of the updated region</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="413">the end of the updated region</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="source-mark-updated" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.c"
             line="434">The ::source-mark-updated signal is emitted each time
a mark is added to, moved or removed from the @buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcebuffer.c"
                 line="437">the [class@Mark]</doc>
            <type name="Gtk.TextMark"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BufferClass"
            c:type="GtkSourceBufferClass"
            glib:is-gtype-struct-for="Buffer">
      <source-position filename="gtksourceview/gtksourcebuffer.h" line="109"/>
      <field name="parent_class">
        <type name="Gtk.TextBufferClass" c:type="GtkTextBufferClass"/>
      </field>
      <field name="bracket_matched">
        <callback name="bracket_matched">
          <source-position filename="gtksourceview/gtksourcebuffer.h"
                           line="103"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="Buffer" c:type="GtkSourceBuffer*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="BracketMatchType"
                    c:type="GtkSourceBracketMatchType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <function-macro name="CHECK_VERSION"
                    c:identifier="GTK_SOURCE_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.h"
           line="55">Macro to test the version of GtkSourceView being compiled against.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="66"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceversion.h"
               line="57">major version (e.g. 3 for version 3.20.0)</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceversion.h"
               line="58">minor version (e.g. 20 for version 3.20.0)</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceversion.h"
               line="59">micro version (e.g. 0 for version 3.20.0)</doc>
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="ChangeCaseType"
                 glib:type-name="GtkSourceChangeCaseType"
                 glib:get-type="gtk_source_change_case_type_get_type"
                 c:type="GtkSourceChangeCaseType">
      <member name="lower"
              value="0"
              c:identifier="GTK_SOURCE_CHANGE_CASE_LOWER"
              glib:nick="lower"
              glib:name="GTK_SOURCE_CHANGE_CASE_LOWER">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="59">change case to lowercase.</doc>
      </member>
      <member name="upper"
              value="1"
              c:identifier="GTK_SOURCE_CHANGE_CASE_UPPER"
              glib:nick="upper"
              glib:name="GTK_SOURCE_CHANGE_CASE_UPPER">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="60">change case to uppercase.</doc>
      </member>
      <member name="toggle"
              value="2"
              c:identifier="GTK_SOURCE_CHANGE_CASE_TOGGLE"
              glib:nick="toggle"
              glib:name="GTK_SOURCE_CHANGE_CASE_TOGGLE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="61">toggle case of each character.</doc>
      </member>
      <member name="title"
              value="3"
              c:identifier="GTK_SOURCE_CHANGE_CASE_TITLE"
              glib:nick="title"
              glib:name="GTK_SOURCE_CHANGE_CASE_TITLE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="62">capitalize each word.</doc>
      </member>
    </enumeration>
    <class name="Completion"
           c:symbol-prefix="completion"
           c:type="GtkSourceCompletion"
           parent="GObject.Object"
           glib:type-name="GtkSourceCompletion"
           glib:get-type="gtk_source_completion_get_type"
           glib:type-struct="CompletionClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcecompletion.c"
           line="35">Main Completion Object.

The completion system helps the user when they writes some text,
such as words, command names, functions, and suchlike. Proposals can
be shown, to complete the text the user is writing. Each proposal can
contain an additional piece of information (for example
documentation), that is displayed when the "Details" button is
clicked.

Proposals are created via a [iface@CompletionProvider]. There can
be for example a provider to complete words (see [class@CompletionWords]),
another provider for the completion of
function names, etc. To add a provider, call
[method@Completion.add_provider].

The [iface@CompletionProposal] interface represents a proposal.

If a proposal contains extra information (see
%GTK_SOURCE_COMPLETION_COLUMN_DETAILS), it will be
displayed in a supplemental details window, which appears when
the "Details" button is clicked.

Each [class@View] object is associated with a [class@Completion]
instance. This instance can be obtained with
[method@View.get_completion]. The [class@View] class contains also the
[signal@View::show-completion] signal.

A same [iface@CompletionProvider] object can be used for several
`GtkSourceCompletion`'s.</doc>
      <source-position filename="gtksourceview/gtksourcecompletion.h"
                       line="33"/>
      <function name="fuzzy_highlight"
                c:identifier="gtk_source_completion_fuzzy_highlight">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1610">This will add `&lt;b&gt;` tags around matched characters in @haystack
based on @casefold_query.</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="63"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletion.c"
               line="1618">a #PangoAttrList or %NULL</doc>
          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
        </return-value>
        <parameters>
          <parameter name="haystack" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1612">the string to be highlighted</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="casefold_query" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1613">the typed-text used to highlight @haystack</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="fuzzy_match"
                c:identifier="gtk_source_completion_fuzzy_match">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1502">This helper function can do a fuzzy match for you giving a haystack and
casefolded needle.

Casefold your needle using [func@GLib.utf8_casefold] before
running the query.

Score will be set with the score of the match upon success. Otherwise,
it will be set to zero.</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletion.c"
               line="1517">%TRUE if @haystack matched @casefold_needle, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="haystack"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1504">the string to be searched.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="casefold_needle" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1505">A g_utf8_casefold() version of the needle.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="priority"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1506">An optional location for the score of the match</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_provider"
              c:identifier="gtk_source_completion_add_provider">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1329">Adds a [iface@CompletionProvider] to the list of providers to be queried
for completion results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1331">a #GtkSourceCompletion</doc>
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1332">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="block_interactive"
              c:identifier="gtk_source_completion_block_interactive">
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_completion_get_buffer"
              glib:get-property="buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1313">Gets the connected [class@View]'s [class@Buffer]</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletion.c"
               line="1319">A #GtkSourceBuffer</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1315">a #GtkSourceCompletion</doc>
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_page_size"
              c:identifier="gtk_source_completion_get_page_size"
              glib:get-property="page-size">
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="gtk_source_completion_get_view"
              glib:get-property="view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1297">Gets the [class@View] that owns the [class@Completion].</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletion.c"
               line="1303">A #GtkSourceView</doc>
          <type name="View" c:type="GtkSourceView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1299">a #GtkSourceCompletion</doc>
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide" c:identifier="gtk_source_completion_hide">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1398">Emits the "hide" signal.

When the "hide" signal is emitted, the completion window will be
dismissed.</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1400">a #GtkSourceCompletion</doc>
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_provider"
              c:identifier="gtk_source_completion_remove_provider">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1348">Removes a [iface@CompletionProvider] previously added with
[method@Completion.add_provider].</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1350">a #GtkSourceCompletion</doc>
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1351">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_page_size"
              c:identifier="gtk_source_completion_set_page_size"
              glib:set-property="page-size">
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
          <parameter name="page_size" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="gtk_source_completion_show">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1375">Emits the "show" signal.

When the "show" signal is emitted, the completion window will be
displayed if there are any results available.</doc>
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1377">a #GtkSourceCompletion</doc>
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unblock_interactive"
              c:identifier="gtk_source_completion_unblock_interactive">
        <source-position filename="gtksourceview/gtksourcecompletion.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Completion" c:type="GtkSourceCompletion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="buffer" transfer-ownership="none" getter="get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1072">The #GtkTextBuffer for the #GtkSourceCompletion:view.
This is a convenience property for providers.</doc>
        <type name="Gtk.TextView"/>
      </property>
      <property name="page-size"
                writable="1"
                transfer-ownership="none"
                setter="set_page_size"
                getter="get_page_size"
                default-value="5">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1085">The number of rows to display to the user before scrolling.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="remember-info-visibility"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1097">Determines whether the visibility of the info window should be saved when the
completion is hidden, and restored when the completion is shown again.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="select-on-show"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1110">Determines whether the first proposal should be selected when the completion
is first shown.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-icons"
                writable="1"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1123">The "show-icons" property denotes if icons should be displayed within
the list of completions presented to the user.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1136">The "view" property is the #GtkTextView for which this #GtkSourceCompletion
is providing completion features.</doc>
        <type name="View"/>
      </property>
      <glib:signal name="hide" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1189">The "hide" signal is emitted when the completion window should
be hidden.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="provider-added" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1151">The "provided-added" signal is emitted when a new provider is
added to the completion.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1154">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="provider-removed" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1170">The "provided-removed" signal is emitted when a provider has
been removed from the completion.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletion.c"
                 line="1173">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletion.c"
             line="1208">The "show" signal is emitted when the completion window should
be shown.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <enumeration name="CompletionActivation"
                 glib:type-name="GtkSourceCompletionActivation"
                 glib:get-type="gtk_source_completion_activation_get_type"
                 c:type="GtkSourceCompletionActivation">
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_COMPLETION_ACTIVATION_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_COMPLETION_ACTIVATION_NONE">
      </member>
      <member name="interactive"
              value="1"
              c:identifier="GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE"
              glib:nick="interactive"
              glib:name="GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE">
      </member>
      <member name="user_requested"
              value="2"
              c:identifier="GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED"
              glib:nick="user-requested"
              glib:name="GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED">
      </member>
    </enumeration>
    <class name="CompletionCell"
           c:symbol-prefix="completion_cell"
           c:type="GtkSourceCompletionCell"
           parent="Gtk.Widget"
           glib:type-name="GtkSourceCompletionCell"
           glib:get-type="gtk_source_completion_cell_get_type"
           glib:type-struct="CompletionCellClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcecompletioncell.c"
           line="27">Widget for single cell of completion proposal.

The `GtkSourceCompletionCell` widget provides a container to display various
types of information with the completion display.

Each proposal may consist of multiple cells depending on the complexity of
the proposal. For example, programming language proposals may contain a cell
for the "left-hand-side" of an operation along with the "typed-text" for a
function name and "parameters". They may also optionally set an icon to
signify the kind of result.

A [iface@CompletionProvider] should implement the
[vfunc@CompletionProvider.display] virtual function to control
how to convert data from their [iface@CompletionProposal] to content for
the `GtkSourceCompletionCell`.</doc>
      <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                       line="43"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <method name="get_column"
              c:identifier="gtk_source_completion_cell_get_column"
              glib:get-property="column">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="CompletionColumn" c:type="GtkSourceCompletionColumn"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widget"
              c:identifier="gtk_source_completion_cell_get_widget"
              glib:get-property="widget">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncell.c"
             line="361">Gets the child #GtkWidget, if any.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncell.c"
               line="367">a #GtkWidget or %NULL</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncell.c"
                 line="363">a #GtkSourceCompletionCell</doc>
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_gicon"
              c:identifier="gtk_source_completion_cell_set_gicon">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="gicon" transfer-ownership="none">
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gtk_source_completion_cell_set_icon_name">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_markup"
              c:identifier="gtk_source_completion_cell_set_markup"
              glib:set-property="markup">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="markup" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_paintable"
              c:identifier="gtk_source_completion_cell_set_paintable"
              glib:set-property="paintable">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="paintable" transfer-ownership="none">
            <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="gtk_source_completion_cell_set_text"
              glib:set-property="text">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncell.c"
             line="272">Sets the text for the column cell. Use %NULL to unset.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncell.c"
                 line="274">a #GtkSourceCompletionCell</doc>
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncell.c"
                 line="275">the text to set or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text_with_attributes"
              c:identifier="gtk_source_completion_cell_set_text_with_attributes">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none">
            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_widget"
              c:identifier="gtk_source_completion_cell_set_widget"
              glib:set-property="widget">
        <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <property name="column"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_column"
                default-value="GTK_SOURCE_COMPLETION_COLUMN_TYPED_TEXT">
        <type name="CompletionColumn"/>
      </property>
      <property name="markup"
                writable="1"
                transfer-ownership="none"
                setter="set_markup"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="paintable"
                writable="1"
                transfer-ownership="none"
                setter="set_paintable">
        <type name="Gdk.Paintable"/>
      </property>
      <property name="text"
                writable="1"
                transfer-ownership="none"
                setter="set_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="widget"
                writable="1"
                transfer-ownership="none"
                setter="set_widget"
                getter="get_widget">
        <type name="Gtk.Widget"/>
      </property>
    </class>
    <record name="CompletionCellClass"
            c:type="GtkSourceCompletionCellClass"
            glib:is-gtype-struct-for="CompletionCell">
      <source-position filename="gtksourceview/gtksourcecompletioncell.h"
                       line="43"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <record name="CompletionClass"
            c:type="GtkSourceCompletionClass"
            glib:is-gtype-struct-for="Completion">
      <source-position filename="gtksourceview/gtksourcecompletion.h"
                       line="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CompletionColumn"
                 glib:type-name="GtkSourceCompletionColumn"
                 glib:get-type="gtk_source_completion_column_get_type"
                 c:type="GtkSourceCompletionColumn">
      <member name="icon"
              value="0"
              c:identifier="GTK_SOURCE_COMPLETION_COLUMN_ICON"
              glib:nick="icon"
              glib:name="GTK_SOURCE_COMPLETION_COLUMN_ICON">
      </member>
      <member name="before"
              value="1"
              c:identifier="GTK_SOURCE_COMPLETION_COLUMN_BEFORE"
              glib:nick="before"
              glib:name="GTK_SOURCE_COMPLETION_COLUMN_BEFORE">
      </member>
      <member name="typed_text"
              value="2"
              c:identifier="GTK_SOURCE_COMPLETION_COLUMN_TYPED_TEXT"
              glib:nick="typed-text"
              glib:name="GTK_SOURCE_COMPLETION_COLUMN_TYPED_TEXT">
      </member>
      <member name="after"
              value="3"
              c:identifier="GTK_SOURCE_COMPLETION_COLUMN_AFTER"
              glib:nick="after"
              glib:name="GTK_SOURCE_COMPLETION_COLUMN_AFTER">
      </member>
      <member name="comment"
              value="4"
              c:identifier="GTK_SOURCE_COMPLETION_COLUMN_COMMENT"
              glib:nick="comment"
              glib:name="GTK_SOURCE_COMPLETION_COLUMN_COMMENT">
      </member>
      <member name="details"
              value="5"
              c:identifier="GTK_SOURCE_COMPLETION_COLUMN_DETAILS"
              glib:nick="details"
              glib:name="GTK_SOURCE_COMPLETION_COLUMN_DETAILS">
      </member>
    </enumeration>
    <class name="CompletionContext"
           c:symbol-prefix="completion_context"
           c:type="GtkSourceCompletionContext"
           parent="GObject.Object"
           glib:type-name="GtkSourceCompletionContext"
           glib:get-type="gtk_source_completion_context_get_type"
           glib:type-struct="CompletionContextClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcecompletioncontext.c"
           line="34">The context of a completion.

`GtkSourceCompletionContext` contains information about an attept to display
completion proposals to the user based on typed text in the [class@View].

When typing, [class@Completion] may use registered
[iface@CompletionProvider] to determine if there may be results which
could be displayed. If so, a `GtkSourceCompletionContext` is created with
information that is provided to the [iface@CompletionProvider] to populate
results which might be useful to the user.

[iface@CompletionProvider] are expected to provide [iface@Gio.ListModel] with
[iface@CompletionProposal] which may be joined together in a list of
results for the user. They are also responsible for how the contents are
displayed using [class@CompletionCell] which allows for some level of
customization.</doc>
      <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                       line="40"/>
      <implements name="Gio.ListModel"/>
      <method name="get_activation"
              c:identifier="gtk_source_completion_context_get_activation">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="1073">Gets the mode for which the context was activated.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="CompletionActivation"
                c:type="GtkSourceCompletionActivation"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="1075">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bounds"
              c:identifier="gtk_source_completion_context_get_bounds">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="460">Gets the bounds for the completion, which is the beginning of the
current word (taking break characters into account) to the current
insertion cursor.

If @begin is non-%NULL, it will be set to the start position of the
current word being completed.

If @end is non-%NULL, it will be set to the insertion cursor for the
current word being completed.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="476">%TRUE if the marks are still valid and @begin or @end was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="462">an #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
          <parameter name="begin"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="463">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="464">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_completion_context_get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="915">Gets the underlying buffer used by the context.

This is a convenience function to get the buffer via the #GtkSourceCompletion
property.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="59"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="924">a #GtkTextBuffer or %NULL</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="917">an #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_busy"
              c:identifier="gtk_source_completion_context_get_busy"
              glib:get-property="busy">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="897">Gets the "busy" property. This is set to %TRUE while the completion
context is actively fetching proposals from registered
#GtkSourceCompletionProvider's.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="905">%TRUE if the context is busy</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="899">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_completion"
              c:identifier="gtk_source_completion_context_get_completion"
              glib:get-property="completion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="523">Gets the #GtkSourceCompletion that created the context.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="529">an #GtkSourceCompletion or %NULL</doc>
          <type name="Completion" c:type="GtkSourceCompletion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="525">an #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_empty"
              c:identifier="gtk_source_completion_context_get_empty"
              glib:get-property="empty">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="997">Checks if any proposals have been provided to the context.

Out of convenience, this function will return %TRUE if @self is %NULL.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="1005">%TRUE if there are no proposals in the context</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="999">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="gtk_source_completion_context_get_language">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="1087">Gets the language of the underlying buffer, if any.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="1093">a #GtkSourceLanguage or %NULL</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="1089">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_proposals_for_provider"
              c:identifier="gtk_source_completion_context_get_proposals_for_provider"
              version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="624">Gets the #GListModel associated with the provider.

You can connect to #GtkSourceCompletionContext::model-changed to receive
notifications about when the model has been replaced by a new model.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="67"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="634">a #GListModel or %NULL</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="626">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="627">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="gtk_source_completion_context_get_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="937">Gets the text view for the context.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="57"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="943">a #GtkSourceView or %NULL</doc>
          <type name="View" c:type="GtkSourceView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="939">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_word"
              c:identifier="gtk_source_completion_context_get_word">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="1015">Gets the word that is being completed up to the position of the insert mark.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="53"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="1021">a string containing the current word</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="1017">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_providers"
              c:identifier="gtk_source_completion_context_list_providers"
              version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="1112">Gets the providers that are associated with the context.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletioncontext.c"
               line="1118">a #GListModel of #GtkSourceCompletionProvider</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="1114">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_proposals_for_provider"
              c:identifier="gtk_source_completion_context_set_proposals_for_provider">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="658">This function allows providers to update their results for a context
outside of a call to [method@CompletionProvider.populate_async].

This can be used to immediately return results for a provider while it does
additional asynchronous work. Doing so will allow the completions to
update while the operation is in progress.</doc>
        <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="660">an #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="661">an #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
          <parameter name="results"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="662">a #GListModel or %NULL</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
      <property name="busy"
                transfer-ownership="none"
                getter="get_busy"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="283">The "busy" property is %TRUE while the completion context is
populating completion proposals.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="completion"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_completion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="311">The "completion" is the #GtkSourceCompletion that was used to create the context.</doc>
        <type name="Completion"/>
      </property>
      <property name="empty"
                transfer-ownership="none"
                getter="get_empty"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="296">The "empty" property is %TRUE when there are no results.

It will be notified when the first result is added or the last
result is removed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="provider-model-changed" when="last" version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletioncontext.c"
             line="325">Emitted when a provider changes a model.

This signal is primarily useful for #GtkSourceCompletionProvider's
that want to track other providers in context. For example, it can
be used to create a "top results" provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="328">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"/>
          </parameter>
          <parameter name="model"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletioncontext.c"
                 line="329">a #GListModel</doc>
            <type name="Gio.ListModel"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CompletionContextClass"
            c:type="GtkSourceCompletionContextClass"
            glib:is-gtype-struct-for="CompletionContext">
      <source-position filename="gtksourceview/gtksourcecompletioncontext.h"
                       line="40"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="CompletionProposal"
               c:symbol-prefix="completion_proposal"
               c:type="GtkSourceCompletionProposal"
               glib:type-name="GtkSourceCompletionProposal"
               glib:get-type="gtk_source_completion_proposal_get_type"
               glib:type-struct="CompletionProposalInterface">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcecompletionproposal.c"
           line="26">Interface for completion proposals.

This interface is used to denote that an object is capable of being
a completion proposal for [class@Completion].

Currently, no method or functions are required but additional methods
may be added in the future. Proposals created by
#GtkSourceCompletionProvider can use [func@GObject.IMPLEMENT_INTERFACE] to
implement this with %NULL for the interface init function.</doc>
      <source-position filename="gtksourceview/gtksourcecompletionproposal.h"
                       line="44"/>
      <virtual-method name="get_typed_text"
                      invoker="get_typed_text"
                      version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionproposal.c"
             line="47">Gets the typed-text for the proposal, if supported by the implementation.

Implementing this virtual-function is optional, but can be useful to allow
external tooling to compare results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionproposal.h"
                         line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionproposal.c"
               line="56">a newly allocated string, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionproposal.c"
                 line="49">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_typed_text"
              c:identifier="gtk_source_completion_proposal_get_typed_text"
              version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionproposal.c"
             line="47">Gets the typed-text for the proposal, if supported by the implementation.

Implementing this virtual-function is optional, but can be useful to allow
external tooling to compare results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionproposal.h"
                         line="47"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionproposal.c"
               line="56">a newly allocated string, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionproposal.c"
                 line="49">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="CompletionProposalInterface"
            c:type="GtkSourceCompletionProposalInterface"
            glib:is-gtype-struct-for="CompletionProposal">
      <source-position filename="gtksourceview/gtksourcecompletionproposal.h"
                       line="44"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_typed_text">
        <callback name="get_typed_text">
          <source-position filename="gtksourceview/gtksourcecompletionproposal.h"
                           line="43"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionproposal.c"
                 line="56">a newly allocated string, or %NULL</doc>
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionproposal.c"
                   line="49">a #GtkSourceCompletionProposal</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="CompletionProvider"
               c:symbol-prefix="completion_provider"
               c:type="GtkSourceCompletionProvider"
               glib:type-name="GtkSourceCompletionProvider"
               glib:get-type="gtk_source_completion_provider_get_type"
               glib:type-struct="CompletionProviderInterface">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcecompletionprovider.c"
           line="29">Completion provider interface.

You must implement this interface to provide proposals to [class@Completion].

In most cases, implementations of this interface will want to use
[vfunc@CompletionProvider.populate_async] to asynchronously populate the results
to avoid blocking the main loop.</doc>
      <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                       line="72"/>
      <virtual-method name="activate" invoker="activate">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="342">This function requests @proposal to be activated by the
#GtkSourceCompletionProvider.

What the provider does to activate the proposal is specific to that
provider. Many providers may choose to insert a #GtkSourceSnippet with
edit points the user may cycle through.

See also: [class@Snippet], [class@SnippetChunk], [method@View.push_snippet]</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="344">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="345">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="346">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="display" invoker="display">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="311">This function requests that the #GtkSourceCompletionProvider prepares
@cell to display the contents of @proposal.

Based on @cells column type, you may want to display different information.

This allows for columns of information among completion proposals
resulting in better alignment of similar content (icons, return types,
method names, and parameter lists).</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="313">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="314">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="315">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="316">a #GtkSourceCompletionCell</doc>
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_priority" invoker="get_priority">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="147">This function should return the priority of @self in @context.

The priority is used to sort groups of completion proposals by
provider so that higher priority providers results are shown
above lower priority providers.

Higher value indicates higher priority.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="149">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="150">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_title" invoker="get_title">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="125">Gets the title of the completion provider, if any.

Currently, titles are not displayed in the completion results, but may be
at some point in the future when non-%NULL.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="37"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionprovider.c"
               line="134">a title for the provider or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="127">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_trigger" invoker="is_trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="173">This function is used to determine if a character inserted into the text
editor should cause a new completion request to be triggered.

An example would be period '.' which might indicate that the user wants
to complete method or field names of an object.

This method will only trigger when text is inserted into the #GtkTextBuffer
while the completion list is visible and a proposal is selected. Incremental
key-presses (like shift, control, or alt) are not triggerable.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="175">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="176">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="ch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="177">a #gunichar of the character inserted</doc>
            <type name="gunichar" c:type="gunichar"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_activates" invoker="key_activates">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="203">This function is used to determine if a key typed by the user should
activate @proposal (resulting in committing the text to the editor).

This is useful when using languages where convention may lead to less
typing by the user. One example may be the use of "." or "-" to expand
a field access in the C programming language.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="205">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="206">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="207">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="208">a keyval such as [const@Gdk.KEY_period]</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="209">a #GdkModifierType or 0</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="list_alternates" invoker="list_alternates">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="370">Providers should return a list of alternates to @proposal or %NULL if
there are no alternates available.

This can be used by the completion view to allow the user to move laterally
through similar proposals, such as overrides of methods by the same name.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="69"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionprovider.c"
               line="382">
  a #GPtrArray of #GtkSourceCompletionProposal or %NULL.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="CompletionProposal"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="372">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="373">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="374">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate"
                      introspectable="0"
                      throws="1"
                      glib:async-func="populate_async">
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="48"/>
        <return-value>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_async"
                      invoker="populate_async"
                      glib:finish-func="populate_finish"
                      glib:sync-func="populate">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="235">Asynchronously requests that the provider populates the completion
results for @context.

For providers that would like to populate a [iface@Gio.ListModel] while those
results are displayed to the user,
[method@CompletionContext.set_proposals_for_provider] may be used
to reduce latency until the user sees results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="237">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="238">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="239">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="240">a callback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="3">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="241">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_finish"
                      invoker="populate_finish"
                      throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="265">Completes an asynchronous operation to populate a completion provider.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionprovider.c"
               line="273">a #GListModel of #GtkSourceCompletionProposal</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="267">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="268">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="refilter" invoker="refilter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="285">This function can be used to filter results previously provided to
the [class@CompletionContext] by the #GtkSourceCompletionProvider.

This can happen as the user types additional text onto the word so
that previously matched items may be removed from the list instead of
generating new [iface@Gio.ListModel] of results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="287">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="288">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="289">a #GListModel</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate"
              c:identifier="gtk_source_completion_provider_activate">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="342">This function requests @proposal to be activated by the
#GtkSourceCompletionProvider.

What the provider does to activate the proposal is specific to that
provider. Many providers may choose to insert a #GtkSourceSnippet with
edit points the user may cycle through.

See also: [class@Snippet], [class@SnippetChunk], [method@View.push_snippet]</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="344">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="345">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="346">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="display"
              c:identifier="gtk_source_completion_provider_display">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="311">This function requests that the #GtkSourceCompletionProvider prepares
@cell to display the contents of @proposal.

Based on @cells column type, you may want to display different information.

This allows for columns of information among completion proposals
resulting in better alignment of similar content (icons, return types,
method names, and parameter lists).</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="313">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="314">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="315">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="316">a #GtkSourceCompletionCell</doc>
            <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="gtk_source_completion_provider_get_priority">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="147">This function should return the priority of @self in @context.

The priority is used to sort groups of completion proposals by
provider so that higher priority providers results are shown
above lower priority providers.

Higher value indicates higher priority.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="77"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="149">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="150">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="gtk_source_completion_provider_get_title">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="125">Gets the title of the completion provider, if any.

Currently, titles are not displayed in the completion results, but may be
at some point in the future when non-%NULL.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="75"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionprovider.c"
               line="134">a title for the provider or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="127">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_trigger"
              c:identifier="gtk_source_completion_provider_is_trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="173">This function is used to determine if a character inserted into the text
editor should cause a new completion request to be triggered.

An example would be period '.' which might indicate that the user wants
to complete method or field names of an object.

This method will only trigger when text is inserted into the #GtkTextBuffer
while the completion list is visible and a proposal is selected. Incremental
key-presses (like shift, control, or alt) are not triggerable.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="175">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="176">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="ch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="177">a #gunichar of the character inserted</doc>
            <type name="gunichar" c:type="gunichar"/>
          </parameter>
        </parameters>
      </method>
      <method name="key_activates"
              c:identifier="gtk_source_completion_provider_key_activates">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="203">This function is used to determine if a key typed by the user should
activate @proposal (resulting in committing the text to the editor).

This is useful when using languages where convention may lead to less
typing by the user. One example may be the use of "." or "-" to expand
a field access in the C programming language.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="205">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="206">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="207">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="208">a keyval such as [const@Gdk.KEY_period]</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="209">a #GdkModifierType or 0</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_alternates"
              c:identifier="gtk_source_completion_provider_list_alternates">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="370">Providers should return a list of alternates to @proposal or %NULL if
there are no alternates available.

This can be used by the completion view to allow the user to move laterally
through similar proposals, such as overrides of methods by the same name.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="113"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionprovider.c"
               line="382">
  a #GPtrArray of #GtkSourceCompletionProposal or %NULL.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="CompletionProposal"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="372">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="373">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="374">a #GtkSourceCompletionProposal</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_async"
              c:identifier="gtk_source_completion_provider_populate_async"
              glib:finish-func="populate_finish">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="235">Asynchronously requests that the provider populates the completion
results for @context.

For providers that would like to populate a [iface@Gio.ListModel] while those
results are displayed to the user,
[method@CompletionContext.set_proposals_for_provider] may be used
to reduce latency until the user sees results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="237">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="238">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="239">a #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="240">a callback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="241">closure data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_finish"
              c:identifier="gtk_source_completion_provider_populate_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="265">Completes an asynchronous operation to populate a completion provider.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="96"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcecompletionprovider.c"
               line="273">a #GListModel of #GtkSourceCompletionProposal</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="267">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="268">a #GAsyncResult provided to callback</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refilter"
              c:identifier="gtk_source_completion_provider_refilter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcecompletionprovider.c"
             line="285">This function can be used to filter results previously provided to
the [class@CompletionContext] by the #GtkSourceCompletionProvider.

This can happen as the user types additional text onto the word so
that previously matched items may be removed from the list instead of
generating new [iface@Gio.ListModel] of results.</doc>
        <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                         line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="287">a #GtkSourceCompletionProvider</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="288">a #GtkSourceCompletionContext</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="289">a #GListModel</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="CompletionProviderInterface"
            c:type="GtkSourceCompletionProviderInterface"
            glib:is-gtype-struct-for="CompletionProvider">
      <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                       line="72"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_title">
        <callback name="get_title">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="37"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="134">a title for the provider or %NULL</doc>
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="127">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_priority">
        <callback name="get_priority">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="38"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="149">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="150">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_trigger">
        <callback name="is_trigger">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="40"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="175">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="176">a #GtkTextIter</doc>
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="ch" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="177">a #gunichar of the character inserted</doc>
              <type name="gunichar" c:type="gunichar"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_activates">
        <callback name="key_activates">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="43"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="205">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="206">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="207">a #GtkSourceCompletionProposal</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
            <parameter name="keyval" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="208">a keyval such as [const@Gdk.KEY_period]</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="209">a #GdkModifierType or 0</doc>
              <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate" introspectable="0">
        <callback name="populate" introspectable="0" throws="1">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="48"/>
          <return-value>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_async">
        <callback name="populate_async">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="237">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="238">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="239">a #GCancellable or %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="240">a callback to execute upon completion</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="4">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="241">closure data for @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_finish">
        <callback name="populate_finish" throws="1">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="56"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="273">a #GListModel of #GtkSourceCompletionProposal</doc>
            <type name="Gio.ListModel" c:type="GListModel*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="267">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="268">a #GAsyncResult provided to callback</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="refilter">
        <callback name="refilter">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="287">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="288">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="289">a #GListModel</doc>
              <type name="Gio.ListModel" c:type="GListModel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="display">
        <callback name="display">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="62"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="313">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="314">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="315">a #GtkSourceCompletionProposal</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
            <parameter name="cell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="316">a #GtkSourceCompletionCell</doc>
              <type name="CompletionCell" c:type="GtkSourceCompletionCell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate">
        <callback name="activate">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="344">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="345">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="346">a #GtkSourceCompletionProposal</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="list_alternates">
        <callback name="list_alternates">
          <source-position filename="gtksourceview/gtksourcecompletionprovider.h"
                           line="69"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcecompletionprovider.c"
                 line="382">
  a #GPtrArray of #GtkSourceCompletionProposal or %NULL.</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="CompletionProposal"/>
            </array>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="372">a #GtkSourceCompletionProvider</doc>
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="373">a #GtkSourceCompletionContext</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcecompletionprovider.c"
                   line="374">a #GtkSourceCompletionProposal</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="CompletionSnippets"
           c:symbol-prefix="completion_snippets"
           c:type="GtkSourceCompletionSnippets"
           parent="GObject.Object"
           glib:type-name="GtkSourceCompletionSnippets"
           glib:get-type="gtk_source_completion_snippets_get_type"
           glib:type-struct="CompletionSnippetsClass">
      <doc xml:space="preserve"
           filename="gtksourceview/completion-providers/snippets/gtksourcecompletionsnippets.c"
           line="38">A [iface@CompletionProvider] for the completion of snippets.

The `GtkSourceCompletionSnippets` is an example of an implementation of
the [iface@CompletionProvider] interface. The proposals are snippets
registered with the [class@SnippetManager].</doc>
      <source-position filename="gtksourceview/completion-providers/snippets/gtksourcecompletionsnippets.h"
                       line="44"/>
      <implements name="CompletionProvider"/>
      <constructor name="new"
                   c:identifier="gtk_source_completion_snippets_new">
        <source-position filename="gtksourceview/completion-providers/snippets/gtksourcecompletionsnippets.h"
                         line="47"/>
        <return-value transfer-ownership="full">
          <type name="CompletionSnippets"
                c:type="GtkSourceCompletionSnippets*"/>
        </return-value>
      </constructor>
      <property name="priority"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="title"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CompletionSnippetsClass"
            c:type="GtkSourceCompletionSnippetsClass"
            glib:is-gtype-struct-for="CompletionSnippets">
      <source-position filename="gtksourceview/completion-providers/snippets/gtksourcecompletionsnippets.h"
                       line="44"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="CompletionWords"
           c:symbol-prefix="completion_words"
           c:type="GtkSourceCompletionWords"
           parent="GObject.Object"
           glib:type-name="GtkSourceCompletionWords"
           glib:get-type="gtk_source_completion_words_get_type"
           glib:type-struct="CompletionWordsClass">
      <doc xml:space="preserve"
           filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
           line="22">A [iface@CompletionProvider] for the completion of words.

The `GtkSourceCompletionWords` is an example of an implementation of
the [iface@CompletionProvider] interface. The proposals are words
appearing in the registered [class@Gtk.TextBuffer]s.</doc>
      <source-position filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.h"
                       line="41"/>
      <implements name="CompletionProvider"/>
      <constructor name="new" c:identifier="gtk_source_completion_words_new">
        <source-position filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.h"
                         line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
               line="517">a new #GtkSourceCompletionWords provider</doc>
          <type name="CompletionWords" c:type="GtkSourceCompletionWords*"/>
        </return-value>
        <parameters>
          <parameter name="title"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
                 line="515">The title for the provider, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="register"
              c:identifier="gtk_source_completion_words_register">
        <doc xml:space="preserve"
             filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
             line="537">Registers @buffer in the @words provider.</doc>
        <source-position filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="words" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
                 line="539">a #GtkSourceCompletionWords</doc>
            <type name="CompletionWords" c:type="GtkSourceCompletionWords*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
                 line="540">a #GtkTextBuffer</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister"
              c:identifier="gtk_source_completion_words_unregister">
        <doc xml:space="preserve"
             filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
             line="583">Unregisters @buffer from the @words provider.</doc>
        <source-position filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="words" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
                 line="585">a #GtkSourceCompletionWords</doc>
            <type name="CompletionWords" c:type="GtkSourceCompletionWords*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.c"
                 line="586">a #GtkTextBuffer</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <property name="minimum-word-size"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="2">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="priority"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="proposals-batch-size"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="300">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="scan-batch-size"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="50">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="title"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CompletionWordsClass"
            c:type="GtkSourceCompletionWordsClass"
            glib:is-gtype-struct-for="CompletionWords">
      <source-position filename="gtksourceview/completion-providers/words/gtksourcecompletionwords.h"
                       line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="CompressionType"
                 glib:type-name="GtkSourceCompressionType"
                 glib:get-type="gtk_source_compression_type_get_type"
                 c:type="GtkSourceCompressionType">
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_COMPRESSION_TYPE_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_COMPRESSION_TYPE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.h"
             line="61">plain text.</doc>
      </member>
      <member name="gzip"
              value="1"
              c:identifier="GTK_SOURCE_COMPRESSION_TYPE_GZIP"
              glib:nick="gzip"
              glib:name="GTK_SOURCE_COMPRESSION_TYPE_GZIP">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.h"
             line="62">gzip compression.</doc>
      </member>
    </enumeration>
    <record name="Encoding"
            c:type="GtkSourceEncoding"
            opaque="1"
            glib:type-name="GtkSourceEncoding"
            glib:get-type="gtk_source_encoding_get_type"
            c:symbol-prefix="encoding">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceencoding.c"
           line="27">Character encoding.

The #GtkSourceEncoding boxed type represents a character encoding. It is used
for example by #GtkSourceFile. Note that the text in GTK widgets is always
encoded in UTF-8.</doc>
      <source-position filename="gtksourceview/gtksourcetypes.h" line="47"/>
      <method name="copy" c:identifier="gtk_source_encoding_copy">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="678">Used by language bindings.</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="57"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="684">a copy of @enc.</doc>
          <type name="Encoding" c:type="GtkSourceEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceencoding.c"
                 line="680">a #GtkSourceEncoding.</doc>
            <type name="Encoding" c:type="const GtkSourceEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gtk_source_encoding_free">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="694">Used by language bindings.</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceencoding.c"
                 line="696">a #GtkSourceEncoding.</doc>
            <type name="Encoding" c:type="GtkSourceEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_charset"
              c:identifier="gtk_source_encoding_get_charset">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="449">Gets the character set of the #GtkSourceEncoding, such as "UTF-8" or
"ISO-8859-1".</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="456">the character set of the #GtkSourceEncoding.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceencoding.c"
                 line="451">a #GtkSourceEncoding.</doc>
            <type name="Encoding" c:type="const GtkSourceEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gtk_source_encoding_get_name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="470">Gets the name of the #GtkSourceEncoding such as "Unicode" or "Western".</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="476">the name of the #GtkSourceEncoding.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceencoding.c"
                 line="472">a #GtkSourceEncoding.</doc>
            <type name="Encoding" c:type="const GtkSourceEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="gtk_source_encoding_to_string">
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="424">a string representation. Free with g_free() when no longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceencoding.c"
                 line="422">a #GtkSourceEncoding.</doc>
            <type name="Encoding" c:type="const GtkSourceEncoding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_all" c:identifier="gtk_source_encoding_get_all">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="342">Gets all encodings.</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="51"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="347">a list of
all #GtkSourceEncoding's. Free with g_slist_free().</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Encoding"/>
          </type>
        </return-value>
      </function>
      <function name="get_current"
                c:identifier="gtk_source_encoding_get_current">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="377">Gets the #GtkSourceEncoding for the current locale.

See also [func@GLib.get_charset].</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="384">the current locale encoding.</doc>
          <type name="Encoding" c:type="const GtkSourceEncoding*"/>
        </return-value>
      </function>
      <function name="get_default_candidates"
                c:identifier="gtk_source_encoding_get_default_candidates">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="590">Gets the list of default candidate encodings to try when loading a file.

See [method@FileLoader.set_candidate_encodings].

This function returns a different list depending on the current locale (i.e.
language, country and default encoding). The UTF-8 encoding and the current
locale encoding are guaranteed to be present in the returned list.</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="53"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="601">the list of
default candidate encodings. Free with g_slist_free().</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Encoding"/>
          </type>
        </return-value>
      </function>
      <function name="get_from_charset"
                c:identifier="gtk_source_encoding_get_from_charset">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="301">Gets a #GtkSourceEncoding from a character set such as "UTF-8" or
"ISO-8859-1".</doc>
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="39"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="308">the corresponding #GtkSourceEncoding, or %NULL
if not found.</doc>
          <type name="Encoding" c:type="const GtkSourceEncoding*"/>
        </return-value>
        <parameters>
          <parameter name="charset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceencoding.c"
                 line="303">a character set.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_utf8" c:identifier="gtk_source_encoding_get_utf8">
        <source-position filename="gtksourceview/gtksourceencoding.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="369">the UTF-8 encoding.</doc>
          <type name="Encoding" c:type="const GtkSourceEncoding*"/>
        </return-value>
      </function>
    </record>
    <class name="File"
           c:symbol-prefix="file"
           c:type="GtkSourceFile"
           parent="GObject.Object"
           glib:type-name="GtkSourceFile"
           glib:get-type="gtk_source_file_get_type"
           glib:type-struct="FileClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefile.c"
           line="26">On-disk representation of a [class@Buffer].

A `GtkSourceFile` object is the on-disk representation of a [class@Buffer].
With a `GtkSourceFile`, you can create and configure a [class@FileLoader]
and [class@FileSaver] which take by default the values of the
`GtkSourceFile` properties (except for the file loader which auto-detect some
properties). On a successful load or save operation, the `GtkSourceFile`
properties are updated. If an operation fails, the `GtkSourceFile` properties
have still the previous valid values.</doc>
      <source-position filename="gtksourceview/gtksourcefile.h" line="90"/>
      <constructor name="new" c:identifier="gtk_source_file_new">
        <source-position filename="gtksourceview/gtksourcefile.h" line="94"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="247">a new #GtkSourceFile object.</doc>
          <type name="File" c:type="GtkSourceFile*"/>
        </return-value>
      </constructor>
      <method name="check_file_on_disk"
              c:identifier="gtk_source_file_check_file_on_disk">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="504">Checks synchronously the file on disk, to know whether the file is externally
modified, or has been deleted, and whether the file is read-only.

#GtkSourceFile doesn't create a [class@Gio.FileMonitor] to track those properties, so
this function needs to be called instead. Creating lots of [class@Gio.FileMonitor]'s
would take lots of resources.

Since this function is synchronous, it is advised to call it only on local
files. See [method@File.is_local].</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="506">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compression_type"
              c:identifier="gtk_source_file_get_compression_type"
              glib:get-property="compression-type">
        <source-position filename="gtksourceview/gtksourcefile.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="383">the compression type.</doc>
          <type name="CompressionType" c:type="GtkSourceCompressionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="381">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding"
              c:identifier="gtk_source_file_get_encoding"
              glib:get-property="encoding">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="314">The encoding is initially %NULL. After a successful file loading or saving
operation, the encoding is non-%NULL.</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="321">the character encoding.</doc>
          <type name="Encoding" c:type="const GtkSourceEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="316">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="gtk_source_file_get_location"
              glib:get-property="location">
        <source-position filename="gtksourceview/gtksourcefile.h" line="96"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="287">the #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="285">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_type"
              c:identifier="gtk_source_file_get_newline_type"
              glib:get-property="newline-type">
        <source-position filename="gtksourceview/gtksourcefile.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="352">the newline type.</doc>
          <type name="NewlineType" c:type="GtkSourceNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="350">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_deleted" c:identifier="gtk_source_file_is_deleted">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="618">Returns whether the file has been deleted. If the
[property@File:location] is %NULL, returns %FALSE.

To have an up-to-date value, you must first call
[method@File.check_file_on_disk].</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="628">whether the file has been deleted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="620">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_externally_modified"
              c:identifier="gtk_source_file_is_externally_modified">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="585">Returns whether the file is externally modified. If the
[property@File:location] is %NULL, returns %FALSE.

To have an up-to-date value, you must first call
[method@File.check_file_on_disk].</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="595">whether the file is externally modified.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="587">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_local" c:identifier="gtk_source_file_is_local">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="480">Returns whether the file is local. If the [property@File:location] is %NULL,
returns %FALSE.</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="487">whether the file is local.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="482">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_readonly" c:identifier="gtk_source_file_is_readonly">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="657">Returns whether the file is read-only. If the
[property@File:location] is %NULL, returns %FALSE.

To have an up-to-date value, you must first call
[method@File.check_file_on_disk].</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.c"
               line="667">whether the file is read-only.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="659">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_location"
              c:identifier="gtk_source_file_set_location"
              glib:set-property="location">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="255">Sets the location.</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="257">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
          <parameter name="location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="258">the new #GFile, or %NULL.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mount_operation_factory"
              c:identifier="gtk_source_file_set_mount_operation_factory"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="395">Sets a [callback@MountOperationFactory] function that will be called when a
[class@Gio.MountOperation] must be created.

This is useful for creating a [class@Gtk.MountOperation] with the parent [class@Gtk.Window].

If a mount operation factory isn't set, [ctor@Gio.MountOperation.new] will be
called.</doc>
        <source-position filename="gtksourceview/gtksourcefile.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="397">a #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="398">a
  #GtkSourceMountOperationFactory to call when a #GMountOperation is needed.</doc>
            <type name="MountOperationFactory"
                  c:type="GtkSourceMountOperationFactory"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="400">the data to pass to the @callback function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefile.c"
                 line="401">function to call on @user_data when the @callback is no
  longer needed, or %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <property name="compression-type"
                transfer-ownership="none"
                getter="get_compression_type"
                default-value="GTK_SOURCE_COMPRESSION_TYPE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="203">The compression type.</doc>
        <type name="CompressionType"/>
      </property>
      <property name="encoding"
                transfer-ownership="none"
                getter="get_encoding">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="175">The character encoding, initially %NULL. After a successful file
loading or saving operation, the encoding is non-%NULL.</doc>
        <type name="Encoding"/>
      </property>
      <property name="location"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_location"
                getter="get_location">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="161">The location.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="newline-type"
                transfer-ownership="none"
                getter="get_newline_type"
                default-value="GTK_SOURCE_NEWLINE_TYPE_LF">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="189">The line ending type.</doc>
        <type name="NewlineType"/>
      </property>
      <property name="read-only"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.c"
             line="217">Whether the file is read-only or not. The value of this property is
not updated automatically (there is no file monitors).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FileClass"
            c:type="GtkSourceFileClass"
            glib:is-gtype-struct-for="File">
      <source-position filename="gtksourceview/gtksourcefile.h" line="90"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="FileLoader"
           c:symbol-prefix="file_loader"
           c:type="GtkSourceFileLoader"
           parent="GObject.Object"
           glib:type-name="GtkSourceFileLoader"
           glib:get-type="gtk_source_file_loader_get_type"
           glib:type-struct="FileLoaderClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefileloader.c"
           line="37">Load a file into a GtkSourceBuffer.

A `GtkSourceFileLoader` object permits to load the contents of a [iface@Gio.File] or a
[class@Gio.InputStream] into a [class@Buffer].

A file loader should be used only for one load operation, including errors
handling. If an error occurs, you can reconfigure the loader and relaunch the
operation with [method@FileLoader.load_async].

Running a `GtkSourceFileLoader` is an undoable action for the
[class@Buffer].

After a file loading, the buffer is reset to the contents provided by the
[iface@Gio.File] or [class@Gio.InputStream], so the buffer is set as “unmodified”, that is,
[method@Gtk.TextBuffer.set_modified] is called with %FALSE. If the contents isn't
saved somewhere (for example if you load from stdin), then you should
probably call [method@Gtk.TextBuffer.set_modified] with %TRUE after calling
[method@FileLoader.load_finish].</doc>
      <source-position filename="gtksourceview/gtksourcefileloader.h"
                       line="57"/>
      <constructor name="new" c:identifier="gtk_source_file_loader_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="917">Creates a new `GtkSourceFileLoader` object. The contents is read from the
[class@File]'s location.

If not already done, call [method@File.set_location] before calling this constructor.
The previous location is anyway not needed, because as soon as the file loading begins,
the @buffer is emptied.</doc>
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="929">a new #GtkSourceFileLoader object.</doc>
          <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="919">the #GtkSourceBuffer to load the contents into.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="920">the #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_stream"
                   c:identifier="gtk_source_file_loader_new_from_stream">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="944">Creates a new #GtkSourceFileLoader object. The contents is read from @stream.</doc>
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="952">a new #GtkSourceFileLoader object.</doc>
          <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="946">the #GtkSourceBuffer to load the contents into.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="947">the #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="948">the #GInputStream to load, e.g. stdin.</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer"
              c:identifier="gtk_source_file_loader_get_buffer"
              glib:get-property="buffer">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1008">the #GtkSourceBuffer to load the contents into.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1006">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compression_type"
              c:identifier="gtk_source_file_loader_get_compression_type">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1324">the detected compression type.</doc>
          <type name="CompressionType" c:type="GtkSourceCompressionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1322">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding"
              c:identifier="gtk_source_file_loader_get_encoding">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1295">the detected file encoding.</doc>
          <type name="Encoding" c:type="const GtkSourceEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1293">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="gtk_source_file_loader_get_file"
              glib:get-property="file">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1022">the #GtkSourceFile.</doc>
          <type name="File" c:type="GtkSourceFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1020">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_input_stream"
              c:identifier="gtk_source_file_loader_get_input_stream"
              glib:get-property="input-stream">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="78"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1051">the #GInputStream to load, or %NULL
if a #GFile is used.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1049">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="gtk_source_file_loader_get_location"
              glib:get-property="location">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="76"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1036">the #GFile to load, or %NULL
if an input stream is used.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1034">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_type"
              c:identifier="gtk_source_file_loader_get_newline_type">
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1309">the detected newline type.</doc>
          <type name="NewlineType" c:type="GtkSourceNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1307">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_async"
              c:identifier="gtk_source_file_loader_load_async"
              glib:finish-func="load_finish">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="1062">Loads asynchronously the file or input stream contents into the [class@Buffer].

See the [iface@Gio.AsyncResult] documentation to know how to use this
function.</doc>
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1064">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1065">the I/O priority of the request. E.g. %G_PRIORITY_LOW,
  %G_PRIORITY_DEFAULT or %G_PRIORITY_HIGH.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1067">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="progress_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1068">
  function to call back with progress information, or %NULL if progress
  information is not needed.</doc>
            <type name="Gio.FileProgressCallback"
                  c:type="GFileProgressCallback"/>
          </parameter>
          <parameter name="progress_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1071">user data to pass to @progress_callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="progress_callback_notify"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1072">function to call on
  @progress_callback_data when the @progress_callback is no longer needed, or
  %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1075">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1077">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_finish"
              c:identifier="gtk_source_file_loader_load_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="1178">Finishes a file loading started with [method@FileLoader.load_async].

If the contents has been loaded, the following [class@File] properties will
be updated: the location, the encoding, the newline type and the compression
type.</doc>
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefileloader.c"
               line="1190">whether the contents has been loaded successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1180">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="1181">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_candidate_encodings"
              c:identifier="gtk_source_file_loader_set_candidate_encodings">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="970">Sets the candidate encodings for the file loading.

The encodings are tried in the same order as the list.

For convenience, @candidate_encodings can contain duplicates. Only the first
occurrence of a duplicated encoding is kept in the list.

By default the candidate encodings are (in that order in the list):

1. If set, the [class@File]'s encoding as returned by [method@File.get_encoding].
2. The default candidates as returned by [func@Encoding.get_default_candidates].</doc>
        <source-position filename="gtksourceview/gtksourcefileloader.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="972">a #GtkSourceFileLoader.</doc>
            <type name="FileLoader" c:type="GtkSourceFileLoader*"/>
          </instance-parameter>
          <parameter name="candidate_encodings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefileloader.c"
                 line="973">a list of
  #GtkSourceEncoding&lt;!-- --&gt;s.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Encoding"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="385">The #GtkSourceBuffer to load the contents into. The
#GtkSourceFileLoader object has a weak reference to the buffer.</doc>
        <type name="Buffer"/>
      </property>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_file">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="400">The #GtkSourceFile. The #GtkSourceFileLoader object has a weak
reference to the file.</doc>
        <type name="File"/>
      </property>
      <property name="input-stream"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_input_stream">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="431">The #GInputStream to load. Useful for reading stdin. If this property
is set, the #GtkSourceFileLoader:location property is ignored.</doc>
        <type name="Gio.InputStream"/>
      </property>
      <property name="location"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_location">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.c"
             line="415">The #GFile to load. If the #GtkSourceFileLoader:input-stream is
%NULL, by default the location is taken from the #GtkSourceFile at
construction time.</doc>
        <type name="Gio.File"/>
      </property>
    </class>
    <record name="FileLoaderClass"
            c:type="GtkSourceFileLoaderClass"
            glib:is-gtype-struct-for="FileLoader">
      <source-position filename="gtksourceview/gtksourcefileloader.h"
                       line="57"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="FileLoaderError"
                 glib:type-name="GtkSourceFileLoaderError"
                 glib:get-type="gtk_source_file_loader_error_get_type"
                 c:type="GtkSourceFileLoaderError"
                 glib:error-domain="gtk-source-file-loader-error">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefileloader.h"
           line="39">An error code used with the %GTK_SOURCE_FILE_LOADER_ERROR domain.</doc>
      <member name="too_big"
              value="0"
              c:identifier="GTK_SOURCE_FILE_LOADER_ERROR_TOO_BIG"
              glib:nick="too-big"
              glib:name="GTK_SOURCE_FILE_LOADER_ERROR_TOO_BIG">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.h"
             line="41">The file is too big.</doc>
      </member>
      <member name="encoding_auto_detection_failed"
              value="1"
              c:identifier="GTK_SOURCE_FILE_LOADER_ERROR_ENCODING_AUTO_DETECTION_FAILED"
              glib:nick="encoding-auto-detection-failed"
              glib:name="GTK_SOURCE_FILE_LOADER_ERROR_ENCODING_AUTO_DETECTION_FAILED">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.h"
             line="42">It is not
possible to detect the encoding automatically.</doc>
      </member>
      <member name="conversion_fallback"
              value="2"
              c:identifier="GTK_SOURCE_FILE_LOADER_ERROR_CONVERSION_FALLBACK"
              glib:nick="conversion-fallback"
              glib:name="GTK_SOURCE_FILE_LOADER_ERROR_CONVERSION_FALLBACK">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefileloader.h"
             line="44">There was an encoding
conversion error and it was needed to use a fallback character.</doc>
      </member>
      <function name="quark" c:identifier="gtk_source_file_loader_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="FileSaver"
           c:symbol-prefix="file_saver"
           c:type="GtkSourceFileSaver"
           parent="GObject.Object"
           glib:type-name="GtkSourceFileSaver"
           glib:get-type="gtk_source_file_saver_get_type"
           glib:type-struct="FileSaverClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefilesaver.c"
           line="36">Save a [class@Buffer] into a file.

A `GtkSourceFileSaver` object permits to save a [class@Buffer] into a
[iface@Gio.File].

A file saver should be used only for one save operation, including errors
handling. If an error occurs, you can reconfigure the saver and relaunch the
operation with [method@FileSaver.save_async].</doc>
      <source-position filename="gtksourceview/gtksourcefilesaver.h"
                       line="72"/>
      <constructor name="new" c:identifier="gtk_source_file_saver_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1083">Creates a new #GtkSourceFileSaver object. The @buffer will be saved to the
[class@File]'s location.

This constructor is suitable for a simple "save" operation, when the @file
already contains a non-%NULL [property@File:location].</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1094">a new #GtkSourceFileSaver object.</doc>
          <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1085">the #GtkSourceBuffer to save.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1086">the #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_target"
                   c:identifier="gtk_source_file_saver_new_with_target">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1109">Creates a new #GtkSourceFileSaver object with a target location.

When the file saving is finished successfully, @target_location is set to the @file's
[property@File:location] property. If an error occurs, the previous valid
location is still available in [class@File].

This constructor is suitable for a "save as" operation, or for saving a new
buffer for the first time.</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1124">a new #GtkSourceFileSaver object.</doc>
          <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1111">the #GtkSourceBuffer to save.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1112">the #GtkSourceFile.</doc>
            <type name="File" c:type="GtkSourceFile*"/>
          </parameter>
          <parameter name="target_location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1113">the #GFile where to save the buffer to.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer"
              c:identifier="gtk_source_file_saver_get_buffer"
              glib:get-property="buffer">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1146">the #GtkSourceBuffer to save.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1144">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compression_type"
              c:identifier="gtk_source_file_saver_get_compression_type"
              glib:get-property="compression-type">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1291">the compression type.</doc>
          <type name="CompressionType" c:type="GtkSourceCompressionType"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1289">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_encoding"
              c:identifier="gtk_source_file_saver_get_encoding"
              glib:get-property="encoding">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1217">the encoding.</doc>
          <type name="Encoding" c:type="const GtkSourceEncoding*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1215">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file"
              c:identifier="gtk_source_file_saver_get_file"
              glib:get-property="file">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1160">the #GtkSourceFile.</doc>
          <type name="File" c:type="GtkSourceFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1158">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="gtk_source_file_saver_get_flags"
              glib:get-property="flags">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1325">the flags.</doc>
          <type name="FileSaverFlags" c:type="GtkSourceFileSaverFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1323">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="gtk_source_file_saver_get_location"
              glib:get-property="location">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1174">the #GFile where to save the buffer to.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1172">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newline_type"
              c:identifier="gtk_source_file_saver_get_newline_type"
              glib:get-property="newline-type">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1254">the newline type.</doc>
          <type name="NewlineType" c:type="GtkSourceNewlineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1252">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_async"
              c:identifier="gtk_source_file_saver_save_async"
              glib:finish-func="save_finish">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1335">Saves asynchronously the buffer into the file.

See the [iface@Gio.AsyncResult] documentation to know how to use this function.</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1337">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1338">the I/O priority of the request. E.g. %G_PRIORITY_LOW,
  %G_PRIORITY_DEFAULT or %G_PRIORITY_HIGH.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1340">optional #GCancellable object, %NULL to ignore.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="progress_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1341">
  function to call back with progress information, or %NULL if progress
  information is not needed.</doc>
            <type name="Gio.FileProgressCallback"
                  c:type="GFileProgressCallback"/>
          </parameter>
          <parameter name="progress_callback_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1344">user data to pass to @progress_callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="progress_callback_notify"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1345">function to call on
  @progress_callback_data when the @progress_callback is no longer needed, or
  %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1348">a #GAsyncReadyCallback to call when the request is
  satisfied.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1350">user data to pass to @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_finish"
              c:identifier="gtk_source_file_saver_save_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1424">Finishes a file saving started with [method@FileSaver.save_async].

If the file has been saved successfully, the following [class@File]
properties will be updated: the location, the encoding, the newline type and
the compression type.

Since the 3.20 version, [method@Gtk.TextBuffer.set_modified] is called with %FALSE
if the file has been saved successfully.</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefilesaver.c"
               line="1439">whether the file was saved successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1426">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1427">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_compression_type"
              c:identifier="gtk_source_file_saver_set_compression_type"
              glib:set-property="compression-type">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1264">Sets the compression type. By default the compression type is taken from the
#GtkSourceFile.</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1266">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
          <parameter name="compression_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1267">the new compression type.</doc>
            <type name="CompressionType" c:type="GtkSourceCompressionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_encoding"
              c:identifier="gtk_source_file_saver_set_encoding"
              glib:set-property="encoding">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1184">Sets the encoding. If @encoding is %NULL, the UTF-8 encoding will be set.

By default the encoding is taken from the #GtkSourceFile.</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1186">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
          <parameter name="encoding"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1187">the new encoding, or %NULL for UTF-8.</doc>
            <type name="Encoding" c:type="const GtkSourceEncoding*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="gtk_source_file_saver_set_flags"
              glib:set-property="flags">
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1303">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1304">the new flags.</doc>
            <type name="FileSaverFlags" c:type="GtkSourceFileSaverFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_newline_type"
              c:identifier="gtk_source_file_saver_set_newline_type"
              glib:set-property="newline-type">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="1227">Sets the newline type. By default the newline type is taken from the
#GtkSourceFile.</doc>
        <source-position filename="gtksourceview/gtksourcefilesaver.h"
                         line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="saver" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1229">a #GtkSourceFileSaver.</doc>
            <type name="FileSaver" c:type="GtkSourceFileSaver*"/>
          </instance-parameter>
          <parameter name="newline_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcefilesaver.c"
                 line="1230">the new newline type.</doc>
            <type name="NewlineType" c:type="GtkSourceNewlineType"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="354">The #GtkSourceBuffer to save. The #GtkSourceFileSaver object has a
weak reference to the buffer.</doc>
        <type name="Buffer"/>
      </property>
      <property name="compression-type"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_compression_type"
                getter="get_compression_type"
                default-value="GTK_SOURCE_COMPRESSION_TYPE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="428">The compression type.</doc>
        <type name="CompressionType"/>
      </property>
      <property name="encoding"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_encoding"
                getter="get_encoding">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="399">The file's encoding.</doc>
        <type name="Encoding"/>
      </property>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_file">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="369">The #GtkSourceFile. The #GtkSourceFileSaver object has a weak
reference to the file.</doc>
        <type name="File"/>
      </property>
      <property name="flags"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_flags"
                getter="get_flags"
                default-value="GTK_SOURCE_FILE_SAVER_FLAGS_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="443">File saving flags.</doc>
        <type name="FileSaverFlags"/>
      </property>
      <property name="location"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_location">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="384">The #GFile where to save the buffer. By default the location is taken
from the #GtkSourceFile at construction time.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="newline-type"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_newline_type"
                getter="get_newline_type"
                default-value="GTK_SOURCE_NEWLINE_TYPE_LF">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.c"
             line="413">The newline type.</doc>
        <type name="NewlineType"/>
      </property>
    </class>
    <record name="FileSaverClass"
            c:type="GtkSourceFileSaverClass"
            glib:is-gtype-struct-for="FileSaver">
      <source-position filename="gtksourceview/gtksourcefilesaver.h"
                       line="72"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="FileSaverError"
                 glib:type-name="GtkSourceFileSaverError"
                 glib:get-type="gtk_source_file_saver_error_get_type"
                 c:type="GtkSourceFileSaverError"
                 glib:error-domain="gtk-source-file-saver-error">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefilesaver.h"
           line="39">An error code used with the %GTK_SOURCE_FILE_SAVER_ERROR domain.</doc>
      <member name="invalid_chars"
              value="0"
              c:identifier="GTK_SOURCE_FILE_SAVER_ERROR_INVALID_CHARS"
              glib:nick="invalid-chars"
              glib:name="GTK_SOURCE_FILE_SAVER_ERROR_INVALID_CHARS">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.h"
             line="41">The buffer contains invalid
  characters.</doc>
      </member>
      <member name="externally_modified"
              value="1"
              c:identifier="GTK_SOURCE_FILE_SAVER_ERROR_EXTERNALLY_MODIFIED"
              glib:nick="externally-modified"
              glib:name="GTK_SOURCE_FILE_SAVER_ERROR_EXTERNALLY_MODIFIED">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.h"
             line="43">The file is externally
  modified.</doc>
      </member>
      <function name="quark" c:identifier="gtk_source_file_saver_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="FileSaverFlags"
              glib:type-name="GtkSourceFileSaverFlags"
              glib:get-type="gtk_source_file_saver_flags_get_type"
              c:type="GtkSourceFileSaverFlags">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefilesaver.h"
           line="54">Flags to define the behavior of a [flags@FileSaverFlags].</doc>
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_FILE_SAVER_FLAGS_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_FILE_SAVER_FLAGS_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.h"
             line="56">No flags.</doc>
      </member>
      <member name="ignore_invalid_chars"
              value="1"
              c:identifier="GTK_SOURCE_FILE_SAVER_FLAGS_IGNORE_INVALID_CHARS"
              glib:nick="ignore-invalid-chars"
              glib:name="GTK_SOURCE_FILE_SAVER_FLAGS_IGNORE_INVALID_CHARS">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.h"
             line="57">Ignore invalid characters.</doc>
      </member>
      <member name="ignore_modification_time"
              value="2"
              c:identifier="GTK_SOURCE_FILE_SAVER_FLAGS_IGNORE_MODIFICATION_TIME"
              glib:nick="ignore-modification-time"
              glib:name="GTK_SOURCE_FILE_SAVER_FLAGS_IGNORE_MODIFICATION_TIME">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.h"
             line="58">Save file despite external modifications.</doc>
      </member>
      <member name="create_backup"
              value="4"
              c:identifier="GTK_SOURCE_FILE_SAVER_FLAGS_CREATE_BACKUP"
              glib:nick="create-backup"
              glib:name="GTK_SOURCE_FILE_SAVER_FLAGS_CREATE_BACKUP">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefilesaver.h"
             line="59">Create a backup before saving the file.</doc>
      </member>
    </bitfield>
    <class name="Gutter"
           c:symbol-prefix="gutter"
           c:type="GtkSourceGutter"
           parent="Gtk.Widget"
           glib:type-name="GtkSourceGutter"
           glib:get-type="gtk_source_gutter_get_type"
           glib:type-struct="GutterClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcegutter.c"
           line="32">Gutter object for [class@View].

The `GtkSourceGutter` object represents the left or right gutter of the text
view. It is used by [class@View] to draw the line numbers and
[class@Mark]s that might be present on a line. By packing
additional [class@GutterRenderer] objects in the gutter, you can extend the
gutter with your own custom drawings.

To get a `GtkSourceGutter`, use the [method@View.get_gutter] function.

The gutter works very much the same way as cells rendered in a [class@Gtk.TreeView].
The concept is similar, with the exception that the gutter does not have an
underlying [iface@Gtk.TreeModel]. The builtin line number renderer is at position
%GTK_SOURCE_VIEW_GUTTER_POSITION_LINES (-30) and the marks renderer is at
%GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS (-20). The gutter sorts the renderers
in ascending order, from left to right. So the marks are displayed on the
right of the line numbers.</doc>
      <source-position filename="gtksourceview/gtksourcegutter.h" line="35"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <method name="get_view"
              c:identifier="gtk_source_gutter_get_view"
              glib:get-property="view">
        <source-position filename="gtksourceview/gtksourcegutter.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutter.c"
               line="576">the associated #GtkSourceView.</doc>
          <type name="View" c:type="GtkSourceView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="gutter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="574">a #GtkSourceGutter.</doc>
            <type name="Gutter" c:type="GtkSourceGutter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="gtk_source_gutter_insert">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutter.c"
             line="586">Insert @renderer into the gutter. If @renderer is yet unowned then gutter
claims its ownership. Otherwise just increases renderer's reference count.
@renderer cannot be already inserted to another gutter.</doc>
        <source-position filename="gtksourceview/gtksourcegutter.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutter.c"
               line="596">%TRUE if operation succeeded. Otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="gutter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="588">a #GtkSourceGutter.</doc>
            <type name="Gutter" c:type="GtkSourceGutter*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="589">a gutter renderer (must inherit from #GtkSourceGutterRenderer).</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="590">the renderer position.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gtk_source_gutter_remove">
        <source-position filename="gtksourceview/gtksourcegutter.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gutter" transfer-ownership="none">
            <type name="Gutter" c:type="GtkSourceGutter*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reorder" c:identifier="gtk_source_gutter_reorder">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutter.c"
             line="687">Reorders @renderer in @gutter to new @position.</doc>
        <source-position filename="gtksourceview/gtksourcegutter.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="gutter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="689">a #GtkSourceGutterRenderer.</doc>
            <type name="Gutter" c:type="GtkSourceGutter*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="690">a #GtkCellRenderer.</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutter.c"
                 line="691">the new renderer position.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutter.c"
             line="458">The #GtkSourceView of the gutter.</doc>
        <type name="View"/>
      </property>
      <property name="window-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="GTK_TEXT_WINDOW_LEFT">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutter.c"
             line="471">The text window type on which the window is placed.</doc>
        <type name="Gtk.TextWindowType"/>
      </property>
    </class>
    <record name="GutterClass"
            c:type="GtkSourceGutterClass"
            glib:is-gtype-struct-for="Gutter">
      <source-position filename="gtksourceview/gtksourcegutter.h" line="35"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <class name="GutterLines"
           c:symbol-prefix="gutter_lines"
           c:type="GtkSourceGutterLines"
           parent="GObject.Object"
           glib:type-name="GtkSourceGutterLines"
           glib:get-type="gtk_source_gutter_lines_get_type"
           glib:type-struct="GutterLinesClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcegutterlines.c"
           line="27">Collected information about visible lines.

The `GtkSourceGutterLines` object is used to collect information about
visible lines.

Use this from your [signal@GutterRenderer::query-data] to collect the
necessary information on visible lines. Doing so reduces the number of
passes through the text btree allowing GtkSourceView to reach more
frames-per-second while performing kinetic scrolling.</doc>
      <source-position filename="gtksourceview/gtksourcegutterlines.h"
                       line="36"/>
      <method name="add_class"
              c:identifier="gtk_source_gutter_lines_add_class">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="314">Adds the class @name to @line.

@name will be converted to a [alias@GLib.Quark] as part of this process. A
faster version of this function is available via
[method@GutterLines.add_qclass] for situations where the [alias@GLib.Quark] is
known ahead of time.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="316">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="317">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="318">a class name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_qclass"
              c:identifier="gtk_source_gutter_lines_add_qclass">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="283">Adds the class denoted by @qname to @line.

You may check if a line has @qname by calling
[method@GutterLines.has_qclass].

You can remove @qname by calling
[method@GutterLines.remove_qclass].</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="285">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="286">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="qname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="287">a class name as a #GQuark</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_gutter_lines_get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="580">Gets the [class@Gtk.TextBuffer] that the `GtkSourceGutterLines` represents.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="586">a #GtkTextBuffer</doc>
          <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="582">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_first"
              c:identifier="gtk_source_gutter_lines_get_first">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="508">Gets the line number (starting from 0) for the first line that is
user visible.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="515">a line number starting from 0</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="510">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter_at_line"
              c:identifier="gtk_source_gutter_lines_get_iter_at_line">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="542">Gets a #GtkTextIter for the current buffer at @line</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="544">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="545">a location for a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="546">the line number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_last" c:identifier="gtk_source_gutter_lines_get_last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="525">Gets the line number (starting from 0) for the last line that is
user visible.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="532">a line number starting from 0</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="527">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line_extent"
              c:identifier="gtk_source_gutter_lines_get_line_extent"
              version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="596">Gets the Y range for a line based on @mode.

The value for @y is relative to the renderers widget coordinates.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="598">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="599">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="600">a #GtkSourceGutterRendererAlignmentMode</doc>
            <type name="GutterRendererAlignmentMode"
                  c:type="GtkSourceGutterRendererAlignmentMode"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="601">a location for the Y position in widget coordinates</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="602">the line height based on @mode</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_yrange"
              c:identifier="gtk_source_gutter_lines_get_line_yrange">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="648">Gets the Y range for a line based on @mode.

The value for @y is relative to the renderers widget coordinates.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="650">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="651">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="652">a #GtkSourceGutterRendererAlignmentMode</doc>
            <type name="GutterRendererAlignmentMode"
                  c:type="GtkSourceGutterRendererAlignmentMode"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="653">a location for the Y position in widget coordinates</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="654">the line height based on @mode</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view" c:identifier="gtk_source_gutter_lines_get_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="564">Gets the [class@Gtk.TextView] that the `GtkSourceGutterLines` represents.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="570">a #GtkTextView</doc>
          <type name="Gtk.TextView" c:type="GtkTextView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="566">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_any_class"
              c:identifier="gtk_source_gutter_lines_has_any_class"
              version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="690">Checks to see if the line has any GQuark classes set. This can be
used to help renderer implementations avoid work if nothing has
been set on the class.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="699">%TRUE if any quark was set for the line</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="692">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="693">a line contained within @lines</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_class"
              c:identifier="gtk_source_gutter_lines_has_class">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="394">Checks to see if [method@GutterLines.add_class] was called with
the @name for @line.

A faster version of this function is provided via
[method@GutterLines.has_qclass] for situations where the quark
is known ahead of time.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="407">%TRUE if @line contains @name</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="396">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="397">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="398">a class name that may be converted, to a #GQuark</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_qclass"
              c:identifier="gtk_source_gutter_lines_has_qclass">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="428">Checks to see if [method@GutterLines.add_qclass] was called with
the quark denoted by @qname for @line.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="437">%TRUE if @line contains @qname</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="430">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="431">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="qname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="432">a #GQuark containing the class name</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_cursor"
              c:identifier="gtk_source_gutter_lines_is_cursor">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="457">Checks to see if @line contains the insertion cursor.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="464">%TRUE if the insertion cursor is on @line</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="459">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="460">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_prelit"
              c:identifier="gtk_source_gutter_lines_is_prelit">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="474">Checks to see if @line is marked as prelit. Generally, this means
the mouse pointer is over the line within the gutter.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="482">%TRUE if the line is prelit</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="476">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="477">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_selected"
              c:identifier="gtk_source_gutter_lines_is_selected">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="491">Checks to see if the view had a selection and if that selection overlaps
@line in some way.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterlines.c"
               line="499">%TRUE if the line contains a selection</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="493">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="494">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_class"
              c:identifier="gtk_source_gutter_lines_remove_class">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="339">Removes the class matching @name from @line.

A faster version of this function is available via
[method@GutterLines.remove_qclass] for situations where the
#GQuark is known ahead of time.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="341">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="342">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="343">a class name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_qclass"
              c:identifier="gtk_source_gutter_lines_remove_qclass">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterlines.c"
             line="368">Reverses a call to [method@GutterLines.add_qclass] by removing
the [alias@GLib.Quark] matching @qname.</doc>
        <source-position filename="gtksourceview/gtksourcegutterlines.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="370">a #GtkSourceGutterLines</doc>
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="371">a line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="qname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterlines.c"
                 line="372">a #GQuark to remove from @line</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="GutterLinesClass"
            c:type="GtkSourceGutterLinesClass"
            glib:is-gtype-struct-for="GutterLines">
      <source-position filename="gtksourceview/gtksourcegutterlines.h"
                       line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="GutterRenderer"
           c:symbol-prefix="gutter_renderer"
           c:type="GtkSourceGutterRenderer"
           parent="Gtk.Widget"
           abstract="1"
           glib:type-name="GtkSourceGutterRenderer"
           glib:get-type="gtk_source_gutter_renderer_get_type"
           glib:type-struct="GutterRendererClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcegutterrenderer.c"
           line="33">Gutter cell renderer.

A `GtkSourceGutterRenderer` represents a column in a [class@Gutter]. The
column contains one cell for each visible line of the [class@Gtk.TextBuffer]. Due to
text wrapping, a cell can thus span multiple lines of the [class@Gtk.TextView]. In
this case, [enum@GutterRendererAlignmentMode] controls the alignment of
the cell.

The gutter renderer is a [class@Gtk.Widget] and is measured using the normal widget
measurement facilities. The width of the gutter will be determined by the
measurements of the gutter renderers.

The width of a gutter renderer generally takes into account the entire text
buffer. For instance, to display the line numbers, if the buffer contains 100
lines, the gutter renderer will always set its width such as three digits can
be printed, even if only the first 20 lines are shown. Another strategy is to
take into account only the visible lines.  In this case, only two digits are
necessary to display the line numbers of the first 20 lines. To take another
example, the gutter renderer for [class@Mark]s doesn't need to take
into account the text buffer to announce its width. It only depends on the
icons size displayed in the gutter column.

When the available size to render a cell is greater than the required size to
render the cell contents, the cell contents can be aligned horizontally and
vertically with [method@GutterRenderer.set_alignment_mode].

The cells rendering occurs using [vfunc@Gtk.Widget.snapshot]. Implementations
should use `gtk_source_gutter_renderer_get_lines()` to retrieve information
about the lines to be rendered. To help with aligning content which takes
into account the padding and alignment of a cell, implementations may call
[method@GutterRenderer.align_cell] for a given line number with the
width and height measurement of the content they width to render.</doc>
      <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                       line="95"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <virtual-method name="activate" invoker="activate">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="598">Emits the [signal@GutterRenderer::activate] signal of the renderer. This is
called from [class@Gutter] and should never have to be called manually.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="600">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="601">a #GtkTextIter at the start of the line where the renderer is activated</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="602">a #GdkRectangle of the cell area where the renderer is activated</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="603">the button that was pressed</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="604">a #GdkModifierType</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="n_presses" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="605">the number of button presses</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="begin">
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="lines" transfer-ownership="none">
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="change_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.h"
             line="73">This is called when the text buffer changes for @renderer.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.h"
                 line="75">a #GtkSourceGutterRenderer.</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="old_buffer"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.h"
                 line="76">the old #GtkTextBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="change_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.h"
             line="64">This is called when the text view changes for @renderer.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.h"
                 line="66">a #GtkSourceGutterRenderer.</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="old_view"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.h"
                 line="67">the old #GtkTextView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end">
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_activatable" invoker="query_activatable">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="562">Get whether the renderer is activatable at the location provided. This is
called from [class@Gutter] to determine whether a renderer is activatable
using the mouse pointer.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrenderer.c"
               line="572">%TRUE if the renderer can be activated, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="564">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="565">a #GtkTextIter at the start of the line to be activated</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="566">a #GdkRectangle of the cell area to be activated</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_data">
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="lines" transfer-ownership="none">
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="snapshot_line">
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="snapshot" transfer-ownership="none">
            <type name="Gtk.Snapshot" c:type="GtkSnapshot*"/>
          </parameter>
          <parameter name="lines" transfer-ownership="none">
            <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate"
              c:identifier="gtk_source_gutter_renderer_activate">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="598">Emits the [signal@GutterRenderer::activate] signal of the renderer. This is
called from [class@Gutter] and should never have to be called manually.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="130"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="600">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="601">a #GtkTextIter at the start of the line where the renderer is activated</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="602">a #GdkRectangle of the cell area where the renderer is activated</doc>
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="603">the button that was pressed</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="604">a #GdkModifierType</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="n_presses" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="605">the number of button presses</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="align_cell"
              c:identifier="gtk_source_gutter_renderer_align_cell">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="755">Locates where to render content that is @width x @height based on
the renderers alignment and padding.

The location will be placed into @x and @y and is relative to the
renderer's coordinates.

It is encouraged that renderers use this function when snappshotting
to ensure consistent placement of their contents.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="757">the #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="758">the line number for content</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="759">the width of the content to draw</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="760">the height of the content to draw</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="761">the X position to render the content</doc>
            <type name="gfloat" c:type="gfloat*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="762">the Y position to render the content</doc>
            <type name="gfloat" c:type="gfloat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alignment_mode"
              c:identifier="gtk_source_gutter_renderer_get_alignment_mode"
              glib:get-property="alignment-mode">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="654">Get the alignment mode.

The alignment mode describes the manner in which the
renderer is aligned (see [property@GutterRenderer:xalign] and
[property@GutterRenderer:yalign]).</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrenderer.c"
               line="664">a #GtkSourceGutterRendererAlignmentMode</doc>
          <type name="GutterRendererAlignmentMode"
                c:type="GtkSourceGutterRendererAlignmentMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="656">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_gutter_renderer_get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="972">Gets the [class@Buffer] for which the gutter renderer is drawing.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="126"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrenderer.c"
               line="978">a #GtkTextBuffer or %NULL</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="974">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="gtk_source_gutter_renderer_get_view"
              glib:get-property="view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="676">Get the view associated to the gutter renderer</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrenderer.c"
               line="682">a #GtkSourceView</doc>
          <type name="View" c:type="GtkSourceView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="678">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xalign"
              c:identifier="gtk_source_gutter_renderer_get_xalign"
              glib:get-property="xalign">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="882">Gets the `xalign` property.

This may be used to adjust where within the cell rectangle the renderer will draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="884">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xpad"
              c:identifier="gtk_source_gutter_renderer_get_xpad"
              glib:get-property="xpad">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="792">Gets the `xpad` property.

This may be used to adjust the cell rectangle that the renderer will use to draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="111"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="794">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_yalign"
              c:identifier="gtk_source_gutter_renderer_get_yalign"
              glib:get-property="yalign">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="927">Gets the `yalign` property.

This may be used to adjust where within the cell rectangle the renderer will draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="106"/>
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="929">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ypad"
              c:identifier="gtk_source_gutter_renderer_get_ypad"
              glib:get-property="ypad">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="837">Gets the `ypad` property.

This may be used to adjust the cell rectangle that the renderer will use to draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="116"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="839">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="query_activatable"
              c:identifier="gtk_source_gutter_renderer_query_activatable">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="562">Get whether the renderer is activatable at the location provided. This is
called from [class@Gutter] to determine whether a renderer is activatable
using the mouse pointer.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrenderer.c"
               line="572">%TRUE if the renderer can be activated, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="564">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="565">a #GtkTextIter at the start of the line to be activated</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="566">a #GdkRectangle of the cell area to be activated</doc>
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alignment_mode"
              c:identifier="gtk_source_gutter_renderer_set_alignment_mode"
              glib:set-property="alignment-mode">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="625">Set the alignment mode. The alignment mode describes the manner in which the
renderer is aligned (see [property@GutterRenderer:xalign] and
[property@GutterRenderer:yalign]).</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="627">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="628">a #GtkSourceGutterRendererAlignmentMode</doc>
            <type name="GutterRendererAlignmentMode"
                  c:type="GtkSourceGutterRendererAlignmentMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_xalign"
              c:identifier="gtk_source_gutter_renderer_set_xalign"
              glib:set-property="xalign">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="900">Adjusts the `xalign` property.

This may be used to adjust where within the cell rectangle the renderer will draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="902">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="xalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="903">the Y padding for the drawing cell</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_xpad"
              c:identifier="gtk_source_gutter_renderer_set_xpad"
              glib:set-property="xpad">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="810">Adjusts the `xpad` property.

This may be used to adjust the cell rectangle that the renderer will use to draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="812">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="xpad" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="813">the Y padding for the drawing cell</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_yalign"
              c:identifier="gtk_source_gutter_renderer_set_yalign"
              glib:set-property="yalign">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="945">Adjusts the `yalign` property.

This may be used to adjust where within the cell rectangle the renderer will draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="947">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="yalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="948">the Y padding for the drawing cell</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ypad"
              c:identifier="gtk_source_gutter_renderer_set_ypad"
              glib:set-property="ypad">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="855">Adjusts the `ypad` property.

This may be used to adjust the cell rectangle that the renderer will use to draw.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                         line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="857">a #GtkSourceGutterRenderer</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </instance-parameter>
          <parameter name="ypad" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="858">the Y padding for the drawing cell</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="alignment-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_alignment_mode"
                getter="get_alignment_mode"
                default-value="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_CELL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="467">The alignment mode of the renderer.

This can be used to indicate that in the case a cell spans multiple lines (due to text wrapping)
the alignment should work on either the full cell, the first line or the last line.</doc>
        <type name="GutterRendererAlignmentMode"/>
      </property>
      <property name="lines" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="378">Contains information about the lines to be rendered.

It should be used by #GtkSourceGutterRenderer implementations from [vfunc@Gtk.Widget.snapshot].</doc>
        <type name="GutterLines"/>
      </property>
      <property name="view" transfer-ownership="none" getter="get_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="455">The view on which the renderer is placed.</doc>
        <type name="Gtk.TextView"/>
      </property>
      <property name="xalign"
                writable="1"
                transfer-ownership="none"
                setter="set_xalign"
                getter="get_xalign"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="420">The horizontal alignment of the renderer.

Set to 0 for a left alignment. 1 for a right alignment. And 0.5 for centering the cells.
A value lower than 0 doesn't modify the alignment.</doc>
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="xpad"
                writable="1"
                transfer-ownership="none"
                setter="set_xpad"
                getter="get_xpad"
                default-value="0">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="392">The left and right padding of the renderer.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="yalign"
                writable="1"
                transfer-ownership="none"
                setter="set_yalign"
                getter="get_yalign"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="437">The vertical alignment of the renderer.

Set to 0 for a top alignment. 1 for a bottom alignment. And 0.5 for centering the cells.
A value lower than 0 doesn't modify the alignment.</doc>
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="ypad"
                writable="1"
                transfer-ownership="none"
                setter="set_ypad"
                getter="get_ypad"
                default-value="0">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="406">The top and bottom padding of the renderer.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Widget" c:type="GtkWidget"/>
      </field>
      <glib:signal name="activate" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="485">The signal is emitted when the renderer is activated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="488">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="489">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="490">the button that was pressed</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="491">a #GdkModifierType of state</doc>
            <type name="Gdk.ModifierType"/>
          </parameter>
          <parameter name="n_presses" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="492">the number of button presses</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-activatable" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.c"
             line="514">The signal is emitted when the renderer can possibly be activated.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="517">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="518">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-data" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <enumeration name="GutterRendererAlignmentMode"
                 glib:type-name="GtkSourceGutterRendererAlignmentMode"
                 glib:get-type="gtk_source_gutter_renderer_alignment_mode_get_type"
                 c:type="GtkSourceGutterRendererAlignmentMode">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcegutterrenderer.h"
           line="34">The alignment mode of the renderer, when a cell spans multiple lines (due to
text wrapping).</doc>
      <member name="cell"
              value="0"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_CELL"
              glib:nick="cell"
              glib:name="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_CELL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.h"
             line="36">The full cell.</doc>
      </member>
      <member name="first"
              value="1"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_FIRST"
              glib:nick="first"
              glib:name="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_FIRST">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.h"
             line="37">The first line.</doc>
      </member>
      <member name="last"
              value="2"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_LAST"
              glib:nick="last"
              glib:name="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_LAST">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderer.h"
             line="38">The last line.</doc>
      </member>
    </enumeration>
    <record name="GutterRendererClass"
            c:type="GtkSourceGutterRendererClass"
            glib:is-gtype-struct-for="GutterRenderer">
      <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                       line="95"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="query_data">
        <callback name="query_data">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="54"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="lines" transfer-ownership="none">
              <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin">
        <callback name="begin">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="57"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="lines" transfer-ownership="none">
              <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="snapshot_line">
        <callback name="snapshot_line">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="snapshot" transfer-ownership="none">
              <type name="Gtk.Snapshot" c:type="GtkSnapshot*"/>
            </parameter>
            <parameter name="lines" transfer-ownership="none">
              <type name="GutterLines" c:type="GtkSourceGutterLines*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end">
        <callback name="end">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="63"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="change_view">
        <callback name="change_view">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.h"
                   line="66">a #GtkSourceGutterRenderer.</doc>
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="old_view"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.h"
                   line="67">the old #GtkTextView.</doc>
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="change_buffer">
        <callback name="change_buffer">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.h"
                   line="75">a #GtkSourceGutterRenderer.</doc>
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="old_buffer"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.h"
                   line="76">the old #GtkTextBuffer.</doc>
              <type name="Buffer" c:type="GtkSourceBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_activatable">
        <callback name="query_activatable">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="83"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderer.c"
                 line="572">%TRUE if the renderer can be activated, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="564">a #GtkSourceGutterRenderer</doc>
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="565">a #GtkTextIter at the start of the line to be activated</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="566">a #GdkRectangle of the cell area to be activated</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate">
        <callback name="activate">
          <source-position filename="gtksourceview/gtksourcegutterrenderer.h"
                           line="86"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="600">a #GtkSourceGutterRenderer</doc>
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="601">a #GtkTextIter at the start of the line where the renderer is activated</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="602">a #GdkRectangle of the cell area where the renderer is activated</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="button" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="603">the button that was pressed</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="604">a #GdkModifierType</doc>
              <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
            </parameter>
            <parameter name="n_presses" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcegutterrenderer.c"
                   line="605">the number of button presses</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="GutterRendererPixbuf"
           c:symbol-prefix="gutter_renderer_pixbuf"
           c:type="GtkSourceGutterRendererPixbuf"
           parent="GutterRenderer"
           glib:type-name="GtkSourceGutterRendererPixbuf"
           glib:get-type="gtk_source_gutter_renderer_pixbuf_get_type"
           glib:type-struct="GutterRendererPixbufClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
           line="25">Renders a pixbuf in the gutter.

A `GtkSourceGutterRendererPixbuf` can be used to render an image in a cell of
[class@Gutter].</doc>
      <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                       line="42"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new"
                   c:identifier="gtk_source_gutter_renderer_pixbuf_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
             line="285">Create a new #GtkSourceGutterRendererPixbuf.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
               line="290">A #GtkSourceGutterRenderer</doc>
          <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
        </return-value>
      </constructor>
      <method name="get_gicon"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_gicon"
              glib:get-property="gicon">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
             line="349">Get the gicon of the renderer</doc>
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
               line="355">a #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="351">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_icon_name"
              glib:get-property="icon-name">
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_paintable"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_paintable"
              glib:get-property="paintable">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
             line="411">Gets a [iface@Gdk.Paintable] that was set with
[method@GutterRendererPixbuf.set_paintable]</doc>
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="62"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
               line="418">a #GdkPaintable or %NULL</doc>
          <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="413">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_pixbuf"
              glib:get-property="pixbuf">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
             line="315">Get the pixbuf of the renderer.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
               line="321">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="317">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="overlay_paintable"
              c:identifier="gtk_source_gutter_renderer_pixbuf_overlay_paintable">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
             line="430">Allows overlaying a paintable on top of any other image that
has been set for the pixbuf. This will be applied when the
widget is next snapshot.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="432">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
          <parameter name="paintable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="433">a #GdkPaintable</doc>
            <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gicon"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_gicon"
              glib:set-property="gicon">
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="336">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
          <parameter name="icon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="337">the icon, or %NULL.</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_icon_name"
              glib:set-property="icon-name">
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="370">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="371">the icon name, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_paintable"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_paintable"
              glib:set-property="paintable">
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="394">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
          <parameter name="paintable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="395">the paintable, or %NULL.</doc>
            <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_pixbuf"
              glib:set-property="pixbuf">
        <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="301">a #GtkSourceGutterRendererPixbuf</doc>
            <type name="GutterRendererPixbuf"
                  c:type="GtkSourceGutterRendererPixbuf*"/>
          </instance-parameter>
          <parameter name="pixbuf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrendererpixbuf.c"
                 line="302">the pixbuf, or %NULL.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <property name="gicon"
                writable="1"
                transfer-ownership="none"
                setter="set_gicon"
                getter="get_gicon">
        <type name="Gio.Icon"/>
      </property>
      <property name="icon-name"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="paintable"
                writable="1"
                transfer-ownership="none"
                setter="set_paintable"
                getter="get_paintable">
        <type name="Gdk.Paintable"/>
      </property>
      <property name="pixbuf"
                writable="1"
                transfer-ownership="none"
                setter="set_pixbuf"
                getter="get_pixbuf">
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <field name="parent_instance">
        <type name="GutterRenderer" c:type="GtkSourceGutterRenderer"/>
      </field>
    </class>
    <record name="GutterRendererPixbufClass"
            c:type="GtkSourceGutterRendererPixbufClass"
            glib:is-gtype-struct-for="GutterRendererPixbuf">
      <source-position filename="gtksourceview/gtksourcegutterrendererpixbuf.h"
                       line="42"/>
      <field name="parent_class">
        <type name="GutterRendererClass"
              c:type="GtkSourceGutterRendererClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="GutterRendererText"
           c:symbol-prefix="gutter_renderer_text"
           c:type="GtkSourceGutterRendererText"
           parent="GutterRenderer"
           glib:type-name="GtkSourceGutterRendererText"
           glib:get-type="gtk_source_gutter_renderer_text_get_type"
           glib:type-struct="GutterRendererTextClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcegutterrenderertext.c"
           line="26">Renders text in the gutter.

A `GtkSourceGutterRendererText` can be used to render text in a cell of
[class@Gutter].</doc>
      <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                       line="39"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new"
                   c:identifier="gtk_source_gutter_renderer_text_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderertext.c"
             line="497">Create a new #GtkSourceGutterRendererText.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                         line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcegutterrenderertext.c"
               line="502">A #GtkSourceGutterRenderer</doc>
          <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
        </return-value>
      </constructor>
      <method name="measure"
              c:identifier="gtk_source_gutter_renderer_text_measure">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderertext.c"
             line="284">Measures the text provided using the pango layout used by the
#GtkSourceGutterRendererText.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="286">a #GtkSourceGutterRendererText.</doc>
            <type name="GutterRendererText"
                  c:type="GtkSourceGutterRendererText*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="287">the text to measure.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="288">location to store the width of the text in pixels,
  or %NULL.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="290">location to store the height of the text in
  pixels, or %NULL.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="measure_markup"
              c:identifier="gtk_source_gutter_renderer_text_measure_markup">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcegutterrenderertext.c"
             line="308">Measures the pango markup provided using the pango layout used by the
#GtkSourceGutterRendererText.</doc>
        <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="310">a #GtkSourceGutterRendererText.</doc>
            <type name="GutterRendererText"
                  c:type="GtkSourceGutterRendererText*"/>
          </instance-parameter>
          <parameter name="markup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="311">the pango markup to measure.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="312">location to store the width of the text in pixels,
  or %NULL.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcegutterrenderertext.c"
                 line="314">location to store the height of the text in
  pixels, or %NULL.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_markup"
              c:identifier="gtk_source_gutter_renderer_text_set_markup"
              glib:set-property="markup">
        <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRendererText"
                  c:type="GtkSourceGutterRendererText*"/>
          </instance-parameter>
          <parameter name="markup" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="gtk_source_gutter_renderer_text_set_text"
              glib:set-property="text">
        <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="renderer" transfer-ownership="none">
            <type name="GutterRendererText"
                  c:type="GtkSourceGutterRendererText*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="markup"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_markup"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="text"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GutterRenderer" c:type="GtkSourceGutterRenderer"/>
      </field>
    </class>
    <record name="GutterRendererTextClass"
            c:type="GtkSourceGutterRendererTextClass"
            glib:is-gtype-struct-for="GutterRendererText">
      <source-position filename="gtksourceview/gtksourcegutterrenderertext.h"
                       line="39"/>
      <field name="parent_class">
        <type name="GutterRendererClass"
              c:type="GtkSourceGutterRendererClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="Hover"
           c:symbol-prefix="hover"
           c:type="GtkSourceHover"
           parent="GObject.Object"
           glib:type-name="GtkSourceHover"
           glib:get-type="gtk_source_hover_get_type"
           glib:type-struct="HoverClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcehover.c"
           line="38">Interactive tooltips.

`GtkSourceHover` allows a [class@View] to provide contextual information.
When enabled, if the user hovers over a word in the text editor, a series
of registered [iface@HoverProvider] can populate a [class@HoverDisplay]
with useful information.

To enable call [method@View.get_hover] and add [iface@HoverProvider]
using [method@Hover.add_provider]. To disable, remove all registered
providers with [method@Hover.remove_provider].

You can change how long to wait to display the interactive tooltip by
setting the [property@Hover:hover-delay] property in milliseconds.</doc>
      <source-position filename="gtksourceview/gtksourcehover.h" line="37"/>
      <method name="add_provider" c:identifier="gtk_source_hover_add_provider">
        <source-position filename="gtksourceview/gtksourcehover.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Hover" c:type="GtkSourceHover*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_provider"
              c:identifier="gtk_source_hover_remove_provider">
        <source-position filename="gtksourceview/gtksourcehover.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Hover" c:type="GtkSourceHover*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </parameter>
        </parameters>
      </method>
      <property name="hover-delay"
                writable="1"
                transfer-ownership="none"
                default-value="500">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcehover.c"
             line="463">Contains the number of milliseconds to delay before showing the hover assistant.</doc>
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="HoverClass"
            c:type="GtkSourceHoverClass"
            glib:is-gtype-struct-for="Hover">
      <source-position filename="gtksourceview/gtksourcehover.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="HoverContext"
           c:symbol-prefix="hover_context"
           c:type="GtkSourceHoverContext"
           parent="GObject.Object"
           glib:type-name="GtkSourceHoverContext"
           glib:get-type="gtk_source_hover_context_get_type"
           glib:type-struct="HoverContextClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcehovercontext.c"
           line="30">Context for populating [class@HoverDisplay] contents.

`GtkSourceHoverContext` contains information about the request to populate
contents for a [class@HoverDisplay].

It can be used to retrieve the [class@View], [class@Buffer], and
[struct@Gtk.TextIter] for the regions of text which are being displayed.

Use [method@HoverContext.get_bounds] to get the word that was
requested. [method@HoverContext.get_iter] will get you the location
of the pointer when the request was made.</doc>
      <source-position filename="gtksourceview/gtksourcehovercontext.h"
                       line="37"/>
      <method name="get_bounds"
              c:identifier="gtk_source_hover_context_get_bounds">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcehovercontext.c"
             line="357">Gets the current word bounds of the hover.

If @begin is non-%NULL, it will be set to the start position of the
current word being hovered.

If @end is non-%NULL, it will be set to the end position for the
current word being hovered.</doc>
        <source-position filename="gtksourceview/gtksourcehovercontext.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcehovercontext.c"
               line="371">%TRUE if the marks are still valid and @begin or @end was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="359">an #GtkSourceHoverContext</doc>
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </instance-parameter>
          <parameter name="begin"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="360">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="361">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_hover_context_get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcehovercontext.c"
             line="157">A convenience function to get the buffer.</doc>
        <source-position filename="gtksourceview/gtksourcehovercontext.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcehovercontext.c"
               line="163">The #GtkSourceBuffer for the view</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="159">a #GtkSourceHoverContext</doc>
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter" c:identifier="gtk_source_hover_context_get_iter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcehovercontext.c"
             line="333">Gets the location of the pointer where the request was made.</doc>
        <source-position filename="gtksourceview/gtksourcehovercontext.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcehovercontext.c"
               line="340">%TRUE if the mark is still valid and @iter was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="335">an #GtkSourceHoverContext</doc>
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="336">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view" c:identifier="gtk_source_hover_context_get_view">
        <source-position filename="gtksourceview/gtksourcehovercontext.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcehovercontext.c"
               line="147">the #GtkSourceView that owns the context</doc>
          <type name="View" c:type="GtkSourceView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcehovercontext.c"
                 line="145">a #GtkSourceHoverContext</doc>
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="HoverContextClass"
            c:type="GtkSourceHoverContextClass"
            glib:is-gtype-struct-for="HoverContext">
      <source-position filename="gtksourceview/gtksourcehovercontext.h"
                       line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="HoverDisplay"
           c:symbol-prefix="hover_display"
           c:type="GtkSourceHoverDisplay"
           parent="Gtk.Widget"
           glib:type-name="GtkSourceHoverDisplay"
           glib:get-type="gtk_source_hover_display_get_type"
           glib:type-struct="HoverDisplayClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcehoverdisplay.c"
           line="26">Display for interactive tooltips.

`GtkSourceHoverDisplay` is a [class@Gtk.Widget] that may be populated with widgets
to be displayed to the user in interactive tooltips. The children widgets
are packed vertically using a [class@Gtk.Box].

Implement the [iface@HoverProvider] interface to be notified of when
to populate a `GtkSourceHoverDisplay` on behalf of the user.</doc>
      <source-position filename="gtksourceview/gtksourcehoverdisplay.h"
                       line="37"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <method name="append" c:identifier="gtk_source_hover_display_append">
        <source-position filename="gtksourceview/gtksourcehoverdisplay.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_after"
              c:identifier="gtk_source_hover_display_insert_after">
        <source-position filename="gtksourceview/gtksourcehoverdisplay.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="sibling" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="gtk_source_hover_display_prepend">
        <source-position filename="gtksourceview/gtksourcehoverdisplay.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gtk_source_hover_display_remove">
        <source-position filename="gtksourceview/gtksourcehoverdisplay.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="HoverDisplayClass"
            c:type="GtkSourceHoverDisplayClass"
            glib:is-gtype-struct-for="HoverDisplay">
      <source-position filename="gtksourceview/gtksourcehoverdisplay.h"
                       line="37"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <interface name="HoverProvider"
               c:symbol-prefix="hover_provider"
               c:type="GtkSourceHoverProvider"
               glib:type-name="GtkSourceHoverProvider"
               glib:get-type="gtk_source_hover_provider_get_type"
               glib:type-struct="HoverProviderInterface">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcehoverprovider.c"
           line="28">Interface to populate interactive tooltips.

`GtkSourceHoverProvider` is an interface that should be implemented to extend
the contents of a [class@HoverDisplay]. This is typical in editors that
interact external tooling such as those utilizing Language Server Protocol.

If you can populate the [class@HoverDisplay] synchronously, use
[vfunc@HoverProvider.populate]. Otherwise, interface implementations that
may take additional time should use [vfunc@HoverProvider.populate_async]
to avoid blocking the main loop.</doc>
      <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                       line="56"/>
      <virtual-method name="populate"
                      throws="1"
                      glib:async-func="populate_async">
        <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </parameter>
          <parameter name="display" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_async"
                      invoker="populate_async"
                      glib:finish-func="populate_finish"
                      glib:sync-func="populate">
        <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </parameter>
          <parameter name="display" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="4">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_finish"
                      invoker="populate_finish"
                      throws="1">
        <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="populate_async"
              c:identifier="gtk_source_hover_provider_populate_async"
              glib:finish-func="populate_finish">
        <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
          </parameter>
          <parameter name="display" transfer-ownership="none">
            <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate_finish"
              c:identifier="gtk_source_hover_provider_populate_finish"
              throws="1">
        <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="HoverProviderInterface"
            c:type="GtkSourceHoverProviderInterface"
            glib:is-gtype-struct-for="HoverProvider">
      <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                       line="56"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="populate">
        <callback name="populate" throws="1">
          <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                           line="43"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
            </parameter>
            <parameter name="display" transfer-ownership="none">
              <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_async">
        <callback name="populate_async">
          <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                           line="47"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="HoverContext" c:type="GtkSourceHoverContext*"/>
            </parameter>
            <parameter name="display" transfer-ownership="none">
              <type name="HoverDisplay" c:type="GtkSourceHoverDisplay*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="5">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="5">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_finish">
        <callback name="populate_finish" throws="1">
          <source-position filename="gtksourceview/gtksourcehoverprovider.h"
                           line="53"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="HoverProvider" c:type="GtkSourceHoverProvider*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Indenter"
               c:symbol-prefix="indenter"
               c:type="GtkSourceIndenter"
               glib:type-name="GtkSourceIndenter"
               glib:get-type="gtk_source_indenter_get_type"
               glib:type-struct="IndenterInterface">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceindenter.c"
           line="27">Auto-indentation interface.

By default, [class@View] can auto-indent as you type when
[property@View:auto-indent] is enabled. The indentation simply copies the
previous lines indentation.

This can be changed by implementing `GtkSourceIndenter` and setting the
[property@View:indenter] property.

Implementors of this interface should implement both
[vfunc@GtkSource.Indenter.is_trigger] and [vfunc@GtkSource.Indenter.indent].

[vfunc@GtkSource.Indenter.is_trigger] is called upon key-press to
determine of the key press should trigger an indentation.  The default
implementation of the interface checks to see if the key was
[const@Gdk.KEY_Return] or [const@Gdk.KEY_KP_Enter] without %GDK_SHIFT_MASK set.

[vfunc@GtkSource.Indenter.indent] is called after text has been
inserted into [class@Buffer] when
[vfunc@GtkSource.Indenter.is_trigger] returned %TRUE. The [struct@Gtk.TextIter]
is placed directly after the inserted character or characters.

It may be beneficial to move the insertion mark using
[method@Gtk.TextBuffer.select_range] depending on how the indenter changes
the indentation.

All changes are encapsulated within a single user action so that the
user may undo them using standard undo/redo accelerators.</doc>
      <source-position filename="gtksourceview/gtksourceindenter.h" line="51"/>
      <virtual-method name="indent" invoker="indent">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceindenter.c"
             line="219">This function should be implemented to alter the indentation of text
within the view.

@view is provided so that the indenter may retrieve settings such as indentation and tab widths.

@iter is the location where the indentation was requested. This typically
is after having just inserted a newline (\n) character but can be other
situations such as a manually requested indentation or reformatting.

See [vfunc@GtkSource.Indenter.is_trigger] for how to trigger indentation on
various characters inserted into the buffer.

The implementor of this function is expected to keep @iter valid across
calls to the function and should contain the location of the insert mark
after calling this function.

The default implementation for this virtual function will copy the
indentation of the previous line.</doc>
        <source-position filename="gtksourceview/gtksourceindenter.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="221">a #GtkSourceIndenter</doc>
            <type name="Indenter" c:type="GtkSourceIndenter*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="222">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
          <parameter name="iter"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="223">the location of the indentation request</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_trigger" invoker="is_trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceindenter.c"
             line="185">This function is used to determine if a key pressed should cause the
indenter to automatically indent.

The default implementation of this virtual method will check to see
if @keyval is [const@Gdk.KEY_Return] or [const@Gdk.KEY_KP_Enter] and @state does
not have %GDK_SHIFT_MASK set. This is to allow the user to avoid
indentation when Shift+Return is pressed. Other indenters may want
to copy this behavior to provide a consistent experience to users.</doc>
        <source-position filename="gtksourceview/gtksourceindenter.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceindenter.c"
               line="202">%TRUE if indentation should be automatically triggered;
  otherwise %FALSE and no indentation will be performed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="187">a #GtkSourceIndenter</doc>
            <type name="Indenter" c:type="GtkSourceIndenter*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="188">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="189">the location where @ch is to be inserted</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="190">modifier state for the insertion</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="191">the keyval pressed such as [const@Gdk.KEY_Return]</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="indent" c:identifier="gtk_source_indenter_indent">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceindenter.c"
             line="219">This function should be implemented to alter the indentation of text
within the view.

@view is provided so that the indenter may retrieve settings such as indentation and tab widths.

@iter is the location where the indentation was requested. This typically
is after having just inserted a newline (\n) character but can be other
situations such as a manually requested indentation or reformatting.

See [vfunc@GtkSource.Indenter.is_trigger] for how to trigger indentation on
various characters inserted into the buffer.

The implementor of this function is expected to keep @iter valid across
calls to the function and should contain the location of the insert mark
after calling this function.

The default implementation for this virtual function will copy the
indentation of the previous line.</doc>
        <source-position filename="gtksourceview/gtksourceindenter.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="221">a #GtkSourceIndenter</doc>
            <type name="Indenter" c:type="GtkSourceIndenter*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="222">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
          <parameter name="iter"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="223">the location of the indentation request</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_trigger" c:identifier="gtk_source_indenter_is_trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceindenter.c"
             line="185">This function is used to determine if a key pressed should cause the
indenter to automatically indent.

The default implementation of this virtual method will check to see
if @keyval is [const@Gdk.KEY_Return] or [const@Gdk.KEY_KP_Enter] and @state does
not have %GDK_SHIFT_MASK set. This is to allow the user to avoid
indentation when Shift+Return is pressed. Other indenters may want
to copy this behavior to provide a consistent experience to users.</doc>
        <source-position filename="gtksourceview/gtksourceindenter.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceindenter.c"
               line="202">%TRUE if indentation should be automatically triggered;
  otherwise %FALSE and no indentation will be performed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="187">a #GtkSourceIndenter</doc>
            <type name="Indenter" c:type="GtkSourceIndenter*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="188">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="189">the location where @ch is to be inserted</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="190">modifier state for the insertion</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="191">the keyval pressed such as [const@Gdk.KEY_Return]</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="IndenterInterface"
            c:type="GtkSourceIndenterInterface"
            glib:is-gtype-struct-for="Indenter">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceindenter.c"
           line="60">The virtual function table for #GtkSourceIndenter.</doc>
      <source-position filename="gtksourceview/gtksourceindenter.h" line="51"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="is_trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceindenter.c"
             line="62">the virtual function pointer for gtk_source_indenter_is_trigger()</doc>
        <callback name="is_trigger">
          <source-position filename="gtksourceview/gtksourceindenter.h"
                           line="43"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceindenter.c"
                 line="202">%TRUE if indentation should be automatically triggered;
  otherwise %FALSE and no indentation will be performed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="187">a #GtkSourceIndenter</doc>
              <type name="Indenter" c:type="GtkSourceIndenter*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="188">a #GtkSourceView</doc>
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="189">the location where @ch is to be inserted</doc>
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="190">modifier state for the insertion</doc>
              <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
            </parameter>
            <parameter name="keyval" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="191">the keyval pressed such as [const@Gdk.KEY_Return]</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="indent">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceindenter.c"
             line="63">the virtual function pointer for gtk_source_indenter_indent()</doc>
        <callback name="indent">
          <source-position filename="gtksourceview/gtksourceindenter.h"
                           line="48"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="221">a #GtkSourceIndenter</doc>
              <type name="Indenter" c:type="GtkSourceIndenter*"/>
            </parameter>
            <parameter name="view" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="222">a #GtkSourceView</doc>
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
            <parameter name="iter"
                       direction="inout"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceindenter.c"
                   line="223">the location of the indentation request</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Language"
           c:symbol-prefix="language"
           c:type="GtkSourceLanguage"
           parent="GObject.Object"
           glib:type-name="GtkSourceLanguage"
           glib:get-type="gtk_source_language_get_type"
           glib:type-struct="LanguageClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcelanguage.c"
           line="40">Represents a syntax highlighted language.

A `GtkSourceLanguage` represents a programming or markup language, affecting
syntax highlighting and [context classes](./class.Buffer.html#context-classes).

Use [class@LanguageManager] to obtain a `GtkSourceLanguage` instance, and
[method@Buffer.set_language] to apply it to a [class@Buffer].</doc>
      <source-position filename="gtksourceview/gtksourcelanguage.h" line="35"/>
      <method name="get_globs" c:identifier="gtk_source_language_get_globs">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="655">Returns the globs associated to this language.

This is just an utility wrapper around [method@Language.get_metadata] to
retrieve the "globs" metadata property and split it into an array.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="664">
a newly-allocated %NULL terminated array containing the globs or %NULL
if no globs are found.
The returned array must be freed with g_strfreev().</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="657">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hidden"
              c:identifier="gtk_source_language_get_hidden"
              glib:get-property="hidden">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="589">Returns whether the language should be hidden from the user.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="595">%TRUE if the language should be hidden, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="591">a #GtkSourceLanguage</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="gtk_source_language_get_id"
              glib:get-property="id">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="527">Returns the ID of the language.

The ID is not locale-dependent.The returned string is owned by @language
and should not be freed or modified.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="536">the ID of @language.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="529">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata"
              c:identifier="gtk_source_language_get_metadata">
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="46"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="610">value of property @name stored in
the metadata of @language or %NULL if language does not contain the
specified metadata property.
The returned string is owned by @language and should not be freed
or modified.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="607">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="608">metadata property name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mime_types"
              c:identifier="gtk_source_language_get_mime_types">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="626">Returns the mime types associated to this language.

This is just an utility wrapper around [method@Language.get_metadata] to
retrieve the "mimetypes" metadata property and split it into an
array.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="49"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="636">
a newly-allocated %NULL terminated array containing the mime types
or %NULL if no mime types are found.
The returned array must be freed with g_strfreev().</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="628">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gtk_source_language_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="547">Returns the localized name of the language.

The returned string is owned by @language and should not be freed
or modified.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="556">the name of @language.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="549">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_section"
              c:identifier="gtk_source_language_get_section"
              glib:get-property="section">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="567">Returns the localized section of the language.

Each language belong to a section (ex. HTML belongs to the
Markup section).
The returned string is owned by @language and should not be freed
or modified.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="578">the section of @language.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="569">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_fallback"
              c:identifier="gtk_source_language_get_style_fallback">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="962">Returns the ID of the style to use if the specified @style_id
is not present in the current style scheme.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="970">the ID of the style to use if the
specified @style_id is not present in the current style scheme or %NULL
if the style has no fallback defined.
The returned string is owned by the @language and must not be modified.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="964">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
          <parameter name="style_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="965">a style ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_style_ids"
              c:identifier="gtk_source_language_get_style_ids">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="896">Returns the ids of the styles defined by this @language.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="53"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="902">
a newly-allocated %NULL terminated array containing ids of the
styles defined by this @language or %NULL if no style is defined.
The returned array must be freed with g_strfreev().</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="898">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_name"
              c:identifier="gtk_source_language_get_style_name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguage.c"
             line="935">Returns the name of the style with ID @style_id defined by this @language.</doc>
        <source-position filename="gtksourceview/gtksourcelanguage.h"
                         line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguage.c"
               line="942">the name of the style with ID @style_id
defined by this @language or %NULL if the style has no name or there is no
style with ID @style_id defined by this @language.
The returned string is owned by the @language and must not be modified.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="937">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </instance-parameter>
          <parameter name="style_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguage.c"
                 line="938">a style ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="hidden"
                transfer-ownership="none"
                getter="get_hidden"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="id"
                transfer-ownership="none"
                getter="get_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                transfer-ownership="none"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="section"
                transfer-ownership="none"
                getter="get_section"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="LanguageClass"
            c:type="GtkSourceLanguageClass"
            glib:is-gtype-struct-for="Language">
      <source-position filename="gtksourceview/gtksourcelanguage.h" line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="LanguageManager"
           c:symbol-prefix="language_manager"
           c:type="GtkSourceLanguageManager"
           parent="GObject.Object"
           glib:type-name="GtkSourceLanguageManager"
           glib:get-type="gtk_source_language_manager_get_type"
           glib:type-struct="LanguageManagerClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcelanguagemanager.c"
           line="30">Provides access to [class@Language]s.

`GtkSourceLanguageManager` is an object which processes language description
files and creates and stores [class@Language] objects, and provides API to
access them.

Use [func@LanguageManager.get_default] to retrieve the default
instance of `GtkSourceLanguageManager`, and
[method@LanguageManager.guess_language] to get a [class@Language] for
given file name and content type.</doc>
      <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                       line="35"/>
      <constructor name="new" c:identifier="gtk_source_language_manager_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="182">Creates a new language manager.

If you do not need more than one language manager or a private language manager
instance then use [func@LanguageManager.get_default] instead.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguagemanager.c"
               line="190">a new #GtkSourceLanguageManager.</doc>
          <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
        </return-value>
      </constructor>
      <function name="get_default"
                c:identifier="gtk_source_language_manager_get_default">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="198">Returns the default #GtkSourceLanguageManager instance.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguagemanager.c"
               line="203">a #GtkSourceLanguageManager.
Return value is owned by GtkSourceView library and must not be unref'ed.</doc>
          <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
        </return-value>
      </function>
      <method name="append_search_path"
              c:identifier="gtk_source_language_manager_append_search_path"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="276">Appends @path to the list of directories where the @manager looks for
language files.

See [method@LanguageManager.set_search_path] for details.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="278">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="279">a directory or a filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="gtk_source_language_manager_get_language">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="539">Gets the [class@Language] identified by the given @id in the language
manager.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguagemanager.c"
               line="547">a #GtkSourceLanguage, or %NULL
if there is no language identified by the given @id. Return value is
owned by @lm and should not be freed.</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="541">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="542">a language id.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_language_ids"
              c:identifier="gtk_source_language_manager_get_language_ids"
              glib:get-property="language-ids">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="517">Returns the ids of the available languages.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="53"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguagemanager.c"
               line="523">
a %NULL-terminated array of strings containing the ids of the available
languages or %NULL if no language is available.
The array is sorted alphabetically according to the language name.
The array is owned by @lm and must not be modified.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="519">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_path"
              c:identifier="gtk_source_language_manager_get_search_path"
              glib:get-property="search-path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="353">Gets the list directories where @lm looks for language files.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguagemanager.c"
               line="359">%NULL-terminated array
containing a list of language files directories.
The array is owned by @lm and must not be modified.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="355">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="guess_language"
              c:identifier="gtk_source_language_manager_guess_language">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="709">Picks a [class@Language] for given file name and content type,
according to the information in lang files.

Either @filename or @content_type may be %NULL. This function can be used as follows:

```c
GtkSourceLanguage *lang;
GtkSourceLanguageManager *manager;
lm = gtk_source_language_manager_get_default ();
lang = gtk_source_language_manager_guess_language (manager, filename, NULL);
gtk_source_buffer_set_language (buffer, lang);
```
```python
manager = GtkSource.LanguageManager.get_default()
language = manager.guess_language(filename=filename, content_type=None)
buffer.set_language(language=language)
```

or

```c
GtkSourceLanguage *lang = NULL;
GtkSourceLanguageManager *manager;
gboolean result_uncertain;
gchar *content_type;

content_type = g_content_type_guess (filename, NULL, 0, &amp;result_uncertain);
if (result_uncertain)
  {
    g_free (content_type);
    content_type = NULL;
  }

manager = gtk_source_language_manager_get_default ();
lang = gtk_source_language_manager_guess_language (manager, filename, content_type);
gtk_source_buffer_set_language (buffer, lang);

g_free (content_type);
```
```python
content_type, uncertain = Gio.content_type_guess(filename=filename, data=None)
if uncertain:
    content_type = None

manager = GtkSource.LanguageManager.get_default()
language = manager.guess_language(filename=filename, content_type=content_type)
buffer.set_language(language=language)
```

etc. Use [method@Language.get_mime_types] and [method@Language.get_globs]
if you need full control over file -&gt; language mapping.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcelanguagemanager.c"
               line="767">a #GtkSourceLanguage, or %NULL if there
is no suitable language for given @filename and/or @content_type. Return
value is owned by @lm and should not be freed.</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="711">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
          <parameter name="filename"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="712">a filename in Glib filename encoding, or %NULL.</doc>
            <type name="filename" c:type="const gchar*"/>
          </parameter>
          <parameter name="content_type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="713">a content type (as in GIO API), or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_search_path"
              c:identifier="gtk_source_language_manager_prepend_search_path"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="314">Prepends @path to the list of directories where the @manager looks
for language files.

See [method@LanguageManager.set_search_path] for details.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="316">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="317">a directory or a filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_path"
              c:identifier="gtk_source_language_manager_set_search_path"
              glib:set-property="search-path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcelanguagemanager.c"
             line="232">Sets the list of directories where the @lm looks for
language files.

If @dirs is %NULL, the search path is reset to default.

At the moment this function can be called only before the
language files are loaded for the first time. In practice
to set a custom search path for a `GtkSourceLanguageManager`,
you have to call this function right after creating it.

Since GtkSourceView 5.4 this function will allow you to provide
paths in the form of "resource:///" URIs to embedded `GResource`s.
They must contain the path of a directory within the `GResource`.</doc>
        <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="lm" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="234">a #GtkSourceLanguageManager.</doc>
            <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
          </instance-parameter>
          <parameter name="dirs"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcelanguagemanager.c"
                 line="235">a %NULL-terminated array of
  strings or %NULL.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="language-ids"
                transfer-ownership="none"
                getter="get_language_ids">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="search-path"
                writable="1"
                transfer-ownership="none"
                setter="set_search_path"
                getter="get_search_path">
        <array>
          <type name="utf8"/>
        </array>
      </property>
    </class>
    <record name="LanguageManagerClass"
            c:type="GtkSourceLanguageManagerClass"
            glib:is-gtype-struct-for="LanguageManager">
      <source-position filename="gtksourceview/gtksourcelanguagemanager.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="5" c:type="GTK_SOURCE_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.h"
           line="27">Like gtk_source_get_major_version(), but from the headers used at
application compile time, rather than from the library linked
against at application run time.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="34"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="0" c:type="GTK_SOURCE_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.h"
           line="45">Like gtk_source_get_micro_version(), but from the headers used at
application compile time, rather than from the library linked
against at application run time.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="52"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION"
              value="20"
              c:type="GTK_SOURCE_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.h"
           line="36">Like gtk_source_get_minor_version(), but from the headers used at
application compile time, rather than from the library linked
against at application run time.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="43"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Map"
           c:symbol-prefix="map"
           c:type="GtkSourceMap"
           parent="View"
           glib:type-name="GtkSourceMap"
           glib:get-type="gtk_source_map_get_type"
           glib:type-struct="MapClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcemap.c"
           line="35">Widget that displays a map for a specific [class@View].

`GtkSourceMap` is a widget that maps the content of a [class@View] into
a smaller view so the user can have a quick overview of the whole document.

This works by connecting a [class@View] to to the `GtkSourceMap` using
the [property@Map:view] property or [method@Map.set_view].

`GtkSourceMap` is a [class@View] object. This means that you can add a
[class@GutterRenderer] to a gutter in the same way you would for a
[class@View]. One example might be a [class@GutterRenderer] that shows
which lines have changed in the document.

Additionally, it is desirable to match the font of the `GtkSourceMap` and
the [class@View] used for editing. Therefore, [property@Map:font-desc]
should be used to set the target font. You will need to adjust this to the
desired font size for the map. A 1pt font generally seems to be an
appropriate font size. "Monospace 1" is the default. See
[method@Pango.FontDescription.set_size] for how to alter the size of an existing
[struct@Pango.FontDescription].

When FontConfig is available, `GtkSourceMap` will try to use a bundled
"block" font to make the map more legible.</doc>
      <source-position filename="gtksourceview/gtksourcemap.h" line="43"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.AccessibleText"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="gtk_source_map_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemap.c"
             line="1543">Creates a new `GtkSourceMap`.</doc>
        <source-position filename="gtksourceview/gtksourcemap.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemap.c"
               line="1548">a new #GtkSourceMap.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_view"
              c:identifier="gtk_source_map_get_view"
              glib:get-property="view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemap.c"
             line="1592">Gets the [property@Map:view] property, which is the view this widget is mapping.</doc>
        <source-position filename="gtksourceview/gtksourcemap.h" line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemap.c"
               line="1598">a #GtkSourceView or %NULL.</doc>
          <type name="View" c:type="GtkSourceView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemap.c"
                 line="1594">a #GtkSourceMap.</doc>
            <type name="Map" c:type="GtkSourceMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_view"
              c:identifier="gtk_source_map_set_view"
              glib:set-property="view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemap.c"
             line="1556">Sets the view that @map will be doing the mapping to.</doc>
        <source-position filename="gtksourceview/gtksourcemap.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemap.c"
                 line="1558">a #GtkSourceMap</doc>
            <type name="Map" c:type="GtkSourceMap*"/>
          </instance-parameter>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemap.c"
                 line="1559">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
        </parameters>
      </method>
      <property name="font-desc" writable="1" transfer-ownership="none">
        <type name="Pango.FontDescription"/>
      </property>
      <property name="view"
                writable="1"
                transfer-ownership="none"
                setter="set_view"
                getter="get_view">
        <type name="View"/>
      </property>
      <field name="parent_instance">
        <type name="View" c:type="GtkSourceView"/>
      </field>
    </class>
    <record name="MapClass"
            c:type="GtkSourceMapClass"
            glib:is-gtype-struct-for="Map">
      <source-position filename="gtksourceview/gtksourcemap.h" line="43"/>
      <field name="parent_class">
        <type name="ViewClass" c:type="GtkSourceViewClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="Mark"
           c:symbol-prefix="mark"
           c:type="GtkSourceMark"
           parent="Gtk.TextMark"
           glib:type-name="GtkSourceMark"
           glib:get-type="gtk_source_mark_get_type"
           glib:type-struct="MarkClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcemark.c"
           line="26">Mark object for [class@Buffer].

A `GtkSourceMark` marks a position in the text where you want to display
additional info. It is based on [class@Gtk.TextMark] and thus is still valid after
the text has changed though its position may change.

`GtkSourceMark`s are organized in categories which you have to set
when you create the mark. Each category can have a priority, a pixbuf and
other associated attributes. See [method@View.set_mark_attributes].
The pixbuf will be displayed in the margin at the line where the mark
residents if the [property@View:show-line-marks] property is set to %TRUE. If
there are multiple marks in the same line, the pixbufs will be drawn on top
of each other. The mark with the highest priority will be drawn on top.</doc>
      <source-position filename="gtksourceview/gtksourcemark.h" line="43"/>
      <constructor name="new" c:identifier="gtk_source_mark_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemark.c"
             line="145">Creates a text mark.

Add it to a buffer using [method@Gtk.TextBuffer.add_mark].
If name is NULL, the mark is anonymous; otherwise, the mark can be retrieved
by name using [method@Gtk.TextBuffer.get_mark].
Normally marks are created using the utility function
[method@Buffer.create_source_mark].</doc>
        <source-position filename="gtksourceview/gtksourcemark.h" line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemark.c"
               line="161">a new #GtkSourceMark that can be added using [method@Gtk.TextBuffer.add_mark].</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="147">Name of the #GtkSourceMark or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="148">is used to classify marks according to common characteristics
  (e.g. all the marks representing a bookmark could belong to the "bookmark"
  category, or all the marks representing a compilation error could belong
  to "error" category).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_category"
              c:identifier="gtk_source_mark_get_category"
              glib:get-property="category">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemark.c"
             line="176">Returns the mark category.</doc>
        <source-position filename="gtksourceview/gtksourcemark.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemark.c"
               line="182">the category of the #GtkSourceMark.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="178">a #GtkSourceMark.</doc>
            <type name="Mark" c:type="GtkSourceMark*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="gtk_source_mark_next">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemark.c"
             line="194">Returns the next `GtkSourceMark` in the buffer or %NULL if the mark
was not added to a buffer.

 If there is no next mark, %NULL will be returned.

If @category is %NULL, looks for marks of any category.</doc>
        <source-position filename="gtksourceview/gtksourcemark.h" line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemark.c"
               line="206">the next #GtkSourceMark, or %NULL.</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="196">a #GtkSourceMark.</doc>
            <type name="Mark" c:type="GtkSourceMark*"/>
          </instance-parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="197">a string specifying the mark category, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prev" c:identifier="gtk_source_mark_prev">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemark.c"
             line="228">Returns the previous `GtkSourceMark` in the buffer or %NULL if the mark
was not added to a buffer.

If there is no previous mark, %NULL is returned.

If @category is %NULL, looks for marks of any category</doc>
        <source-position filename="gtksourceview/gtksourcemark.h" line="54"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemark.c"
               line="240">the previous #GtkSourceMark, or %NULL.</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="230">a #GtkSourceMark.</doc>
            <type name="Mark" c:type="GtkSourceMark*"/>
          </instance-parameter>
          <parameter name="category"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemark.c"
                 line="231">a string specifying the mark category, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="category"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_category"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemark.c"
             line="123">The category of the `GtkSourceMark`, classifies the mark and controls
which pixbuf is used and with which priority it is drawn.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TextMark" c:type="GtkTextMark"/>
      </field>
    </class>
    <class name="MarkAttributes"
           c:symbol-prefix="mark_attributes"
           c:type="GtkSourceMarkAttributes"
           parent="GObject.Object"
           glib:type-name="GtkSourceMarkAttributes"
           glib:get-type="gtk_source_mark_attributes_get_type"
           glib:type-struct="MarkAttributesClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcemarkattributes.c"
           line="28">The source mark attributes object.

`GtkSourceMarkAttributes` is an object specifying attributes used by
a [class@View] to visually show lines marked with [class@Mark]s
of a specific category. It allows you to define a background color of a line,
an icon shown in gutter and tooltips.

The background color is used as a background of a line where a mark is placed
and it can be set with [method@MarkAttributes.set_background]. To check
if any custom background color was defined and what color it is, use
[method@MarkAttributes.get_background].

An icon is a graphic element which is shown in the gutter of a view. An
example use is showing a red filled circle in a debugger to show that a
breakpoint was set in certain line. To get an icon that will be placed in
a gutter, first a base for it must be specified and then
[method@MarkAttributes.render_icon] must be called.
There are several ways to specify a base for an icon:

- [method@MarkAttributes.set_icon_name]
- [method@MarkAttributes.set_gicon]
- [method@MarkAttributes.set_pixbuf]

Using any of the above functions overrides the one used earlier. But note
that a getter counterpart of earlier used function can still return some
value, but it is just not used when rendering the proper icon.

To provide meaningful tooltips for a given mark of a category, you should
connect to [signal@MarkAttributes::query-tooltip-text] or
[signal@MarkAttributes::query-tooltip-markup] where the latter
takes precedence.</doc>
      <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                       line="36"/>
      <constructor name="new" c:identifier="gtk_source_mark_attributes_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="362">Creates a new source mark attributes.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="367">a new source mark attributes.</doc>
          <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
        </return-value>
      </constructor>
      <method name="get_background"
              c:identifier="gtk_source_mark_attributes_get_background"
              glib:get-property="background">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="391">Stores background color in @background.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="398">whether background color for @attributes was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="393">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="background"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="394">a #GdkRGBA.</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_gicon"
              c:identifier="gtk_source_mark_attributes_get_gicon"
              glib:get-property="gicon">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="464">Gets a [iface@Gio.Icon] to be used as a base for rendered icon.

Note that the icon can be %NULL if it wasn't set earlier.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="472">An icon. The icon belongs to @attributes and should
not be unreffed.</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="466">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gtk_source_mark_attributes_get_icon_name"
              glib:get-property="icon-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="429">Gets a name of an icon to be used as a base for rendered icon.

Note that the icon name can be %NULL if it wasn't set earlier.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="437">An icon name. The string belongs to @attributes and
should not be freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="431">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf"
              c:identifier="gtk_source_mark_attributes_get_pixbuf"
              glib:get-property="pixbuf">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="499">Gets a [class@GdkPixbuf.Pixbuf] to be used as a base for rendered icon.

Note that the pixbuf can be %NULL if it wasn't set earlier.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="507">A pixbuf. The pixbuf belongs to @attributes and
should not be unreffed.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="501">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_markup"
              c:identifier="gtk_source_mark_attributes_get_tooltip_markup">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="584">Queries for a tooltip by emitting a [signal@MarkAttributes::query-tooltip-markup] signal.

The tooltip may contain a markup.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="69"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="593">A tooltip. The returned string should be freed by
using g_free() when done with it.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="586">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="587">a #GtkSourceMark.</doc>
            <type name="Mark" c:type="GtkSourceMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tooltip_text"
              c:identifier="gtk_source_mark_attributes_get_tooltip_text">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="557">Queries for a tooltip by emitting a [signal@MarkAttributes::query-tooltip-text] signal.

The tooltip is a plain text.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="66"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="566">A tooltip. The returned string should be freed by
using g_free() when done with it.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="559">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="560">a #GtkSourceMark.</doc>
            <type name="Mark" c:type="GtkSourceMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_icon"
              c:identifier="gtk_source_mark_attributes_render_icon">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="518">Renders an icon of given size.

The base of the icon is set by the last call to one of:

- [method@MarkAttributes.set_pixbuf]
- [method@MarkAttributes.set_gicon]
- [method@MarkAttributes.set_icon_name]

@size cannot be lower than 1.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="534">A #GdkPaintable. The paintable belongs to @attributes
and should not be unreffed.</doc>
          <type name="Gdk.Paintable" c:type="GdkPaintable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="520">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="521">widget of which style settings may be used.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="522">size of the rendered icon.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_background"
              c:identifier="gtk_source_mark_attributes_set_background"
              glib:set-property="background">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="375">Sets background color to the one given in @background.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="377">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="background" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="378">a #GdkRGBA.</doc>
            <type name="Gdk.RGBA" c:type="const GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gicon"
              c:identifier="gtk_source_mark_attributes_set_gicon"
              glib:set-property="gicon">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="448">Sets an icon to be used as a base for rendered icon.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="450">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="gicon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="451">a #GIcon to be used.</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gtk_source_mark_attributes_set_icon_name"
              glib:set-property="icon-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="413">Sets a name of an icon to be used as a base for rendered icon.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="415">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="416">name of an icon to be used.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf"
              c:identifier="gtk_source_mark_attributes_set_pixbuf"
              glib:set-property="pixbuf">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="483">Sets a pixbuf to be used as a base for rendered icon.</doc>
        <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="485">a #GtkSourceMarkAttributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="486">a #GdkPixbuf to be used.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="const GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <property name="background"
                writable="1"
                transfer-ownership="none"
                setter="set_background"
                getter="get_background">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="247">A color used for background of a line.</doc>
        <type name="Gdk.RGBA"/>
      </property>
      <property name="gicon"
                writable="1"
                transfer-ownership="none"
                setter="set_gicon"
                getter="get_gicon">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="289">A #GIcon that may be a base of a rendered icon.</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="icon-name"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="275">An icon name that may be a base of a rendered icon.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pixbuf"
                writable="1"
                transfer-ownership="none"
                setter="set_pixbuf"
                getter="get_pixbuf">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="261">A #GdkPixbuf that may be a base of a rendered icon.</doc>
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <glib:signal name="query-tooltip-markup" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="330">The code should connect to this signal to provide a tooltip for given
@mark. The tooltip can contain a markup.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="338">A tooltip. The string should be freed with
g_free() when done with it.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="333">The #GtkSourceMark.</doc>
            <type name="Mark"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-tooltip-text" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcemarkattributes.c"
             line="305">The code should connect to this signal to provide a tooltip for given
@mark. The tooltip should be just a plain text.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcemarkattributes.c"
               line="313">A tooltip. The string should be freed with
g_free() when done with it.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcemarkattributes.c"
                 line="308">The #GtkSourceMark.</doc>
            <type name="Mark"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MarkAttributesClass"
            c:type="GtkSourceMarkAttributesClass"
            glib:is-gtype-struct-for="MarkAttributes">
      <source-position filename="gtksourceview/gtksourcemarkattributes.h"
                       line="36"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MarkClass"
            c:type="GtkSourceMarkClass"
            glib:is-gtype-struct-for="Mark">
      <source-position filename="gtksourceview/gtksourcemark.h" line="43"/>
      <field name="parent_class">
        <type name="Gtk.TextMarkClass" c:type="GtkTextMarkClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="MountOperationFactory"
              c:type="GtkSourceMountOperationFactory"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcefile.h"
           line="70">Type definition for a function that will be called to create a
[class@Gio.MountOperation]. This is useful for creating a [class@Gtk.MountOperation].</doc>
      <source-position filename="gtksourceview/gtksourcefile.h" line="78"/>
      <return-value>
        <type name="Gio.MountOperation" c:type="GMountOperation*"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.h"
               line="72">a #GtkSourceFile.</doc>
          <type name="File" c:type="GtkSourceFile*"/>
        </parameter>
        <parameter name="userdata"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcefile.h"
               line="73">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="NewlineType"
                 glib:type-name="GtkSourceNewlineType"
                 glib:get-type="gtk_source_newline_type_get_type"
                 c:type="GtkSourceNewlineType">
      <member name="lf"
              value="0"
              c:identifier="GTK_SOURCE_NEWLINE_TYPE_LF"
              glib:nick="lf"
              glib:name="GTK_SOURCE_NEWLINE_TYPE_LF">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.h"
             line="36">line feed, used on UNIX.</doc>
      </member>
      <member name="cr"
              value="1"
              c:identifier="GTK_SOURCE_NEWLINE_TYPE_CR"
              glib:nick="cr"
              glib:name="GTK_SOURCE_NEWLINE_TYPE_CR">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.h"
             line="37">carriage return, used on Mac.</doc>
      </member>
      <member name="cr_lf"
              value="2"
              c:identifier="GTK_SOURCE_NEWLINE_TYPE_CR_LF"
              glib:nick="cr-lf"
              glib:name="GTK_SOURCE_NEWLINE_TYPE_CR_LF">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcefile.h"
             line="38">carriage return followed by a line feed, used
  on Windows.</doc>
      </member>
    </enumeration>
    <class name="PrintCompositor"
           c:symbol-prefix="print_compositor"
           c:type="GtkSourcePrintCompositor"
           parent="GObject.Object"
           glib:type-name="GtkSourcePrintCompositor"
           glib:get-type="gtk_source_print_compositor_get_type"
           glib:type-struct="PrintCompositorClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceprintcompositor.c"
           line="35">Compose a [class@Buffer] for printing.

The `GtkSourcePrintCompositor` object is used to compose a [class@Buffer]
for printing. You can set various configuration options to customize the
printed output. `GtkSourcePrintCompositor` is designed to be used with the
high-level printing API of gtk+, i.e. [class@Gtk.PrintOperation].

The margins specified in this object are the layout margins: they define the
blank space bordering the printed area of the pages. They must not be
confused with the "print margins", i.e. the parts of the page that the
printer cannot print on, defined in the [class@Gtk.PageSetup] objects. If the
specified layout margins are smaller than the "print margins", the latter
ones are used as a fallback by the `GtkSourcePrintCompositor` object, so that
the printed area is not clipped.</doc>
      <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                       line="44"/>
      <constructor name="new" c:identifier="gtk_source_print_compositor_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="727">Creates a new print compositor that can be used to print @buffer.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="733">a new print compositor object.</doc>
          <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="729">the #GtkSourceBuffer to print.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_view"
                   c:identifier="gtk_source_print_compositor_new_from_view">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="745">Creates a new print compositor that can be used to print the buffer
associated with @view.

This constructor sets some configuration properties to make the
printed output match @view as much as possible.  The properties set are
[property@PrintCompositor:tab-width], [property@PrintCompositor:highlight-syntax],
[property@PrintCompositor:wrap-mode], [property@PrintCompositor:body-font-name] and
[property@PrintCompositor:print-line-numbers].</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="49"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="758">a new print compositor object.</doc>
          <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="747">a #GtkSourceView to get configuration from.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="draw_page"
              c:identifier="gtk_source_print_compositor_draw_page">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="3041">Draw page @page_nr for printing on the the Cairo context encapsuled in @context.

This method has been designed to be called in the handler of the [signal@Gtk.PrintOperation::draw_page] signal
as shown in the following example:

```c
// Signal handler for the GtkPrintOperation::draw_page signal

static void
draw_page (GtkPrintOperation *operation,
           GtkPrintContext   *context,
           gint               page_nr,
           gpointer           user_data)
{
    GtkSourcePrintCompositor *compositor;

    compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data);

    gtk_source_print_compositor_draw_page (compositor,
                                           context,
                                           page_nr);
}
```
```python
def on_draw_page(
    operation: Gtk.PrintOperation,
    context: Gtk.PrintContext,
    page_nr: int,
    compositor: GtkSource.PrintCompositor,
) -&gt; None:
    """Signal handler for draw-page that renders a single page."""
    compositor.draw_page(context=context, page_nr=page_nr)
```</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="3043">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="3044">the #GtkPrintContext encapsulating the context information that is required when
          drawing the page for printing.</doc>
            <type name="Gtk.PrintContext" c:type="GtkPrintContext*"/>
          </parameter>
          <parameter name="page_nr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="3046">the number of the page to print.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_body_font_name"
              c:identifier="gtk_source_print_compositor_get_body_font_name"
              glib:get-property="body-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1290">Returns the name of the font used to print the text body.

The returned string must be freed with g_free().</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="76"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1298">a new string containing the name of the font used to print the
text body.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1292">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bottom_margin"
              c:identifier="gtk_source_print_compositor_get_bottom_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1565">Gets the bottom margin in units of @unit.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1572">the bottom margin.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1567">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1568">the unit for the return value.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_print_compositor_get_buffer"
              glib:get-property="buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="795">Gets the [class@Buffer] associated with the compositor.

The returned object reference is owned by the compositor object and
should not be unreferenced.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="804">the #GtkSourceBuffer associated with the compositor.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="797">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_footer_font_name"
              c:identifier="gtk_source_print_compositor_get_footer_font_name"
              glib:get-property="footer-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1478">Returns the name of the font used to print the page footer.

The returned string must be freed with g_free().</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="91"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1486">a new string containing the name of the font used to print
the page footer.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1480">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_header_font_name"
              c:identifier="gtk_source_print_compositor_get_header_font_name"
              glib:get-property="header-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1413">Returns the name of the font used to print the page header.

The returned string must be freed with g_free().</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="86"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1421">a new string containing the name of the font used to print
the page header.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1415">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_highlight_syntax"
              c:identifier="gtk_source_print_compositor_get_highlight_syntax"
              glib:get-property="highlight-syntax">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="940">Determines whether the printed text will be highlighted according to the
buffer rules.

Note that highlighting will happen only if the buffer to print has highlighting activated.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="949">%TRUE if the printed output will be highlighted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="942">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left_margin"
              c:identifier="gtk_source_print_compositor_get_left_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1605">Gets the left margin in units of @unit.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1612">the left margin</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1607">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1608">the unit for the return value.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_numbers_font_name"
              c:identifier="gtk_source_print_compositor_get_line_numbers_font_name"
              glib:get-property="line-numbers-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1348">Returns the name of the font used to print line numbers on the left margin.

The returned string must be freed with g_free().</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1356">a new string containing the name of the font used to print
line numbers on the left margin.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1350">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_pages"
              c:identifier="gtk_source_print_compositor_get_n_pages"
              glib:get-property="n-pages">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1665">Returns the number of pages in the document or &lt;code&gt;-1&lt;/code&gt; if the
document has not been completely paginated.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1672">the number of pages in the document or &lt;code&gt;-1&lt;/code&gt; if the
document has not been completely paginated.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1667">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pagination_progress"
              c:identifier="gtk_source_print_compositor_get_pagination_progress">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="2756">Returns the current fraction of the document pagination that has been completed.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="2762">a fraction from 0.0 to 1.0 inclusive.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="2758">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_print_footer"
              c:identifier="gtk_source_print_compositor_get_print_footer"
              glib:get-property="print-footer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1090">Determines if a footer is set to be printed for each page.

A footer will be printed if this function returns %TRUE
**and** some format strings have been specified
with [method@PrintCompositor.set_footer_format].</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1100">%TRUE if the footer is set to be printed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1092">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_print_header"
              c:identifier="gtk_source_print_compositor_get_print_header"
              glib:get-property="print-header">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1031">Determines if a header is set to be printed for each page.

A header will be printed if this function returns %TRUE
**and** some format strings have been specified
with [method@PrintCompositor.set_header_format].</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1041">%TRUE if the header is set to be printed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1033">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_print_line_numbers"
              c:identifier="gtk_source_print_compositor_get_print_line_numbers"
              glib:get-property="print-line-numbers">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1203">Returns the interval used for line number printing.

If the value is 0, no line numbers will be printed. The default value is
1 (i.e. numbers printed in all lines).</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1212">the interval of printed line numbers.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1205">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_right_margin"
              c:identifier="gtk_source_print_compositor_get_right_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1645">Gets the right margin in units of @unit.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1652">the right margin.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1647">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1648">the unit for the return value.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tab_width"
              c:identifier="gtk_source_print_compositor_get_tab_width"
              glib:get-property="tab-width">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="845">Returns the width of tabulation in characters for printed text.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="851">width of tab.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="847">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_top_margin"
              c:identifier="gtk_source_print_compositor_get_top_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1525">Gets the top margin in units of @unit.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="1532">the top margin.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1527">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1528">the unit for the return value.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_wrap_mode"
              c:identifier="gtk_source_print_compositor_get_wrap_mode"
              glib:get-property="wrap-mode">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="891">Gets the line wrapping mode for the printed text.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="897">the line wrap mode.</doc>
          <type name="Gtk.WrapMode" c:type="GtkWrapMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="893">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ignore_tag"
              c:identifier="gtk_source_print_compositor_ignore_tag"
              version="5.2">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="3268">Specifies a tag whose style should be ignored when compositing the
document to the printable page.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="154"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="3270">a #GtkSourcePrintCompositor</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="3271">a #GtkTextTag</doc>
            <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="paginate"
              c:identifier="gtk_source_print_compositor_paginate">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="2421">Paginate the document associated with the @compositor.

In order to support non-blocking pagination, document is paginated in small chunks.
Each time [method@PrintCompositor.paginate] is invoked, a chunk of the document
is paginated. To paginate the entire document, [method@PrintCompositor.paginate]
must be invoked multiple times.
It returns %TRUE if the document has been completely paginated, otherwise it returns %FALSE.

This method has been designed to be invoked in the handler of the [signal@Gtk.PrintOperation::paginate] signal,
as shown in the following example:

```c
// Signal handler for the GtkPrintOperation::paginate signal

static gboolean
paginate (GtkPrintOperation *operation,
          GtkPrintContext   *context,
          gpointer           user_data)
{
    GtkSourcePrintCompositor *compositor;

    compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data);

    if (gtk_source_print_compositor_paginate (compositor, context))
    {
        gint n_pages;

        n_pages = gtk_source_print_compositor_get_n_pages (compositor);
        gtk_print_operation_set_n_pages (operation, n_pages);

        return TRUE;
    }

    return FALSE;
}
```
```python
def on_paginate(
    operation: Gtk.PrintOperation,
    context: Gtk.PrintContext,
    compositor: GtkSource.PrintCompositor,
) -&gt; bool:
    if compositor.paginate(context=context):
        n_pages = compositor.get_n_pages()
        operation.set_n_pages(n_pages=n_pages)
        return True
    return False
```

If you don't need to do pagination in chunks, you can simply do it all in the
[signal@Gtk.PrintOperation::begin-print] handler, and set the number of pages from there, like
in the following example:

```c
// Signal handler for the GtkPrintOperation::begin-print signal

static void
begin_print (GtkPrintOperation *operation,
             GtkPrintContext   *context,
             gpointer           user_data)
{
    GtkSourcePrintCompositor *compositor;
    gint n_pages;

    compositor = GTK_SOURCE_PRINT_COMPOSITOR (user_data);

    while (!gtk_source_print_compositor_paginate (compositor, context));

    n_pages = gtk_source_print_compositor_get_n_pages (compositor);
    gtk_print_operation_set_n_pages (operation, n_pages);
}
```
```python
def on_begin_print(
    operation: Gtk.PrintOperation,
    context: Gtk.PrintContext,
    compositor: GtkSource.PrintCompositor,
) -&gt; None:
    # Paginate until complete
    while not compositor.paginate(context=context):
        pass

    n_pages = compositor.get_n_pages()
    operation.set_n_pages(n_pages=n_pages)
```</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceprintcompositor.c"
               line="2513">%TRUE if the document has been completely paginated, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="2423">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="2424">the #GtkPrintContext whose parameters (e.g. paper size, print margins, etc.)
are used by the the @compositor to paginate the document.</doc>
            <type name="Gtk.PrintContext" c:type="GtkPrintContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_body_font_name"
              c:identifier="gtk_source_print_compositor_set_body_font_name"
              glib:set-property="body-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1256">Sets the default font for the printed text.

@font_name should be a
string representation of a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1258">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="font_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1259">the name of the default font for the body text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bottom_margin"
              c:identifier="gtk_source_print_compositor_set_bottom_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1545">Sets the bottom margin used by @compositor.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1547">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1548">the new bottom margin in units of @unit.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1549">the units for @margin.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_footer_font_name"
              c:identifier="gtk_source_print_compositor_set_footer_font_name"
              glib:set-property="footer-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1440">Sets the font for printing the page footer.

If %NULL is supplied, the default font (i.e. the one being used for the
text) will be used instead.

@font_name should be a
string representation of a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1442">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="font_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1443">the name of the font for the footer text, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_footer_format"
              c:identifier="gtk_source_print_compositor_set_footer_format">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1168">See [method@PrintCompositor.set_header_format] for more information
about the parameters.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1170">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="separator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1171">%TRUE if you want a separator line to be printed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="left"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1172">a format string to print on the left of the footer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="center"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1173">a format string to print on the center of the footer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="right"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1174">a format string to print on the right of the footer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_font_name"
              c:identifier="gtk_source_print_compositor_set_header_font_name"
              glib:set-property="header-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1375">Sets the font for printing the page header.

If %NULL is supplied, the default font (i.e. the one being used for the
text) will be used instead.

@font_name should be a
string representation of a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1377">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="font_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1378">the name of the font for header text, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_format"
              c:identifier="gtk_source_print_compositor_set_header_format">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1112">Sets strftime like header format strings, to be printed on the
left, center and right of the top of each page.

The strings may include strftime(3) codes which will be expanded at print time.
A subset of strftime() codes are accepted, see [method@GLib.DateTime.format]
for more details on the accepted format specifiers.
Additionally the following format specifiers are accepted:

- #N: the page number
- #Q: the page count.

@separator specifies if a solid line should be drawn to separate
the header from the document text.

If %NULL is given for any of the three arguments, that particular
string will not be printed.

For the header to be printed, in
addition to specifying format strings, you need to enable header
printing with [method@PrintCompositor.set_print_header].

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1114">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="separator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1115">%TRUE if you want a separator line to be printed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="left"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1116">a format string to print on the left of the header.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="center"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1117">a format string to print on the center of the header.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="right"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1118">a format string to print on the right of the header.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_syntax"
              c:identifier="gtk_source_print_compositor_set_highlight_syntax"
              glib:set-property="highlight-syntax">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="909">Sets whether the printed text will be highlighted according to the
buffer rules.  Both color and font style are applied.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="911">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="912">whether syntax should be highlighted.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_left_margin"
              c:identifier="gtk_source_print_compositor_set_left_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1585">Sets the left margin used by @compositor.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1587">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1588">the new left margin in units of @unit.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1589">the units for @margin.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line_numbers_font_name"
              c:identifier="gtk_source_print_compositor_set_line_numbers_font_name"
              glib:set-property="line-numbers-font-name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1311">Sets the font for printing line numbers on the left margin.

If %NULL is supplied, the default font (i.e. the one being used for the
text) will be used instead.

@font_name should be a
string representation of a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1313">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="font_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1314">the name of the font for line numbers, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_print_footer"
              c:identifier="gtk_source_print_compositor_set_print_footer"
              glib:set-property="print-footer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1053">Sets whether you want to print a footer in each page.

The footer consists of three pieces of text and an optional line
separator, configurable with
[method@PrintCompositor.set_footer_format].

Note that by default the footer format is unspecified, and if it's
empty it will not be printed, regardless of this setting.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1055">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1056">%TRUE if you want the footer to be printed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_print_header"
              c:identifier="gtk_source_print_compositor_set_print_header"
              glib:set-property="print-header">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="995">Sets whether you want to print a header in each page.

The header consists of three pieces of text and an optional line
separator, configurable with [method@PrintCompositor.set_header_format].

Note that by default the header format is unspecified, and if it's
empty it will not be printed, regardless of this setting.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="997">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="print" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="998">%TRUE if you want the header to be printed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_print_line_numbers"
              c:identifier="gtk_source_print_compositor_set_print_line_numbers"
              glib:set-property="print-line-numbers">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="961">Sets the interval for printed line numbers.

If @interval is 0 no numbers will be printed. If greater than 0, a number will be
printed every @interval lines (i.e. 1 will print all line numbers).

Maximum accepted value for @interval is 100.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="963">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="interval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="964">interval for printed line numbers.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_right_margin"
              c:identifier="gtk_source_print_compositor_set_right_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1625">Sets the right margin used by @compositor.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1627">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1628">the new right margin in units of @unit.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1629">the units for @margin.</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tab_width"
              c:identifier="gtk_source_print_compositor_set_tab_width"
              glib:set-property="tab-width">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="816">Sets the width of tabulation in characters for printed text.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="818">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="819">width of tab in characters.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_top_margin"
              c:identifier="gtk_source_print_compositor_set_top_margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="1505">Sets the top margin used by @compositor.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1507">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1508">the new top margin in units of @unit</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="1509">the units for @margin</doc>
            <type name="Gtk.Unit" c:type="GtkUnit"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap_mode"
              c:identifier="gtk_source_print_compositor_set_wrap_mode"
              glib:set-property="wrap-mode">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="863">Sets the line wrapping mode for the printed text.

This function cannot be called anymore after the first call to the
[method@PrintCompositor.paginate] function.</doc>
        <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="865">a #GtkSourcePrintCompositor.</doc>
            <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
          </instance-parameter>
          <parameter name="wrap_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceprintcompositor.c"
                 line="866">a #GtkWrapMode.</doc>
            <type name="Gtk.WrapMode" c:type="GtkWrapMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="body-font-name"
                writable="1"
                transfer-ownership="none"
                setter="set_body_font_name"
                getter="get_body_font_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="564">Name of the font used for the text body.

Accepted values are strings representing a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="432">The [class@Buffer] object to print.</doc>
        <type name="Buffer"/>
      </property>
      <property name="footer-font-name"
                writable="1"
                transfer-ownership="none"
                setter="set_footer_font_name"
                getter="get_footer_font_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="629">Name of the font used to print page footer.
If this property is unspecified, the text body font is used.

Accepted values are strings representing a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="header-font-name"
                writable="1"
                transfer-ownership="none"
                setter="set_header_font_name"
                getter="get_header_font_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="607">Name of the font used to print page header.
If this property is unspecified, the text body font is used.

Accepted values are strings representing a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="highlight-syntax"
                writable="1"
                transfer-ownership="none"
                setter="set_highlight_syntax"
                getter="get_highlight_syntax"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="484">Whether to print the document with highlighted syntax.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="line-numbers-font-name"
                writable="1"
                transfer-ownership="none"
                setter="set_line_numbers_font_name"
                getter="get_line_numbers_font_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="585">Name of the font used to print line numbers on the left margin.
If this property is unspecified, the text body font is used.

Accepted values are strings representing a font description Pango can understand.
(e.g. &amp;quot;Monospace 10&amp;quot;). See [func@Pango.FontDescription.from_string]
for a description of the format of the string representation.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="n-pages"
                transfer-ownership="none"
                getter="get_n_pages"
                default-value="-1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="651">The number of pages in the document or &lt;code&gt;-1&lt;/code&gt; if the
document has not been completely paginated.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="print-footer"
                writable="1"
                transfer-ownership="none"
                setter="set_print_footer"
                getter="get_print_footer"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="543">Whether to print a footer in each page.

Note that by default the footer format is unspecified, and if it is
unspecified the footer will not be printed, regardless of the value of
this property.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="print-header"
                writable="1"
                transfer-ownership="none"
                setter="set_print_header"
                getter="get_print_header"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="522">Whether to print a header in each page.

Note that by default the header format is unspecified, and if it is
unspecified the header will not be printed, regardless of the value of
this property.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="print-line-numbers"
                writable="1"
                transfer-ownership="none"
                setter="set_print_line_numbers"
                getter="get_print_line_numbers"
                default-value="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="501">Interval of printed line numbers.

If this property is set to 0 no numbers will be printed.
If greater than 0, a number will be printed every "print-line-numbers"
lines (i.e. 1 will print all line numbers).

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="tab-width"
                writable="1"
                transfer-ownership="none"
                setter="set_tab_width"
                getter="get_tab_width"
                default-value="8">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="446">Width of a tab character expressed in spaces.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="wrap-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_wrap_mode"
                getter="get_wrap_mode"
                default-value="GTK_WRAP_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceprintcompositor.c"
             line="466">Whether to wrap lines never, at word boundaries, or at character boundaries.

The value of this property cannot be changed anymore after the first
call to the [method@PrintCompositor.paginate] function.</doc>
        <type name="Gtk.WrapMode"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="PrintCompositorClass"
            c:type="GtkSourcePrintCompositorClass"
            glib:is-gtype-struct-for="PrintCompositor">
      <source-position filename="gtksourceview/gtksourceprintcompositor.h"
                       line="44"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="Region"
           c:symbol-prefix="region"
           c:type="GtkSourceRegion"
           parent="GObject.Object"
           glib:type-name="GtkSourceRegion"
           glib:get-type="gtk_source_region_get_type"
           glib:type-struct="RegionClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceregion.c"
           line="25">Region utility.

A `GtkSourceRegion` permits to store a group of subregions of a
[class@Gtk.TextBuffer]. `GtkSourceRegion` stores the subregions with pairs of
[class@Gtk.TextMark]'s, so the region is still valid after insertions and deletions
in the [class@Gtk.TextBuffer].

The [class@Gtk.TextMark] for the start of a subregion has a left gravity, while the
[class@Gtk.TextMark] for the end of a subregion has a right gravity.

The typical use-case of `GtkSourceRegion` is to scan a [class@Gtk.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 [signal@Gtk.TextBuffer::insert-text] and
[signal@Gtk.TextBuffer::delete-range] signals to update the `GtkSourceRegion`
accordingly.

To iterate through the subregions, you need to use a [struct@RegionIter],
for example:
```c
GtkSourceRegion *region;
GtkSourceRegionIter region_iter;

gtk_source_region_get_start_region_iter (region, &amp;region_iter);

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

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

        // Do something useful with the subregion.

        gtk_source_region_iter_next (&amp;region_iter);
}
```
```python
buffer: GtkSource.Buffer = GtkSource.Buffer()
region: GtkSource.Region = GtkSource.Region(buffer=buffer)
region_iter = region.get_start_region_iter()

while not region_iter.is_end():
    success, start, end = region_iter.get_subregion()
    if not success:
        break

    # Do something useful with the subregion

    region_iter.next()
```</doc>
      <source-position filename="gtksourceview/gtksourceregion.h" line="44"/>
      <constructor name="new" c:identifier="gtk_source_region_new">
        <source-position filename="gtksourceview/gtksourceregion.h" line="63"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="339">a new #GtkSourceRegion object for @buffer.</doc>
          <type name="Region" c:type="GtkSourceRegion*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="337">a #GtkTextBuffer.</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_region" c:identifier="gtk_source_region_add_region">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="530">Adds @region_to_add to @region.

@region_to_add is not modified.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="532">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="region_to_add"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="533">the #GtkSourceRegion to add to @region, or %NULL.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_subregion"
              c:identifier="gtk_source_region_add_subregion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="408">Adds the subregion delimited by @_start and @_end to @region.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="410">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="_start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="411">the start of the subregion.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="_end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="412">the end of the subregion.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bounds" c:identifier="gtk_source_region_get_bounds">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="863">Gets the @start and @end bounds of the @region.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="873">%TRUE if @start and @end have been set successfully (if non-%NULL),
  or %FALSE if the @region is empty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="865">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="866">iterator to initialize with the start of @region,
  or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="868">iterator to initialize with the end of @region,
  or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_region_get_buffer"
              glib:get-property="buffer">
        <source-position filename="gtksourceview/gtksourceregion.h" line="65"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="355">the #GtkTextBuffer.</doc>
          <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="353">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_start_region_iter"
              c:identifier="gtk_source_region_get_start_region_iter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="1190">Initializes a [struct@RegionIter] to the first subregion of @region.

If @region is empty, @iter will be initialized to the end iterator.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1192">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1193">iterator to initialize to the first subregion.</doc>
            <type name="RegionIter" c:type="GtkSourceRegionIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect_region"
              c:identifier="gtk_source_region_intersect_region">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="1084">Returns the intersection between @region1 and @region2.

@region1 and @region2 are not modified.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="85"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="1093">the intersection as a #GtkSourceRegion
  object.</doc>
          <type name="Region" c:type="GtkSourceRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region1"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1086">a #GtkSourceRegion, or %NULL.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="region2"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1087">a #GtkSourceRegion, or %NULL.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect_subregion"
              c:identifier="gtk_source_region_intersect_subregion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="910">Returns the intersection between @region and the subregion delimited by
@_start and @_end.

@region is not modified.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="81"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="921">the intersection as a new
  #GtkSourceRegion.</doc>
          <type name="Region" c:type="GtkSourceRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="912">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="_start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="913">the start of the subregion.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="_end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="914">the end of the subregion.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_empty" c:identifier="gtk_source_region_is_empty">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="810">Returns whether the @region is empty.

A %NULL @region is considered empty.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="818">whether the @region is empty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="region"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="812">a #GtkSourceRegion, or %NULL.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="subtract_region"
              c:identifier="gtk_source_region_subtract_region">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="758">Subtracts @region_to_subtract from @region.

@region_to_subtract is not modified.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="760">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="region_to_subtract"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="761">the #GtkSourceRegion to subtract from
  @region, or %NULL.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subtract_subregion"
              c:identifier="gtk_source_region_subtract_subregion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="586">Subtracts the subregion delimited by @_start and @_end from @region.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="588">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
          <parameter name="_start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="589">the start of the subregion.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="_end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="590">the end of the subregion.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="gtk_source_region_to_string">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="1319">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.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h"
                         line="105"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="1328">a string represention of @region. Free
  with g_free() when no longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1321">a #GtkSourceRegion.</doc>
            <type name="Region" c:type="GtkSourceRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="312">The [class@Gtk.TextBuffer]. The #GtkSourceRegion has a weak reference to the
buffer.</doc>
        <type name="Gtk.TextBuffer"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="RegionClass"
            c:type="GtkSourceRegionClass"
            glib:is-gtype-struct-for="Region">
      <source-position filename="gtksourceview/gtksourceregion.h" line="44"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RegionIter" c:type="GtkSourceRegionIter">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceregion.h"
           line="46">An opaque datatype.

Ignore all its fields and initialize the iter with [method@Region.get_start_region_iter].</doc>
      <source-position filename="gtksourceview/gtksourceregion.h" line="60"/>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="get_subregion"
              c:identifier="gtk_source_region_iter_get_subregion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="1266">Gets the subregion at this iterator.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="1274">%TRUE if @start and @end have been set successfully (if non-%NULL),
  or %FALSE if @iter is the end iterator or if the region is empty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1268">a #GtkSourceRegionIter.</doc>
            <type name="RegionIter" c:type="GtkSourceRegionIter*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1269">iterator to initialize with the subregion start, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1270">iterator to initialize with the subregion end, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_end" c:identifier="gtk_source_region_iter_is_end">
        <source-position filename="gtksourceview/gtksourceregion.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="1223">whether @iter is the end iterator.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1221">a #GtkSourceRegionIter.</doc>
            <type name="RegionIter" c:type="GtkSourceRegionIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="gtk_source_region_iter_next">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceregion.c"
             line="1238">Moves @iter to the next subregion.</doc>
        <source-position filename="gtksourceview/gtksourceregion.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceregion.c"
               line="1244">%TRUE if @iter moved and is dereferenceable, or %FALSE if @iter has
  been set to the end iterator.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceregion.c"
                 line="1240">a #GtkSourceRegionIter.</doc>
            <type name="RegionIter" c:type="GtkSourceRegionIter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="SchedulerCallback"
              c:type="GtkSourceSchedulerCallback"
              version="5.2">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcescheduler.h"
           line="34">This function is called incrementally to process additional background work.
A deadline is provided which can be checked using [func@GLib.get_monotonic_time] so
that additional work can be processed each frame.

This is useful for situations where you are incrementally performing
background work such as spell checking or semantic syntax highlighting.</doc>
      <source-position filename="gtksourceview/gtksourcescheduler.h"
                       line="51"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcescheduler.h"
             line="46">%TRUE if there is more work to process, otherwise %FALSE and the
  handler is unregistered.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="deadline" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.h"
               line="36">the time the callback should complete by</doc>
          <type name="gint64" c:type="gint64"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.h"
               line="37">closure data provided when registering callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="SearchContext"
           c:symbol-prefix="search_context"
           c:type="GtkSourceSearchContext"
           parent="GObject.Object"
           glib:type-name="GtkSourceSearchContext"
           glib:get-type="gtk_source_search_context_get_type"
           glib:type-struct="SearchContextClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcesearchcontext.c"
           line="38">Search context.

A `GtkSourceSearchContext` is used for the search and replace in a
[class@Buffer]. The search settings are represented by a
[class@SearchSettings] object. There can be a many-to-many relationship
between buffers and search settings, with the search contexts in-between: a
search settings object can be shared between several search contexts; and a
buffer can contain several search contexts at the same time.

The total number of search occurrences can be retrieved with
[method@SearchContext.get_occurrences_count]. To know the position of a
certain match, use [method@SearchContext.get_occurrence_position].

The buffer is scanned asynchronously, so it doesn't block the user interface.
For each search, the buffer is scanned at most once. After that, navigating
through the occurrences doesn't require to re-scan the buffer entirely.

To search forward, use [method@SearchContext.forward] or
[method@SearchContext.forward_async] for the asynchronous version.
The backward search is done similarly. To replace a search match, or all
matches, use [method@SearchContext.replace] and
[method@SearchContext.replace_all].

The search occurrences are highlighted by default. To disable it, use
[method@SearchContext.set_highlight]. You can enable the search
highlighting for several `GtkSourceSearchContext`s attached to the
same buffer. Moreover, each of those `GtkSourceSearchContext`s can
have a different text style associated. Use
[method@SearchContext.set_match_style] to specify the [class@Style]
to apply on search matches.

Note that the [property@SearchContext:highlight] and
[property@SearchContext:match-style] properties are in the
`GtkSourceSearchContext` class, not [class@SearchSettings]. Appearance
settings should be tied to one, and only one buffer, as different buffers can
have different style scheme associated (a [class@SearchSettings] object
can be bound indirectly to several buffers).

The concept of "current match" doesn't exist yet. A way to highlight
differently the current match is to select it.

A search occurrence's position doesn't depend on the cursor position or other
parameters. Take for instance the buffer "aaaa" with the search text "aa".
The two occurrences are at positions [0:2] and [2:4]. If you begin to search
at position 1, you will get the occurrence [2:4], not [1:3]. This is a
prerequisite for regular expression searches. The pattern ".*" matches the
entire line. If the cursor is at the middle of the line, you don't want the
rest of the line as the occurrence, you want an entire line. (As a side note,
regular expression searches can also match multiple lines.)

In the GtkSourceView source code, there is an example of how to use the
search and replace API: see the tests/test-search.c file. It is a mini
application for the search and replace, with a basic user interface.</doc>
      <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                       line="35"/>
      <constructor name="new" c:identifier="gtk_source_search_context_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2885">Creates a new search context, associated with @buffer, and customized with
@settings.

If @settings is %NULL, a new [class@SearchSettings] object will
be created, that you can retrieve with [method@SearchContext.get_settings].</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="2896">a new search context.</doc>
          <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2887">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
          <parameter name="settings"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2888">a #GtkSourceSearchSettings, or %NULL.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="backward"
              c:identifier="gtk_source_search_context_backward"
              glib:async-func="backward_async">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3373">Synchronous backward search.

It is recommended to use the asynchronous functions instead, to not block the user interface.
However, if you are sure that the @buffer is small, this function is more convenient to use.

If the [property@SearchSettings:wrap-around] property is %FALSE, this function
doesn't try to wrap around.

The @has_wrapped_around out parameter is set independently of whether a match
is found. So if this function returns %FALSE, @has_wrapped_around will have
the same value as the [property@SearchSettings:wrap-around] property.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3394">whether a match was found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3375">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3376">start of search.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="match_start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3377">return location for start of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3378">return location for end of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="has_wrapped_around"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3379">return location to know whether the
  search has wrapped around, or %NULL.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_async"
              c:identifier="gtk_source_search_context_backward_async"
              glib:finish-func="backward_finish"
              glib:sync-func="backward">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3449">The asynchronous version of [method@SearchContext.backward].

See the [iface@Gio.AsyncResult] documentation to know how to use this function.

If the operation is cancelled, the @callback will only be called if
@cancellable was not %NULL. The method takes
ownership of @cancellable, so you can unref it after calling this function.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3451">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3452">start of search.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3453">a #GCancellable, or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3454">a #GAsyncReadyCallback to call when the operation is finished.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3455">the data to pass to the @callback function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_finish"
              c:identifier="gtk_source_search_context_backward_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3486">Finishes a backward search started with
[method@SearchContext.backward_async].

See the documentation of [method@SearchContext.backward] for more
details.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3502">whether a match was found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3488">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3489">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="match_start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3490">return location for start of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3491">return location for end of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="has_wrapped_around"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3492">return location to know whether the
  search has wrapped around, or %NULL.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward"
              c:identifier="gtk_source_search_context_forward"
              glib:async-func="forward_async">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3184">Synchronous forward search.

It is recommended to use the asynchronous functions instead, to not block the user interface.
However, if you are sure that the @buffer is small, this function is more convenient to use.

If the [property@SearchSettings:wrap-around] property is %FALSE, this function
doesn't try to wrap around.

The @has_wrapped_around out parameter is set independently of whether a match
is found. So if this function returns %FALSE, @has_wrapped_around will have
the same value as the  [property@SearchSettings:wrap-around] property.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3205">whether a match was found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3186">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3187">start of search.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="match_start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3188">return location for start of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3189">return location for end of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="has_wrapped_around"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3190">return location to know whether the
  search has wrapped around, or %NULL.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_async"
              c:identifier="gtk_source_search_context_forward_async"
              glib:finish-func="forward_finish"
              glib:sync-func="forward">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3259">The asynchronous version of [method@SearchContext.forward].

See the [iface@Gio.AsyncResult] documentation to know how to use this function.

If the operation is cancelled, the @callback will only be called if
@cancellable was not %NULL. The method takes
ownership of @cancellable, so you can unref it after calling this function.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3261">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3262">start of search.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3263">a #GCancellable, or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3264">a #GAsyncReadyCallback to call when the operation is finished.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3265">the data to pass to the @callback function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_finish"
              c:identifier="gtk_source_search_context_forward_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3296">Finishes a forward search started with [method@SearchContext.forward_async].

See the documentation of [method@SearchContext.forward] for more
details.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3311">whether a match was found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3298">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3299">a #GAsyncResult.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="match_start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3300">return location for start of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3301">return location for end of match, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="has_wrapped_around"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3302">return location to know whether the
  search has wrapped around, or %NULL.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_source_search_context_get_buffer"
              glib:get-property="buffer">
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="2915">the associated buffer.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2913">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_highlight"
              c:identifier="gtk_source_search_context_get_highlight"
              glib:get-property="highlight">
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="2943">whether to highlight the search occurrences.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2941">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_match_style"
              c:identifier="gtk_source_search_context_get_match_style"
              glib:get-property="match-style">
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="2981">the #GtkSourceStyle to apply on search matches.</doc>
          <type name="Style" c:type="GtkSourceStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2979">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_occurrence_position"
              c:identifier="gtk_source_search_context_get_occurrence_position">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3080">Gets the position of a search occurrence.

If the buffer is not already fully scanned, the position may be unknown,
and -1 is returned. If 0 is returned, it means that this part of the buffer
has already been scanned, and that @match_start and @match_end don't delimit an occurrence.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3092">the position of the search occurrence. The first occurrence has the
position 1 (not 0). Returns 0 if @match_start and @match_end don't delimit
an occurrence. Returns -1 if the position is not yet known.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3082">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="match_start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3083">the start of the occurrence.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="match_end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3084">the end of the occurrence.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_occurrences_count"
              c:identifier="gtk_source_search_context_get_occurrences_count"
              glib:get-property="occurrences-count">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3056">Gets the total number of search occurrences.

If the buffer is not already fully scanned, the total number of occurrences is
unknown, and -1 is returned.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3065">the total number of search occurrences, or -1 if unknown.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3058">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_regex_error"
              c:identifier="gtk_source_search_context_get_regex_error"
              glib:get-property="regex-error">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3028">Regular expression patterns must follow certain rules. If
[property@SearchSettings:search-text] breaks a rule, the error can be
retrieved with this function.

The error domain is [error@GLib.RegexError].

Free the return value with [method@GLib.Error.free].</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="55"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3040">the #GError, or %NULL if the
  pattern is valid.</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3030">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settings"
              c:identifier="gtk_source_search_context_get_settings"
              glib:get-property="settings">
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="2929">the search settings.</doc>
          <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2927">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="replace"
              c:identifier="gtk_source_search_context_replace"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3617">Replaces a search match by another text. If @match_start and @match_end
doesn't correspond to a search match, %FALSE is returned.

@match_start and @match_end iters are revalidated to point to the replacement
text boundaries.

For a regular expression replacement, you can check if @replace is valid by
calling [func@GLib.Regex.check_replacement]. The @replace text can contain
backreferences.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3636">whether the match has been replaced.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3619">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="match_start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3620">the start of the match to replace.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3621">the end of the match to replace.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="replace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3622">the replacement text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="replace_length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3623">the length of @replace in bytes, or -1.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="replace_all"
              c:identifier="gtk_source_search_context_replace_all"
              throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="3700">Replaces all search matches by another text.

It is a synchronous function, so it can block the user interface.

For a regular expression replacement, you can check if @replace is valid by
calling [func@GLib.Regex.check_replacement]. The @replace text can contain
backreferences.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchcontext.c"
               line="3715">the number of replaced matches.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3702">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="replace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3703">the replacement text.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="replace_length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="3704">the length of @replace in bytes, or -1.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight"
              c:identifier="gtk_source_search_context_set_highlight"
              glib:set-property="highlight">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2953">Enables or disables the search occurrences highlighting.</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2955">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2956">the setting.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_match_style"
              c:identifier="gtk_source_search_context_set_match_style"
              glib:set-property="match-style">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2991">Set the style to apply on search matches.

If @match_style is %NULL, default theme's scheme 'match-style' will be used.
To enable or disable the search highlighting, use [method@SearchContext.set_highlight].</doc>
        <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2993">a #GtkSourceSearchContext.</doc>
            <type name="SearchContext" c:type="GtkSourceSearchContext*"/>
          </instance-parameter>
          <parameter name="match_style"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchcontext.c"
                 line="2994">a #GtkSourceStyle, or %NULL.</doc>
            <type name="Style" c:type="GtkSourceStyle*"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2785">The [class@Buffer] associated to the search context.</doc>
        <type name="Buffer"/>
      </property>
      <property name="highlight"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_highlight"
                getter="get_highlight"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2815">Highlight the search occurrences.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="match-style"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_match_style"
                getter="get_match_style">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2829">A [class@Style], or %NULL for theme's scheme default style.</doc>
        <type name="Style"/>
      </property>
      <property name="occurrences-count"
                transfer-ownership="none"
                getter="get_occurrences_count"
                default-value="0">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2843">The total number of search occurrences. If the search is disabled,
the value is 0. If the buffer is not already fully scanned, the value
is -1.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="regex-error"
                transfer-ownership="none"
                getter="get_regex_error">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2860">If the regex search pattern doesn't follow all the rules, this
#GError property will be set. If the pattern is valid, the value is
%NULL.

Free with [method@GLib.Error.free].</doc>
        <type name="GLib.Error"/>
      </property>
      <property name="settings"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_settings">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchcontext.c"
             line="2799">The [class@SearchSettings] associated to the search context.

This property is construct-only since version 4.0.</doc>
        <type name="SearchSettings"/>
      </property>
    </class>
    <record name="SearchContextClass"
            c:type="GtkSourceSearchContextClass"
            glib:is-gtype-struct-for="SearchContext">
      <source-position filename="gtksourceview/gtksourcesearchcontext.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SearchSettings"
           c:symbol-prefix="search_settings"
           c:type="GtkSourceSearchSettings"
           parent="GObject.Object"
           glib:type-name="GtkSourceSearchSettings"
           glib:get-type="gtk_source_search_settings_get_type"
           glib:type-struct="SearchSettingsClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcesearchsettings.c"
           line="24">Search settings.

A `GtkSourceSearchSettings` object represents the settings of a search. The
search settings can be associated with one or several
[class@SearchContext]s.</doc>
      <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                       line="43"/>
      <constructor name="new" c:identifier="gtk_source_search_settings_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="252">Creates a new search settings object.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="257">a new search settings object.</doc>
          <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
        </return-value>
      </constructor>
      <method name="get_at_word_boundaries"
              c:identifier="gtk_source_search_settings_get_at_word_boundaries"
              glib:get-property="at-word-boundaries">
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="403">whether to search at word boundaries.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="401">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_case_sensitive"
              c:identifier="gtk_source_search_settings_get_case_sensitive"
              glib:get-property="case-sensitive">
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="359">whether the search is case sensitive.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="357">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_regex_enabled"
              c:identifier="gtk_source_search_settings_get_regex_enabled"
              glib:get-property="regex-enabled">
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="494">whether to search by regular expressions.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="492">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_text"
              c:identifier="gtk_source_search_settings_get_search_text"
              glib:get-property="search-text">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="308">Gets the text to search.

The return value must not be freed.

You may be interested to call [func@utils_escape_search_text] after
this function.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="319">the text to search, or %NULL if the search is disabled.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="310">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_only"
              c:identifier="gtk_source_search_settings_get_visible_only"
              glib:get-property="visible-only"
              version="5.12">
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="539">whether to exclude invisible text from the search.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="537">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wrap_around"
              c:identifier="gtk_source_search_settings_get_wrap_around"
              glib:get-property="wrap-around">
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesearchsettings.c"
               line="447">whether to wrap around the search.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="445">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_at_word_boundaries"
              c:identifier="gtk_source_search_settings_set_at_word_boundaries"
              glib:set-property="at-word-boundaries">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="371">Change whether the search is done at word boundaries.

If @at_word_boundaries is %TRUE, a search match must start and end a word.
The match can span multiple words. See also [method@Gtk.TextIter.starts_word] and
[method@Gtk.TextIter.ends_word].</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="373">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
          <parameter name="at_word_boundaries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="374">the setting.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_case_sensitive"
              c:identifier="gtk_source_search_settings_set_case_sensitive"
              glib:set-property="case-sensitive">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="331">Enables or disables the case sensitivity for the search.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="333">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
          <parameter name="case_sensitive" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="334">the setting.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_regex_enabled"
              c:identifier="gtk_source_search_settings_set_regex_enabled"
              glib:set-property="regex-enabled">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="459">Enables or disables whether to search by regular expressions.

If enabled, the [property@SearchSettings:search-text] property contains the
pattern of the regular expression.

[class@SearchContext] uses #GRegex when regex search is enabled. See the
[Regular expression syntax](https://developer.gnome.org/glib/stable/glib-regex-syntax.html)
page in the GLib reference manual.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="461">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
          <parameter name="regex_enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="462">the setting.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_text"
              c:identifier="gtk_source_search_settings_set_search_text"
              glib:set-property="search-text">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="265">Sets the text to search.

If @search_text is %NULL or is empty, the search will be disabled. A copy of @search_text
will be made, so you can safely free @search_text after a call to this function.

You may be interested to call [func@utils_unescape_search_text] before
this function.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="267">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
          <parameter name="search_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="268">the nul-terminated text to search, or %NULL to disable the search.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_only"
              c:identifier="gtk_source_search_settings_set_visible_only"
              glib:set-property="visible-only"
              version="5.12">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="506">Enables or disables whether to exclude invisible text from the search.

If enabled, only visible text will be searched.
A search match may have invisible text interspersed.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="508">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
          <parameter name="visible_only" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="509">the setting.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap_around"
              c:identifier="gtk_source_search_settings_set_wrap_around"
              glib:set-property="wrap-around">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="415">Enables or disables the wrap around search.

If @wrap_around is %TRUE, the forward search continues at the beginning of the buffer
if no search occurrences are found. Similarly, the backward search continues to search at
the end of the buffer.</doc>
        <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="417">a #GtkSourceSearchSettings.</doc>
            <type name="SearchSettings" c:type="GtkSourceSearchSettings*"/>
          </instance-parameter>
          <parameter name="wrap_around" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesearchsettings.c"
                 line="418">the setting.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="at-word-boundaries"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_at_word_boundaries"
                getter="get_at_word_boundaries"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="189">If %TRUE, a search match must start and end a word. The match can
span multiple words.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="case-sensitive"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_case_sensitive"
                getter="get_case_sensitive"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="177">Whether the search is case sensitive.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="regex-enabled"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_regex_enabled"
                getter="get_regex_enabled"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="216">Search by regular expressions with
[property@SearchSettings:search-text] as the pattern.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="search-text"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_search_text"
                getter="get_search_text"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="162">A search string, or %NULL if the search is disabled.

If the regular expression search is enabled, [property@SearchSettings:search-text] is
the pattern.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="visible-only"
                version="5.12"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_visible_only"
                getter="get_visible_only"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="229">Exclude invisible text from the search.
A search match may have invisible text interspersed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="wrap-around"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_wrap_around"
                getter="get_wrap_around"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesearchsettings.c"
             line="202">For a forward search, continue at the beginning of the buffer if no
search occurrence is found. For a backward search, continue at the
end of the buffer.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="SearchSettingsClass"
            c:type="GtkSourceSearchSettingsClass"
            glib:is-gtype-struct-for="SearchSettings">
      <source-position filename="gtksourceview/gtksourcesearchsettings.h"
                       line="43"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="SmartHomeEndType"
                 glib:type-name="GtkSourceSmartHomeEndType"
                 glib:get-type="gtk_source_smart_home_end_type_get_type"
                 c:type="GtkSourceSmartHomeEndType">
      <member name="disabled"
              value="0"
              c:identifier="GTK_SOURCE_SMART_HOME_END_DISABLED"
              glib:nick="disabled"
              glib:name="GTK_SOURCE_SMART_HOME_END_DISABLED">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="51">smart-home-end disabled.</doc>
      </member>
      <member name="before"
              value="1"
              c:identifier="GTK_SOURCE_SMART_HOME_END_BEFORE"
              glib:nick="before"
              glib:name="GTK_SOURCE_SMART_HOME_END_BEFORE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="52">move to the first/last
non-whitespace character on the first press of the HOME/END keys and
to the beginning/end of the line on the second press.</doc>
      </member>
      <member name="after"
              value="2"
              c:identifier="GTK_SOURCE_SMART_HOME_END_AFTER"
              glib:nick="after"
              glib:name="GTK_SOURCE_SMART_HOME_END_AFTER">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="55">move to the beginning/end of the
line on the first press of the HOME/END keys and to the first/last
non-whitespace character on the second press.</doc>
      </member>
      <member name="always"
              value="3"
              c:identifier="GTK_SOURCE_SMART_HOME_END_ALWAYS"
              glib:nick="always"
              glib:name="GTK_SOURCE_SMART_HOME_END_ALWAYS">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="58">always move to the first/last
non-whitespace character when the HOME/END keys are pressed.</doc>
      </member>
    </enumeration>
    <class name="Snippet"
           c:symbol-prefix="snippet"
           c:type="GtkSourceSnippet"
           parent="GObject.Object"
           glib:type-name="GtkSourceSnippet"
           glib:get-type="gtk_source_snippet_get_type"
           glib:type-struct="SnippetClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcesnippet.c"
           line="31">Quick insertion code snippets.

The `GtkSourceSnippet` represents a series of chunks that can quickly be
inserted into the [class@View].

Snippets are defined in XML files which are loaded by the
[class@SnippetManager]. Alternatively, applications can create snippets
on demand and insert them into the [class@View] using
[method@View.push_snippet].

Snippet chunks can reference other snippet chunks as well as post-process
the values from other chunks such as capitalization.</doc>
      <source-position filename="gtksourceview/gtksourcesnippet.h" line="35"/>
      <constructor name="new" c:identifier="gtk_source_snippet_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="114">Creates a new #GtkSourceSnippet</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="121">A new #GtkSourceSnippet</doc>
          <type name="Snippet" c:type="GtkSourceSnippet*"/>
        </return-value>
        <parameters>
          <parameter name="trigger"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="116">the trigger word</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="language_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="117">the source language</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_parsed"
                   c:identifier="gtk_source_snippet_new_parsed"
                   version="5.6"
                   throws="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="1424">Parses the snippet formatted @text into a series of chunks and adds them
to a new #GtkSourceSnippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="1432">the newly parsed #GtkSourceSnippet, or %NULL upon
  failure and @error is set.</doc>
          <type name="Snippet" c:type="GtkSourceSnippet*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="1426">the formatted snippet text to parse</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_chunk" c:identifier="gtk_source_snippet_add_chunk">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="841">Appends @chunk to the @snippet.

This may only be called before the snippet has been expanded.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="843">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
          <parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="844">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gtk_source_snippet_copy">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="133">Does a deep copy of the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="139">A new #GtkSourceSnippet</doc>
          <type name="Snippet" c:type="GtkSourceSnippet*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="135">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context" c:identifier="gtk_source_snippet_get_context">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="1177">Gets the context used for expanding the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="76"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="1183">an #GtkSourceSnippetContext</doc>
          <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="1179">an #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gtk_source_snippet_get_description"
              glib:get-property="description">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="313">Gets the description for the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="315">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus_position"
              c:identifier="gtk_source_snippet_get_focus_position"
              glib:get-property="focus-position">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="165">Gets the current focus for the snippet.

This is changed as the user tabs through focus locations.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="173">The focus position, or -1 if unset.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="167">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language_id"
              c:identifier="gtk_source_snippet_get_language_id"
              glib:get-property="language-id">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="269">Gets the language-id used for the source snippet.

The language identifier should be one that matches a
source language [property@Language:id] property.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="278">the language identifier</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="271">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_chunks"
              c:identifier="gtk_source_snippet_get_n_chunks">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="183">Gets the number of chunks in the snippet.

Note that not all chunks are editable.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="191">The number of chunks.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="185">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gtk_source_snippet_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="349">Gets the name for the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="351">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_chunk"
              c:identifier="gtk_source_snippet_get_nth_chunk">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="201">Gets the chunk at @nth.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="208">an #GtkSourceSnippetChunk</doc>
          <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="203">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="204">the nth chunk to get</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_trigger"
              c:identifier="gtk_source_snippet_get_trigger"
              glib:get-property="trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="228">Gets the trigger for the source snippet.

A trigger is a word that can be expanded into the full snippet when
the user presses Tab.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippet.c"
               line="237">A string or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="230">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="gtk_source_snippet_set_description"
              glib:set-property="description">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="327">Sets the description for the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="329">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="330">the snippet description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_language_id"
              c:identifier="gtk_source_snippet_set_language_id"
              glib:set-property="language-id">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="288">Sets the language identifier for the snippet.

This should match the [property@Language:id] identifier.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="290">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
          <parameter name="language_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="291">the language identifier for the snippet</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gtk_source_snippet_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="363">Sets the name for the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="365">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="366">the snippet name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trigger"
              c:identifier="gtk_source_snippet_set_trigger"
              glib:set-property="trigger">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippet.c"
             line="247">Sets the trigger for the snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippet.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="249">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </instance-parameter>
          <parameter name="trigger" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippet.c"
                 line="250">the trigger word</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer" transfer-ownership="none">
        <type name="Gtk.TextBuffer"/>
      </property>
      <property name="description"
                writable="1"
                transfer-ownership="none"
                setter="set_description"
                getter="get_description"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="focus-position"
                transfer-ownership="none"
                getter="get_focus_position"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="language-id"
                writable="1"
                transfer-ownership="none"
                setter="set_language_id"
                getter="get_language_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="trigger"
                writable="1"
                transfer-ownership="none"
                setter="set_trigger"
                getter="get_trigger"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <class name="SnippetChunk"
           c:symbol-prefix="snippet_chunk"
           c:type="GtkSourceSnippetChunk"
           parent="GObject.InitiallyUnowned"
           glib:type-name="GtkSourceSnippetChunk"
           glib:get-type="gtk_source_snippet_chunk_get_type"
           glib:type-struct="SnippetChunkClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcesnippetchunk.c"
           line="25">A chunk of text within the source snippet.

The `GtkSourceSnippetChunk` represents a single chunk of text that
may or may not be an edit point within the snippet. Chunks that are
an edit point (also called a tab stop) have the
[property@SnippetChunk:focus-position] property set.</doc>
      <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                       line="35"/>
      <constructor name="new" c:identifier="gtk_source_snippet_chunk_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="51">Create a new `GtkSourceSnippetChunk` that can be added to
a [class@Snippet].</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="gtk_source_snippet_chunk_copy">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="63">Copies the source snippet.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetchunk.c"
               line="69">A #GtkSourceSnippetChunk</doc>
          <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="65">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context"
              c:identifier="gtk_source_snippet_chunk_get_context"
              glib:get-property="context">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="99">Gets the context for the snippet insertion.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetchunk.c"
               line="105">A #GtkSourceSnippetContext</doc>
          <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="101">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus_position"
              c:identifier="gtk_source_snippet_chunk_get_focus_position"
              glib:get-property="focus-position">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="192">Gets the [property@SnippetChunk:focus-position].

The focus-position is used to determine how many tabs it takes for the
snippet to advanced to this chunk.

A focus-position of zero will be the last focus position of the snippet
and snippet editing ends when it has been reached.

A focus-position of -1 means the chunk cannot be focused by the user.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetchunk.c"
               line="206">the focus-position</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="194">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_spec"
              c:identifier="gtk_source_snippet_chunk_get_spec"
              glib:get-property="spec">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="144">Gets the specification for the chunk.

The specification is evaluated for variables when other chunks are edited
within the snippet context. If the user has changed the text, the
[property@SnippetChunk:text] and [property@SnippetChunk:text-set] properties
are updated.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="47"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetchunk.c"
               line="155">the specification, if any</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="146">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="gtk_source_snippet_chunk_get_text"
              glib:get-property="text">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="247">Gets the [property@SnippetChunk:text] property.

The text property is updated when the user edits the text of the chunk.
If it has not been edited, the [property@SnippetChunk:spec] property is
returned.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetchunk.c"
               line="257">the text of the chunk</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="249">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_set"
              c:identifier="gtk_source_snippet_chunk_get_text_set"
              glib:get-property="text-set">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="293">Gets the [property@SnippetChunk:text-set] property.

This is typically set when the user has edited a snippet chunk.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="295">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_text"
              c:identifier="gtk_source_snippet_chunk_get_tooltip_text"
              glib:get-property="tooltip-text">
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_context"
              c:identifier="gtk_source_snippet_chunk_set_context"
              glib:set-property="context">
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_focus_position"
              c:identifier="gtk_source_snippet_chunk_set_focus_position"
              glib:set-property="focus-position">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="216">Sets the [property@SnippetChunk:focus-position] property.

The focus-position is used to determine how many tabs it takes for the
snippet to advanced to this chunk.

A focus-position of zero will be the last focus position of the snippet
and snippet editing ends when it has been reached.

A focus-position of -1 means the chunk cannot be focused by the user.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="218">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="focus_position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="219">the focus-position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_spec"
              c:identifier="gtk_source_snippet_chunk_set_spec"
              glib:set-property="spec">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="165">Sets the specification for the chunk.

The specification is evaluated for variables when other chunks are edited
within the snippet context. If the user has changed the text, the
[property@SnippetChunk:text and] [property@SnippetChunk:text-set] properties
are updated.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="167">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="168">the new specification for the chunk</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="gtk_source_snippet_chunk_set_text"
              glib:set-property="text">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="267">Sets the text for the snippet chunk.

This is usually used by the snippet engine to update the text, but may
be useful when creating custom snippets to avoid expansion of any
specification.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="269">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="270">the text of the property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text_set"
              c:identifier="gtk_source_snippet_chunk_set_text_set"
              glib:set-property="text-set">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetchunk.c"
             line="309">Sets the [property@SnippetChunk:text-set] property.

This is typically set when the user has edited a snippet chunk by the
snippet engine.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="311">a #GtkSourceSnippetChunk</doc>
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="text_set" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetchunk.c"
                 line="312">the property value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_text"
              c:identifier="gtk_source_snippet_chunk_set_tooltip_text"
              glib:set-property="tooltip-text">
        <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SnippetChunk" c:type="GtkSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                writable="1"
                transfer-ownership="none"
                setter="set_context"
                getter="get_context">
        <type name="SnippetContext"/>
      </property>
      <property name="focus-position"
                writable="1"
                transfer-ownership="none"
                setter="set_focus_position"
                getter="get_focus_position"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="spec"
                writable="1"
                transfer-ownership="none"
                setter="set_spec"
                getter="get_spec"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="text"
                writable="1"
                transfer-ownership="none"
                setter="set_text"
                getter="get_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="text-set"
                writable="1"
                transfer-ownership="none"
                setter="set_text_set"
                getter="get_text_set"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="tooltip-text"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltip_text"
                getter="get_tooltip_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="SnippetChunkClass"
            c:type="GtkSourceSnippetChunkClass"
            glib:is-gtype-struct-for="SnippetChunk">
      <source-position filename="gtksourceview/gtksourcesnippetchunk.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
    </record>
    <record name="SnippetClass"
            c:type="GtkSourceSnippetClass"
            glib:is-gtype-struct-for="Snippet">
      <source-position filename="gtksourceview/gtksourcesnippet.h" line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SnippetContext"
           c:symbol-prefix="snippet_context"
           c:type="GtkSourceSnippetContext"
           parent="GObject.Object"
           glib:type-name="GtkSourceSnippetContext"
           glib:get-type="gtk_source_snippet_context_get_type"
           glib:type-struct="SnippetContextClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcesnippetcontext.c"
           line="28">Context for expanding [class@SnippetChunk].

This class is currently used primary as a hashtable. However, the longer
term goal is to have it hold onto a `GjsContext` as well as other languages
so that [class@SnippetChunk] can expand themselves by executing
script within the context.

The [class@Snippet] will build the context and then expand each of the
chunks during the insertion/edit phase.</doc>
      <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                       line="35"/>
      <constructor name="new" c:identifier="gtk_source_snippet_context_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetcontext.c"
             line="70">Creates a new #GtkSourceSnippetContext.

Generally, this isn't needed unless you are controlling the
expansion of snippets manually.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetcontext.c"
               line="78">a #GtkSourceSnippetContext</doc>
          <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
        </return-value>
      </constructor>
      <method name="clear_variables"
              c:identifier="gtk_source_snippet_context_clear_variables">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetcontext.c"
             line="86">Removes all variables from the context.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="88">a #GtkSourceSnippetContext</doc>
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="expand" c:identifier="gtk_source_snippet_context_expand">
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="53"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_variable"
              c:identifier="gtk_source_snippet_context_get_variable">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetcontext.c"
             line="146">Gets the current value for a variable named @key.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetcontext.c"
               line="153">the value for the variable, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="148">a #GtkSourceSnippetContext</doc>
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="149">the name of the variable</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_constant"
              c:identifier="gtk_source_snippet_context_set_constant">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetcontext.c"
             line="122">Sets a constatnt within the context.

This is similar to a variable set with [method@SnippetContext.set_variable]
but is expected to not change during use of the snippet.

Examples would be the date or users name.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="124">a #GtkSourceSnippetContext</doc>
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="125">the constant name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="126">the value of the constant</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line_prefix"
              c:identifier="gtk_source_snippet_context_set_line_prefix">
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="line_prefix" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tab_width"
              c:identifier="gtk_source_snippet_context_set_tab_width">
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="tab_width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_spaces"
              c:identifier="gtk_source_snippet_context_set_use_spaces">
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="use_spaces" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_variable"
              c:identifier="gtk_source_snippet_context_set_variable">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetcontext.c"
             line="100">Sets a variable within the context.

This variable may be overridden by future updates to the
context.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="102">a #GtkSourceSnippetContext</doc>
            <type name="SnippetContext" c:type="GtkSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="103">the variable name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetcontext.c"
                 line="104">the value for the variable</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="first">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetcontext.c"
             line="829">The signal is emitted when a change has been
discovered in one of the chunks of the snippet which has
caused a variable or other dynamic data within the context
to have changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SnippetContextClass"
            c:type="GtkSourceSnippetContextClass"
            glib:is-gtype-struct-for="SnippetContext">
      <source-position filename="gtksourceview/gtksourcesnippetcontext.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SnippetManager"
           c:symbol-prefix="snippet_manager"
           c:type="GtkSourceSnippetManager"
           parent="GObject.Object"
           glib:type-name="GtkSourceSnippetManager"
           glib:get-type="gtk_source_snippet_manager_get_type"
           glib:type-struct="SnippetManagerClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcesnippetmanager.c"
           line="27">Provides access to [class@Snippet].

`GtkSourceSnippetManager` is an object which processes snippet description
files and creates [class@Snippet] objects.

Use [func@SnippetManager.get_default] to retrieve the default
instance of `GtkSourceSnippetManager`.

Use [method@SnippetManager.get_snippet] to retrieve snippets for
a given snippets.</doc>
      <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                       line="35"/>
      <function name="get_default"
                c:identifier="gtk_source_snippet_manager_get_default">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="180">Returns the default #GtkSourceSnippetManager instance.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetmanager.c"
               line="185">a #GtkSourceSnippetManager which
  is owned by GtkSourceView library and must not be unref'd.</doc>
          <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
        </return-value>
      </function>
      <method name="get_search_path"
              c:identifier="gtk_source_snippet_manager_get_search_path"
              glib:get-property="search-path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="264">Gets the list directories where @self looks for snippet files.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetmanager.c"
               line="270">%NULL-terminated array
  containing a list of snippet files directories.
  The array is owned by @lm and must not be modified.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="266">a #GtkSourceSnippetManager.</doc>
            <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_snippet"
              c:identifier="gtk_source_snippet_manager_get_snippet">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="381">Queries the known snippets for the first matching @group, @language_id,
and/or @trigger.

If @group or @language_id are %NULL, they will be ignored.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetmanager.c"
               line="393">a #GtkSourceSnippet or %NULL if no
  matching snippet was found.</doc>
          <type name="Snippet" c:type="GtkSourceSnippet*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="383">a #GtkSourceSnippetManager</doc>
            <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
          </instance-parameter>
          <parameter name="group"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="384">a group name or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="language_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="385">a #GtkSourceLanguage:id or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="trigger" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="386">the trigger for the snippet</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_all"
              c:identifier="gtk_source_snippet_manager_list_all"
              version="5.6">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="409">Gets a [iface@Gio.ListModel] of all snippets.

This can be used to get an unfiltered list of all of the snippets
known to the snippet manager.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetmanager.c"
               line="418">a [iface@Gio.ListModel] of [class@GtkSource.Snippet]</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="411">a #GtkSourceSnippetManager</doc>
            <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_groups"
              c:identifier="gtk_source_snippet_manager_list_groups">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="327">List all the known groups within the snippet manager.

The result should be freed with g_free(), and the individual strings are
owned by @self and should never be freed by the caller.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="50"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetmanager.c"
               line="336">
  An array of strings which should be freed with g_free().</doc>
          <array c:type="const gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="329">a #GtkSourceSnippetManager</doc>
            <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_matching"
              c:identifier="gtk_source_snippet_manager_list_matching">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="349">Queries the known snippets for those matching @group, @language_id, and/or
@trigger_prefix.

If any of these are %NULL, they will be ignored when filtering the available snippets.

The [iface@Gio.ListModel] only contains information about the available snippets until
[method@Gio.ListModel.get_item] is called for a specific snippet. This helps reduce
the number of [class@GObject.Object]'s that are created at runtime to those needed by
the calling application.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="52"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcesnippetmanager.c"
               line="366">a #GListModel of #GtkSourceSnippet.</doc>
          <type name="Gio.ListModel" c:type="GListModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="351">a #GtkSourceSnippetManager</doc>
            <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
          </instance-parameter>
          <parameter name="group"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="352">a group name or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="language_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="353">a #GtkSourceLanguage:id or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="trigger_prefix"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="354">a prefix for a trigger to activate</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_path"
              c:identifier="gtk_source_snippet_manager_set_search_path"
              glib:set-property="search-path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="227">Sets the list of directories in which the `GtkSourceSnippetManager` looks for
snippet files.

If @dirs is %NULL, the search path is reset to default.

At the moment this function can be called only before the
snippet files are loaded for the first time. In practice
to set a custom search path for a `GtkSourceSnippetManager`,
you have to call this function right after creating it.</doc>
        <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="229">a #GtkSourceSnippetManager</doc>
            <type name="SnippetManager" c:type="GtkSourceSnippetManager*"/>
          </instance-parameter>
          <parameter name="dirs"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcesnippetmanager.c"
                 line="230">a %NULL-terminated array of
  strings or %NULL.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="search-path"
                writable="1"
                transfer-ownership="none"
                setter="set_search_path"
                getter="get_search_path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcesnippetmanager.c"
             line="158">Contains a list of directories to search for files containing snippets (*.snippets).</doc>
        <array>
          <type name="utf8"/>
        </array>
      </property>
    </class>
    <record name="SnippetManagerClass"
            c:type="GtkSourceSnippetManagerClass"
            glib:is-gtype-struct-for="SnippetManager">
      <source-position filename="gtksourceview/gtksourcesnippetmanager.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="SortFlags"
              glib:type-name="GtkSourceSortFlags"
              glib:get-type="gtk_source_sort_flags_get_type"
              c:type="GtkSourceSortFlags">
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_SORT_FLAGS_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_SORT_FLAGS_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="74">no flags specified</doc>
      </member>
      <member name="case_sensitive"
              value="1"
              c:identifier="GTK_SOURCE_SORT_FLAGS_CASE_SENSITIVE"
              glib:nick="case-sensitive"
              glib:name="GTK_SOURCE_SORT_FLAGS_CASE_SENSITIVE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="75">case sensitive sort</doc>
      </member>
      <member name="reverse_order"
              value="2"
              c:identifier="GTK_SOURCE_SORT_FLAGS_REVERSE_ORDER"
              glib:nick="reverse-order"
              glib:name="GTK_SOURCE_SORT_FLAGS_REVERSE_ORDER">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="76">sort in reverse order</doc>
      </member>
      <member name="remove_duplicates"
              value="4"
              c:identifier="GTK_SOURCE_SORT_FLAGS_REMOVE_DUPLICATES"
              glib:nick="remove-duplicates"
              glib:name="GTK_SOURCE_SORT_FLAGS_REMOVE_DUPLICATES">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="77">remove duplicates</doc>
      </member>
      <member name="filename"
              value="8"
              c:identifier="GTK_SOURCE_SORT_FLAGS_FILENAME"
              version="5.16"
              glib:nick="filename"
              glib:name="GTK_SOURCE_SORT_FLAGS_FILENAME">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcebuffer.h"
             line="80">improved sorting for filenames.

see [func@GLib.utf8_collate_key_for_filename]</doc>
      </member>
    </bitfield>
    <class name="SpaceDrawer"
           c:symbol-prefix="space_drawer"
           c:type="GtkSourceSpaceDrawer"
           parent="GObject.Object"
           glib:type-name="GtkSourceSpaceDrawer"
           glib:get-type="gtk_source_space_drawer_get_type"
           glib:type-struct="SpaceDrawerClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcespacedrawer.c"
           line="38">Represent white space characters with symbols.

#GtkSourceSpaceDrawer provides a way to visualize white spaces, by drawing
symbols.

Call [method@View.get_space_drawer] to get the `GtkSourceSpaceDrawer`
instance of a certain [class@View].

By default, no white spaces are drawn because the
[property@SpaceDrawer:enable-matrix] is %FALSE.

To draw white spaces, [method@SpaceDrawer.set_types_for_locations] can
be called to set the [property@SpaceDrawer:matrix] property (by default all
space types are enabled at all locations). Then call
[method@SpaceDrawer.set_enable_matrix].

For a finer-grained method, there is also the [class@Tag]'s
[property@Tag:draw-spaces] property.

# Example

To draw non-breaking spaces everywhere and draw all types of trailing spaces
except newlines:
```c
gtk_source_space_drawer_set_types_for_locations (space_drawer,
                                                 GTK_SOURCE_SPACE_LOCATION_ALL,
                                                 GTK_SOURCE_SPACE_TYPE_NBSP);

gtk_source_space_drawer_set_types_for_locations (space_drawer,
                                                 GTK_SOURCE_SPACE_LOCATION_TRAILING,
                                                 GTK_SOURCE_SPACE_TYPE_ALL &amp;
                                                 ~GTK_SOURCE_SPACE_TYPE_NEWLINE);

gtk_source_space_drawer_set_enable_matrix (space_drawer, TRUE);
```
```python
space_drawer.set_types_for_locations(
    locations=GtkSource.SpaceLocationFlags.ALL,
    types=GtkSource.SpaceTypeFlags.NBSP,
)

all_types_except_newline = GtkSource.SpaceTypeFlags(
    int(GtkSource.SpaceTypeFlags.ALL) &amp; ~int(GtkSource.SpaceTypeFlags.NEWLINE)
)
space_drawer.set_types_for_locations(
    locations=GtkSource.SpaceLocationFlags.TRAILING,
    types=all_types_except_newline,
)

space_drawer.set_enable_matrix(True)
```

# Use-case: draw unwanted white spaces

A possible use-case is to draw only unwanted white spaces. Examples:

- Draw all trailing spaces.
- If the indentation and alignment must be done with spaces, draw tabs.

And non-breaking spaces can always be drawn, everywhere, to distinguish them
from normal spaces.</doc>
      <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                       line="81"/>
      <constructor name="new" c:identifier="gtk_source_space_drawer_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="421">Creates a new #GtkSourceSpaceDrawer object.

Useful for storing space drawing settings independently of a [class@View].</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcespacedrawer.c"
               line="428">a new #GtkSourceSpaceDrawer.</doc>
          <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
        </return-value>
      </constructor>
      <method name="bind_matrix_setting"
              c:identifier="gtk_source_space_drawer_bind_matrix_setting">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="684">Binds the [property@SpaceDrawer:matrix] property to a [class@Gio.Settings] key.

The [class@Gio.Settings] key must be of the same type as the
[property@SpaceDrawer:matrix] property, that is, `"au"`.

The [method@Gio.Settings.bind] function cannot be used, because the default GIO
mapping functions don't support [struct@GLib.Variant] properties (maybe it will be
supported by a future GIO version, in which case this function can be
deprecated).</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="686">a #GtkSourceSpaceDrawer object.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="687">a #GSettings object.</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="688">the @settings key to bind.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="689">flags for the binding.</doc>
            <type name="Gio.SettingsBindFlags" c:type="GSettingsBindFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_enable_matrix"
              c:identifier="gtk_source_space_drawer_get_enable_matrix"
              glib:get-property="enable-matrix">
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcespacedrawer.c"
               line="635">whether the #GtkSourceSpaceDrawer:matrix property is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="633">a #GtkSourceSpaceDrawer.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_matrix"
              c:identifier="gtk_source_space_drawer_get_matrix"
              glib:get-property="matrix">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="504">Gets the value of the [property@SpaceDrawer:matrix] property, as a [struct@GLib.Variant].

An empty array can be returned in case the matrix is a zero matrix.

The [method@SpaceDrawer.get_types_for_locations] function may be more
convenient to use.</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcespacedrawer.c"
               line="515">the #GtkSourceSpaceDrawer:matrix value as a new floating #GVariant
  instance.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="506">a #GtkSourceSpaceDrawer.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_types_for_locations"
              c:identifier="gtk_source_space_drawer_get_types_for_locations">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="436">If only one location is specified, this function returns what kind of
white spaces are drawn at that location.

The value is retrieved from the [property@SpaceDrawer:matrix] property.

If several locations are specified, this function returns the logical AND for
those locations. Which means that if a certain kind of white space is present
in the return value, then that kind of white space is drawn at all the
specified @locations.</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcespacedrawer.c"
               line="451">a combination of #GtkSourceSpaceTypeFlags.</doc>
          <type name="SpaceTypeFlags" c:type="GtkSourceSpaceTypeFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="438">a #GtkSourceSpaceDrawer.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
          <parameter name="locations" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="439">one or several #GtkSourceSpaceLocationFlags.</doc>
            <type name="SpaceLocationFlags"
                  c:type="GtkSourceSpaceLocationFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enable_matrix"
              c:identifier="gtk_source_space_drawer_set_enable_matrix"
              glib:set-property="enable-matrix">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="645">Sets whether the [property@SpaceDrawer:matrix] property is enabled.</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="647">a #GtkSourceSpaceDrawer.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
          <parameter name="enable_matrix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="648">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_matrix"
              c:identifier="gtk_source_space_drawer_set_matrix"
              glib:set-property="matrix">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="548">Sets a new value to the [property@SpaceDrawer:matrix] property, as a [struct@GLib.Variant].

If @matrix is %NULL, then an empty array is set.

If @matrix is floating, it is consumed.

The [method@SpaceDrawer.set_types_for_locations] function may be more
convenient to use.</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="550">a #GtkSourceSpaceDrawer.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
          <parameter name="matrix"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="551">the new matrix value, or %NULL.</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_types_for_locations"
              c:identifier="gtk_source_space_drawer_set_types_for_locations">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="462">Modifies the [property@SpaceDrawer:matrix] property at the specified
@locations.</doc>
        <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                         line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="464">a #GtkSourceSpaceDrawer.</doc>
            <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
          </instance-parameter>
          <parameter name="locations" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="465">one or several #GtkSourceSpaceLocationFlags.</doc>
            <type name="SpaceLocationFlags"
                  c:type="GtkSourceSpaceLocationFlags"/>
          </parameter>
          <parameter name="types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcespacedrawer.c"
                 line="466">a combination of #GtkSourceSpaceTypeFlags.</doc>
            <type name="SpaceTypeFlags" c:type="GtkSourceSpaceTypeFlags"/>
          </parameter>
        </parameters>
      </method>
      <property name="enable-matrix"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_enable_matrix"
                getter="get_enable_matrix"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="371">Whether the [property@SpaceDrawer:matrix] property is enabled.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="matrix"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_matrix"
                getter="get_matrix">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.c"
             line="385">The property is a [struct@GLib.Variant] property to specify where and
what kind of white spaces to draw.

The [struct@GLib.Variant] is of type `"au"`, an array of unsigned integers. Each
integer is a combination of [flags@SpaceTypeFlags]. There is one
integer for each [flags@SpaceLocationFlags], in the same order as
they are defined in the enum (%GTK_SOURCE_SPACE_LOCATION_NONE and
%GTK_SOURCE_SPACE_LOCATION_ALL are not taken into account).

If the array is shorter than the number of locations, then the value
for the missing locations will be %GTK_SOURCE_SPACE_TYPE_NONE.

By default, %GTK_SOURCE_SPACE_TYPE_ALL is set for all locations.4</doc>
        <type name="GLib.Variant"/>
      </property>
    </class>
    <record name="SpaceDrawerClass"
            c:type="GtkSourceSpaceDrawerClass"
            glib:is-gtype-struct-for="SpaceDrawer">
      <source-position filename="gtksourceview/gtksourcespacedrawer.h"
                       line="81"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="SpaceLocationFlags"
              glib:type-name="GtkSourceSpaceLocationFlags"
              glib:get-type="gtk_source_space_location_flags_get_type"
              c:type="GtkSourceSpaceLocationFlags">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcespacedrawer.h"
           line="57">#GtkSourceSpaceLocationFlags contains flags for white space locations.

If a line contains only white spaces (no text), the white spaces match both
%GTK_SOURCE_SPACE_LOCATION_LEADING and %GTK_SOURCE_SPACE_LOCATION_TRAILING.</doc>
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_SPACE_LOCATION_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_SPACE_LOCATION_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="59">No flags.</doc>
      </member>
      <member name="leading"
              value="1"
              c:identifier="GTK_SOURCE_SPACE_LOCATION_LEADING"
              glib:nick="leading"
              glib:name="GTK_SOURCE_SPACE_LOCATION_LEADING">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="60">Leading white spaces on a line, i.e. the
  indentation.</doc>
      </member>
      <member name="inside_text"
              value="2"
              c:identifier="GTK_SOURCE_SPACE_LOCATION_INSIDE_TEXT"
              glib:nick="inside-text"
              glib:name="GTK_SOURCE_SPACE_LOCATION_INSIDE_TEXT">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="62">White spaces inside a line of text.</doc>
      </member>
      <member name="trailing"
              value="4"
              c:identifier="GTK_SOURCE_SPACE_LOCATION_TRAILING"
              glib:nick="trailing"
              glib:name="GTK_SOURCE_SPACE_LOCATION_TRAILING">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="63">Trailing white spaces on a line.</doc>
      </member>
      <member name="all"
              value="7"
              c:identifier="GTK_SOURCE_SPACE_LOCATION_ALL"
              glib:nick="all"
              glib:name="GTK_SOURCE_SPACE_LOCATION_ALL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="64">White spaces anywhere.</doc>
      </member>
    </bitfield>
    <bitfield name="SpaceTypeFlags"
              glib:type-name="GtkSourceSpaceTypeFlags"
              glib:get-type="gtk_source_space_type_flags_get_type"
              c:type="GtkSourceSpaceTypeFlags">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcespacedrawer.h"
           line="34">#GtkSourceSpaceTypeFlags contains flags for white space types.</doc>
      <member name="none"
              value="0"
              c:identifier="GTK_SOURCE_SPACE_TYPE_NONE"
              glib:nick="none"
              glib:name="GTK_SOURCE_SPACE_TYPE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="36">No flags.</doc>
      </member>
      <member name="space"
              value="1"
              c:identifier="GTK_SOURCE_SPACE_TYPE_SPACE"
              glib:nick="space"
              glib:name="GTK_SOURCE_SPACE_TYPE_SPACE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="37">Space character.</doc>
      </member>
      <member name="tab"
              value="2"
              c:identifier="GTK_SOURCE_SPACE_TYPE_TAB"
              glib:nick="tab"
              glib:name="GTK_SOURCE_SPACE_TYPE_TAB">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="38">Tab character.</doc>
      </member>
      <member name="newline"
              value="4"
              c:identifier="GTK_SOURCE_SPACE_TYPE_NEWLINE"
              glib:nick="newline"
              glib:name="GTK_SOURCE_SPACE_TYPE_NEWLINE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="39">Line break character. If the
  #GtkSourceBuffer:implicit-trailing-newline property is %TRUE,
  #GtkSourceSpaceDrawer also draws a line break at the end of the buffer.</doc>
      </member>
      <member name="nbsp"
              value="8"
              c:identifier="GTK_SOURCE_SPACE_TYPE_NBSP"
              glib:nick="nbsp"
              glib:name="GTK_SOURCE_SPACE_TYPE_NBSP">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="42">Non-breaking space character.</doc>
      </member>
      <member name="all"
              value="15"
              c:identifier="GTK_SOURCE_SPACE_TYPE_ALL"
              glib:nick="all"
              glib:name="GTK_SOURCE_SPACE_TYPE_ALL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcespacedrawer.h"
             line="43">All white spaces.</doc>
      </member>
    </bitfield>
    <class name="Style"
           c:symbol-prefix="style"
           c:type="GtkSourceStyle"
           parent="GObject.Object"
           glib:type-name="GtkSourceStyle"
           glib:get-type="gtk_source_style_get_type"
           glib:type-struct="StyleClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestyle.c"
           line="25">Represents a style.

The `GtkSourceStyle` structure is used to describe text attributes
which are set when given style is used.</doc>
      <source-position filename="gtksourceview/gtksourcestyle.h" line="35"/>
      <method name="apply" c:identifier="gtk_source_style_apply">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyle.c"
             line="547">This function modifies the [class@Gtk.TextTag] properties that are related to the
#GtkSourceStyle properties. Other [class@Gtk.TextTag] properties are left untouched.

If @style is non-%NULL, applies @style to @tag.

If @style is %NULL, the related *-set properties of [class@Gtk.TextTag] are set to
%FALSE.</doc>
        <source-position filename="gtksourceview/gtksourcestyle.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyle.c"
                 line="549">a #GtkSourceStyle to apply, or %NULL.</doc>
            <type name="Style" c:type="const GtkSourceStyle*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyle.c"
                 line="550">a #GtkTextTag to apply styles to.</doc>
            <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gtk_source_style_copy">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyle.c"
             line="513">Creates a copy of @style, that is a new #GtkSourceStyle instance which
has the same attributes set.</doc>
        <source-position filename="gtksourceview/gtksourcestyle.h" line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyle.c"
               line="520">copy of @style, call g_object_unref()
when you are done with it.</doc>
          <type name="Style" c:type="GtkSourceStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyle.c"
                 line="515">a #GtkSourceStyle structure to copy.</doc>
            <type name="Style" c:type="const GtkSourceStyle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="background"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="background-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="bold"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="bold-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="foreground"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="foreground-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="italic"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="italic-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="line-background"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="line-background-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pango-underline"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="PANGO_UNDERLINE_NONE">
        <type name="Pango.Underline"/>
      </property>
      <property name="scale"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="scale-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="strikethrough"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="strikethrough-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="underline-color"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="underline-color-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="underline-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="weight"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="PANGO_WEIGHT_NORMAL">
        <type name="Pango.Weight"/>
      </property>
      <property name="weight-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="StyleClass"
            c:type="GtkSourceStyleClass"
            glib:is-gtype-struct-for="Style">
      <source-position filename="gtksourceview/gtksourcestyle.h" line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="StyleScheme"
           c:symbol-prefix="style_scheme"
           c:type="GtkSourceStyleScheme"
           parent="GObject.Object"
           glib:type-name="GtkSourceStyleScheme"
           glib:get-type="gtk_source_style_scheme_get_type"
           glib:type-struct="StyleSchemeClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestylescheme.c"
           line="36">Controls the appearance of [class@View].

#GtkSourceStyleScheme contains all the text styles to be used in
[class@View] and [class@Buffer]. For instance, it contains text styles
for syntax highlighting, it may contain foreground and background color for
non-highlighted text, color for the line numbers, current line highlighting,
bracket matching, etc.

Style schemes are stored in XML files. The format of a scheme file is
documented in the [style scheme reference](./style-reference.html).

The two style schemes with IDs "classic" and "tango" follow more closely the
GTK theme (for example for the background color).</doc>
      <source-position filename="gtksourceview/gtksourcestylescheme.h"
                       line="35"/>
      <method name="get_authors"
              c:identifier="gtk_source_style_scheme_get_authors">
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="44"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="334">a
%NULL-terminated array containing the @scheme authors or %NULL if
no author is specified by the style scheme.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="332">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gtk_source_style_scheme_get_description"
              glib:get-property="description">
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="320">@scheme description (if defined), or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="318">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="gtk_source_style_scheme_get_filename"
              glib:get-property="filename">
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="46"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="355">@scheme file name if the scheme was created
parsing a style scheme file or %NULL in the other cases.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="353">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="gtk_source_style_scheme_get_id"
              glib:get-property="id">
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="290">@scheme id.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="288">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata"
              c:identifier="gtk_source_style_scheme_get_metadata"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestylescheme.c"
             line="1676">Gets a metadata property from the style scheme.</doc>
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="1683">value of property @name stored in
  the metadata of @scheme or %NULL if @scheme does not contain the
  specified metadata property.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="1678">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="1679">metadata property name.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gtk_source_style_scheme_get_name"
              glib:get-property="name">
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="305">@scheme name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="303">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style"
              c:identifier="gtk_source_style_scheme_get_style">
        <source-position filename="gtksourceview/gtksourcestylescheme.h"
                         line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestylescheme.c"
               line="524">style which corresponds to @style_id in
the @scheme, or %NULL when no style with this name found.  It is owned by
@scheme and may not be unref'ed.</doc>
          <type name="Style" c:type="GtkSourceStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="521">a #GtkSourceStyleScheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </instance-parameter>
          <parameter name="style_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestylescheme.c"
                 line="522">id of the style to retrieve.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="description"
                transfer-ownership="none"
                getter="get_description"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestylescheme.c"
             line="233">Style scheme description, a translatable string to present to the user.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="filename"
                transfer-ownership="none"
                getter="get_filename"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestylescheme.c"
             line="246">Style scheme filename or %NULL.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_id"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestylescheme.c"
             line="206">Style scheme id, a unique string used to identify the style scheme
in [class@StyleSchemeManager].</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                transfer-ownership="none"
                getter="get_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestylescheme.c"
             line="220">Style scheme name, a translatable string to present to the user.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <interface name="StyleSchemeChooser"
               c:symbol-prefix="style_scheme_chooser"
               c:type="GtkSourceStyleSchemeChooser"
               glib:type-name="GtkSourceStyleSchemeChooser"
               glib:get-type="gtk_source_style_scheme_chooser_get_type"
               glib:type-struct="StyleSchemeChooserInterface">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestyleschemechooser.c"
           line="25">Interface implemented by widgets for choosing style schemes.

`GtkSourceStyleSchemeChooser` is an interface that is implemented by widgets
for choosing style schemes.

In GtkSourceView, the main widgets that implement this interface are
[class@StyleSchemeChooserWidget] and [class@StyleSchemeChooserButton].</doc>
      <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                       line="49"/>
      <virtual-method name="get_style_scheme" invoker="get_style_scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooser.c"
             line="57">Gets the currently-selected scheme.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschemechooser.c"
               line="63">the currently-selected scheme.</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="59">a #GtkSourceStyleSchemeChooser</doc>
            <type name="StyleSchemeChooser"
                  c:type="GtkSourceStyleSchemeChooser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_style_scheme" invoker="set_style_scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooser.c"
             line="73">Sets the scheme.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="75">a #GtkSourceStyleSchemeChooser</doc>
            <type name="StyleSchemeChooser"
                  c:type="GtkSourceStyleSchemeChooser*"/>
          </instance-parameter>
          <parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="76">a #GtkSourceStyleScheme</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_style_scheme"
              c:identifier="gtk_source_style_scheme_chooser_get_style_scheme"
              glib:get-property="style-scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooser.c"
             line="57">Gets the currently-selected scheme.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschemechooser.c"
               line="63">the currently-selected scheme.</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="59">a #GtkSourceStyleSchemeChooser</doc>
            <type name="StyleSchemeChooser"
                  c:type="GtkSourceStyleSchemeChooser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_style_scheme"
              c:identifier="gtk_source_style_scheme_chooser_set_style_scheme"
              glib:set-property="style-scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooser.c"
             line="73">Sets the scheme.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chooser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="75">a #GtkSourceStyleSchemeChooser</doc>
            <type name="StyleSchemeChooser"
                  c:type="GtkSourceStyleSchemeChooser*"/>
          </instance-parameter>
          <parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="76">a #GtkSourceStyleScheme</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </parameter>
        </parameters>
      </method>
      <property name="style-scheme"
                writable="1"
                transfer-ownership="none"
                setter="set_style_scheme"
                getter="get_style_scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooser.c"
             line="42">Contains the currently selected style scheme.

The property can be set to change the current selection programmatically.</doc>
        <type name="StyleScheme"/>
      </property>
    </interface>
    <class name="StyleSchemeChooserButton"
           c:symbol-prefix="style_scheme_chooser_button"
           c:type="GtkSourceStyleSchemeChooserButton"
           parent="Gtk.Button"
           glib:type-name="GtkSourceStyleSchemeChooserButton"
           glib:get-type="gtk_source_style_scheme_chooser_button_get_type"
           glib:type-struct="StyleSchemeChooserButtonClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestyleschemechooserbutton.c"
           line="30">A button to launch a style scheme selection dialog.

The `GtkSourceStyleSchemeChooserButton` is a button which displays
the currently selected style scheme and allows to open a style scheme
selection dialog to change the style scheme.
It is suitable widget for selecting a style scheme in a preference dialog.

In `GtkSourceStyleSchemeChooserButton`, a [class@StyleSchemeChooserWidget]
is used to provide a dialog for selecting style schemes.</doc>
      <source-position filename="gtksourceview/gtksourcestyleschemechooserbutton.h"
                       line="41"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <implements name="StyleSchemeChooser"/>
      <constructor name="new"
                   c:identifier="gtk_source_style_scheme_chooser_button_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooserbutton.c"
             line="303">Creates a new #GtkSourceStyleSchemeChooserButton.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemechooserbutton.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschemechooserbutton.c"
               line="308">a new #GtkSourceStyleSchemeChooserButton.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Button" c:type="GtkButton"/>
      </field>
    </class>
    <record name="StyleSchemeChooserButtonClass"
            c:type="GtkSourceStyleSchemeChooserButtonClass"
            glib:is-gtype-struct-for="StyleSchemeChooserButton">
      <source-position filename="gtksourceview/gtksourcestyleschemechooserbutton.h"
                       line="41"/>
      <field name="parent">
        <type name="Gtk.ButtonClass" c:type="GtkButtonClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="StyleSchemeChooserInterface"
            c:type="GtkSourceStyleSchemeChooserInterface"
            glib:is-gtype-struct-for="StyleSchemeChooser">
      <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                       line="49"/>
      <field name="base_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_style_scheme">
        <callback name="get_style_scheme">
          <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                           line="42"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemechooser.c"
                 line="63">the currently-selected scheme.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </return-value>
          <parameters>
            <parameter name="chooser" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcestyleschemechooser.c"
                   line="59">a #GtkSourceStyleSchemeChooser</doc>
              <type name="StyleSchemeChooser"
                    c:type="GtkSourceStyleSchemeChooser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_style_scheme">
        <callback name="set_style_scheme">
          <source-position filename="gtksourceview/gtksourcestyleschemechooser.h"
                           line="44"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="chooser" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcestyleschemechooser.c"
                   line="75">a #GtkSourceStyleSchemeChooser</doc>
              <type name="StyleSchemeChooser"
                    c:type="GtkSourceStyleSchemeChooser*"/>
            </parameter>
            <parameter name="scheme" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourcestyleschemechooser.c"
                   line="76">a #GtkSourceStyleScheme</doc>
              <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="12">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="StyleSchemeChooserWidget"
           c:symbol-prefix="style_scheme_chooser_widget"
           c:type="GtkSourceStyleSchemeChooserWidget"
           parent="Gtk.Widget"
           glib:type-name="GtkSourceStyleSchemeChooserWidget"
           glib:get-type="gtk_source_style_scheme_chooser_widget_get_type"
           glib:type-struct="StyleSchemeChooserWidgetClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestyleschemechooserwidget.c"
           line="33">A widget for choosing style schemes.

The `GtkSourceStyleSchemeChooserWidget` widget lets the user select a
style scheme. By default, the chooser presents a predefined list
of style schemes.

To change the initially selected style scheme,
use [method@StyleSchemeChooser.set_style_scheme].
To get the selected style scheme
use [method@StyleSchemeChooser.get_style_scheme].</doc>
      <source-position filename="gtksourceview/gtksourcestyleschemechooserwidget.h"
                       line="40"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <implements name="StyleSchemeChooser"/>
      <constructor name="new"
                   c:identifier="gtk_source_style_scheme_chooser_widget_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemechooserwidget.c"
             line="251">Creates a new #GtkSourceStyleSchemeChooserWidget.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemechooserwidget.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschemechooserwidget.c"
               line="256">a new  #GtkSourceStyleSchemeChooserWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.Widget" c:type="GtkWidget"/>
      </field>
    </class>
    <record name="StyleSchemeChooserWidgetClass"
            c:type="GtkSourceStyleSchemeChooserWidgetClass"
            glib:is-gtype-struct-for="StyleSchemeChooserWidget">
      <source-position filename="gtksourceview/gtksourcestyleschemechooserwidget.h"
                       line="40"/>
      <field name="parent">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="StyleSchemeClass"
            c:type="GtkSourceStyleSchemeClass"
            glib:is-gtype-struct-for="StyleScheme">
      <source-position filename="gtksourceview/gtksourcestylescheme.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="StyleSchemeManager"
           c:symbol-prefix="style_scheme_manager"
           c:type="GtkSourceStyleSchemeManager"
           parent="GObject.Object"
           glib:type-name="GtkSourceStyleSchemeManager"
           glib:get-type="gtk_source_style_scheme_manager_get_type"
           glib:type-struct="StyleSchemeManagerClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestyleschememanager.c"
           line="29">Provides access to [class@StyleScheme]s.</doc>
      <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                       line="35"/>
      <constructor name="new"
                   c:identifier="gtk_source_style_scheme_manager_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="175">Creates a new style manager.

If you do not need more than one style manager
then use [func@StyleSchemeManager.get_default] instead.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="38"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschememanager.c"
               line="183">a new #GtkSourceStyleSchemeManager.</doc>
          <type name="StyleSchemeManager"
                c:type="GtkSourceStyleSchemeManager*"/>
        </return-value>
      </constructor>
      <function name="get_default"
                c:identifier="gtk_source_style_scheme_manager_get_default">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="191">Returns the default #GtkSourceStyleSchemeManager instance.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschememanager.c"
               line="196">a #GtkSourceStyleSchemeManager. Return value
is owned by GtkSourceView library and must not be unref'ed.</doc>
          <type name="StyleSchemeManager"
                c:type="GtkSourceStyleSchemeManager*"/>
        </return-value>
      </function>
      <method name="append_search_path"
              c:identifier="gtk_source_style_scheme_manager_append_search_path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="443">Appends @path to the list of directories where the @manager looks for
style scheme files.

See [method@StyleSchemeManager.set_search_path] for details.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="445">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="446">a directory or a filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="force_rescan"
              c:identifier="gtk_source_style_scheme_manager_force_rescan">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="539">Mark any currently cached information about the available style schems
as invalid.

All the available style schemes will be reloaded next time the @manager is accessed.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="541">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scheme"
              c:identifier="gtk_source_style_scheme_manager_get_scheme">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="580">Looks up style scheme by id.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="57"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschememanager.c"
               line="587">a #GtkSourceStyleScheme object.
  The returned value is owned by @manager and must not be unref'ed.</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="582">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
          <parameter name="scheme_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="583">style scheme id to find.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_scheme_ids"
              c:identifier="gtk_source_style_scheme_manager_get_scheme_ids"
              glib:get-property="scheme-ids">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="558">Returns the ids of the available style schemes.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschememanager.c"
               line="564">
a %NULL-terminated array of strings containing the ids of the available
style schemes or %NULL if no style scheme is available.
The array is sorted alphabetically according to the scheme name.
The array is owned by the @manager and must not be modified.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="560">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_path"
              c:identifier="gtk_source_style_scheme_manager_get_search_path"
              glib:get-property="search-path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="516">Returns the current search path for the @manager.

See [method@StyleSchemeManager.set_search_path] for details.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschememanager.c"
               line="524">a %NULL-terminated array
of string containing the search path.
The array is owned by the @manager and must not be modified.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="518">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend_search_path"
              c:identifier="gtk_source_style_scheme_manager_prepend_search_path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="479">Prepends @path to the list of directories where the @manager looks
for style scheme files.

See [method@StyleSchemeManager.set_search_path] for details.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="481">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="482">a directory or a filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_path"
              c:identifier="gtk_source_style_scheme_manager_set_search_path"
              glib:set-property="search-path">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschememanager.c"
             line="408">Sets the list of directories where the @manager looks for
style scheme files.

If @path is %NULL, the search path is reset to default.

Since GtkSourceView 5.16 this function will allow you to provide
paths in the form of "resource:///" URIs to embedded `GResource`s.
They must contain the path of a directory within the `GResource`.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="410">a #GtkSourceStyleSchemeManager.</doc>
            <type name="StyleSchemeManager"
                  c:type="GtkSourceStyleSchemeManager*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschememanager.c"
                 line="411">a %NULL-terminated array of
  strings or %NULL.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="scheme-ids"
                transfer-ownership="none"
                getter="get_scheme_ids">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="search-path"
                writable="1"
                transfer-ownership="none"
                setter="set_search_path"
                getter="get_search_path">
        <array>
          <type name="utf8"/>
        </array>
      </property>
    </class>
    <record name="StyleSchemeManagerClass"
            c:type="GtkSourceStyleSchemeManagerClass"
            glib:is-gtype-struct-for="StyleSchemeManager">
      <source-position filename="gtksourceview/gtksourcestyleschememanager.h"
                       line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="StyleSchemePreview"
           c:symbol-prefix="style_scheme_preview"
           c:type="GtkSourceStyleSchemePreview"
           version="5.4"
           parent="Gtk.Widget"
           glib:type-name="GtkSourceStyleSchemePreview"
           glib:get-type="gtk_source_style_scheme_preview_get_type"
           glib:type-struct="StyleSchemePreviewClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcestyleschemepreview.c"
           line="33">A preview widget for [class@StyleScheme].

This widget provides a convenient [class@Gtk.Widget] to preview a [class@StyleScheme].

The [property@StyleSchemePreview:selected] property can be used to manage
the selection state of a single preview widget.</doc>
      <source-position filename="gtksourceview/gtksourcestyleschemepreview.h"
                       line="37"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <constructor name="new"
                   c:identifier="gtk_source_style_scheme_preview_new"
                   version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemepreview.c"
             line="434">Creates a new #GtkSourceStyleSchemePreview to preview the style scheme
provided in @scheme.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemepreview.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschemepreview.c"
               line="441">a #GtkWidget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="scheme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemepreview.c"
                 line="436">a #GtkSourceStyleScheme</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_scheme"
              c:identifier="gtk_source_style_scheme_preview_get_scheme"
              glib:get-property="scheme"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcestyleschemepreview.c"
             line="455">Gets the #GtkSourceStyleScheme previewed by the widget.</doc>
        <source-position filename="gtksourceview/gtksourcestyleschemepreview.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcestyleschemepreview.c"
               line="461">a #GtkSourceStyleScheme</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcestyleschemepreview.c"
                 line="457">a #GtkSourceStyleSchemePreview</doc>
            <type name="StyleSchemePreview"
                  c:type="GtkSourceStyleSchemePreview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="gtk_source_style_scheme_preview_get_selected"
              glib:get-property="selected">
        <source-position filename="gtksourceview/gtksourcestyleschemepreview.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StyleSchemePreview"
                  c:type="GtkSourceStyleSchemePreview*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="gtk_source_style_scheme_preview_set_selected"
              glib:set-property="selected">
        <source-position filename="gtksourceview/gtksourcestyleschemepreview.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="StyleSchemePreview"
                  c:type="GtkSourceStyleSchemePreview*"/>
          </instance-parameter>
          <parameter name="selected" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="scheme"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_scheme">
        <type name="StyleScheme"/>
      </property>
      <property name="selected"
                writable="1"
                transfer-ownership="none"
                setter="set_selected"
                getter="get_selected"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="activate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="StyleSchemePreviewClass"
            c:type="GtkSourceStyleSchemePreviewClass"
            glib:is-gtype-struct-for="StyleSchemePreview">
      <source-position filename="gtksourceview/gtksourcestyleschemepreview.h"
                       line="37"/>
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <class name="Tag"
           c:symbol-prefix="tag"
           c:type="GtkSourceTag"
           parent="Gtk.TextTag"
           glib:type-name="GtkSourceTag"
           glib:get-type="gtk_source_tag_get_type"
           glib:type-struct="TagClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcetag.c"
           line="26">A tag that can be applied to text in a [class@Buffer].

`GtkSourceTag` is a subclass of [class@Gtk.TextTag] that adds properties useful for
the GtkSourceView library.

If, for a certain tag, [class@Gtk.TextTag] is sufficient, it's better that you create
a [class@Gtk.TextTag], not a [class@Tag].</doc>
      <source-position filename="gtksourceview/gtksourcetag.h" line="45"/>
      <constructor name="new" c:identifier="gtk_source_tag_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcetag.c"
             line="167">Creates a `GtkSourceTag`.

Configure the tag using object arguments, i.e. using [method@GObject.Object.set].

For usual cases, [method@Buffer.create_source_tag] is more convenient to
use.</doc>
        <source-position filename="gtksourceview/gtksourcetag.h" line="48"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcetag.c"
               line="178">a new `GtkSourceTag`.</doc>
          <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
        </return-value>
        <parameters>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcetag.c"
                 line="169">tag name, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="draw-spaces"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcetag.c"
             line="124">Whether to draw white spaces.

This property takes precedence over the value defined by the [class@SpaceDrawer]'s
[property@SpaceDrawer:matrix] property (only where the tag is applied).

Setting this property also changes [property@Tag:draw-spaces-set] to
%TRUE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="draw-spaces-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcetag.c"
             line="144">Whether the [property@Tag:draw-spaces] property is set and must be
taken into account.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TextTag" c:type="GtkTextTag"/>
      </field>
    </class>
    <record name="TagClass"
            c:type="GtkSourceTagClass"
            glib:is-gtype-struct-for="Tag">
      <source-position filename="gtksourceview/gtksourcetag.h" line="45"/>
      <field name="parent_class">
        <type name="Gtk.TextTagClass" c:type="GtkTextTagClass"/>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <class name="View"
           c:symbol-prefix="view"
           c:type="GtkSourceView"
           parent="Gtk.TextView"
           glib:type-name="GtkSourceView"
           glib:get-type="gtk_source_view_get_type"
           glib:type-struct="ViewClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceview.c"
           line="62">Subclass of [class@Gtk.TextView].

`GtkSourceView` is the main class of the GtkSourceView library.
Use a [class@Buffer] to display text with a `GtkSourceView`.

This class provides:

 - Show the line numbers;
 - Show a right margin;
 - Highlight the current line;
 - Indentation settings;
 - Configuration for the Home and End keyboard keys;
 - Configure and show line marks;
 - And a few other things.

An easy way to test all these features is to use the test-widget mini-program
provided in the GtkSourceView repository, in the tests/ directory.

# GtkSourceView as GtkBuildable

The GtkSourceView implementation of the [iface@Gtk.Buildable] interface exposes the
[property@View:completion] object with the internal-child "completion".

An example of a UI definition fragment with GtkSourceView:
```xml
&lt;object class="GtkSourceView" id="source_view"&gt;
  &lt;property name="tab-width"&gt;4&lt;/property&gt;
  &lt;property name="auto-indent"&gt;True&lt;/property&gt;
  &lt;child internal-child="completion"&gt;
    &lt;object class="GtkSourceCompletion"&gt;
      &lt;property name="select-on-show"&gt;False&lt;/property&gt;
    &lt;/object&gt;
  &lt;/child&gt;
&lt;/object&gt;
```

# Changing the Font

Gtk CSS provides the best way to change the font for a `GtkSourceView` in a
manner that allows for components like [class@Map] to scale the desired
font.

```c
GtkCssProvider *provider = gtk_css_provider_new ();
gtk_css_provider_load_from_string (provider,
                                  "textview { font-family: Monospace; font-size: 8pt; }");
gtk_style_context_add_provider (gtk_widget_get_style_context (view),
                                GTK_STYLE_PROVIDER (provider),
                                GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
```
```python
provider = Gtk.CssProvider()
provider.load_from_string("textview { font-family: Monospace; font-size: 8pt; }")
style_context = view.get_style_context()
style_context.add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
```

If you need to adjust the font or size of font within a portion of the
document only, you should use a [class@Gtk.TextTag] with the [property@Gtk.TextTag:family] or
[property@Gtk.TextTag:scale] set so that the font size may be scaled relative to
the default font set in CSS.</doc>
      <source-position filename="gtksourceview/gtksourceview.h" line="103"/>
      <implements name="Gtk.Accessible"/>
      <implements name="Gtk.AccessibleText"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.ConstraintTarget"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="gtk_source_view_new">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3045">Creates a new `GtkSourceView`.

By default, an empty [class@Buffer] will be lazily created and can be
retrieved with [method@Gtk.TextView.get_buffer].

If you want to specify your own buffer, either override the
[vfunc@Gtk.TextView.create_buffer] factory method, or use
[ctor@View.new_with_buffer].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="3057">a new #GtkSourceView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_buffer"
                   c:identifier="gtk_source_view_new_with_buffer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3065">Creates a new #GtkSourceView widget displaying the buffer @buffer.

One buffer can be shared among many widgets.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="3073">a new #GtkSourceView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3067">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="line_mark_activated">
        <source-position filename="gtksourceview/gtksourceview.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="n_presses" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_lines">
        <source-position filename="gtksourceview/gtksourceview.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="down" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_words">
        <source-position filename="gtksourceview/gtksourceview.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="step" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="push_snippet" invoker="push_snippet">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5753">Inserts a new snippet at @location

If another snippet was already active, it will be paused and the new
snippet will become active. Once the focus positions of @snippet have
been exhausted, editing will return to the previous snippet.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5755">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5756">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </parameter>
          <parameter name="location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5757">a #GtkTextIter or %NULL for the cursor position</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_completion">
        <source-position filename="gtksourceview/gtksourceview.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_annotations"
              c:identifier="gtk_source_view_get_annotations"
              glib:get-property="annotations"
              version="5.18">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5629">Gets the [class@Annotations] associated with @view.

The returned object is guaranteed to be the same for the lifetime of @view.
Each [class@View] object has a different [class@Annotations].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="214"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5638">the #GtkSourceAnnotations associated with @view.</doc>
          <type name="Annotations" c:type="GtkSourceAnnotations*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5631">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_auto_indent"
              c:identifier="gtk_source_view_get_auto_indent"
              glib:get-property="auto-indent">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4626">Returns whether auto-indentation of text is enabled.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4632">%TRUE if auto indentation is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4628">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_background_pattern"
              c:identifier="gtk_source_view_get_background_pattern"
              glib:get-property="background-pattern">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5589">Returns the #GtkSourceBackgroundPatternType specifying if and how
the background pattern should be displayed for this @view.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="210"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5596">the #GtkSourceBackgroundPatternType.</doc>
          <type name="BackgroundPatternType"
                c:type="GtkSourceBackgroundPatternType"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5591">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_completion"
              c:identifier="gtk_source_view_get_completion"
              glib:get-property="completion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5383">Gets the [class@Completion] associated with @view.

The returned object is guaranteed to be the same for the lifetime of @view.
Each `GtkSourceView` object has a different [class@Completion].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="195"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5392">the #GtkSourceCompletion associated with @view.</doc>
          <type name="Completion" c:type="GtkSourceCompletion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5385">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enable_snippets"
              c:identifier="gtk_source_view_get_enable_snippets"
              glib:get-property="enable-snippets">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5807">Gets the [property@View:enable-snippets] property.

If %TRUE, matching snippets found in the [class@SnippetManager]
may be expanded when the user presses Tab after a word in the [class@View].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="190"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5816">%TRUE if enabled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5809">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gutter" c:identifier="gtk_source_view_get_gutter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5435">Returns the [class@Gutter] object associated with @window_type for @view.

Only %GTK_TEXT_WINDOW_LEFT and %GTK_TEXT_WINDOW_RIGHT are supported,
respectively corresponding to the left and right gutter. The line numbers
and mark category icons are rendered in the left gutter.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="204"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5446">the #GtkSourceGutter.</doc>
          <type name="Gutter" c:type="GtkSourceGutter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5437">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="window_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5438">the gutter window type.</doc>
            <type name="Gtk.TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_highlight_current_line"
              c:identifier="gtk_source_view_get_highlight_current_line"
              glib:get-property="highlight-current-line">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4826">Returns whether the current line is highlighted.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4832">%TRUE if the current line is highlighted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4828">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hover" c:identifier="gtk_source_view_get_hover">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5409">Gets the [class@Hover] associated with @view.

The returned object is guaranteed to be the same for the lifetime of @view.
Each [class@View] object has a different [class@Hover].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5418">a #GtkSourceHover associated with @view.</doc>
          <type name="Hover" c:type="GtkSourceHover*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5411">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indent_on_tab"
              c:identifier="gtk_source_view_get_indent_on_tab"
              glib:get-property="indent-on-tab">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4721">Returns whether when the tab key is pressed the current selection
should get indented instead of replaced with the `\t` character.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4728">%TRUE if the selection is indented when tab is pressed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4723">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indent_width"
              c:identifier="gtk_source_view_get_indent_width"
              glib:get-property="indent-width">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3357">Returns the number of spaces to use for each step of indent.

See [method@View.set_indent_width] for details.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="3365">indent width.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3359">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indenter"
              c:identifier="gtk_source_view_get_indenter"
              glib:get-property="indenter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5858">Gets the [property@View:indenter] property.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="199"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5864">a #GtkSourceIndenter or %NULL</doc>
          <type name="Indenter" c:type="GtkSourceIndenter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5860">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_insert_spaces_instead_of_tabs"
              c:identifier="gtk_source_view_get_insert_spaces_instead_of_tabs"
              glib:get-property="insert-spaces-instead-of-tabs">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4674">Returns whether when inserting a tabulator character it should
be replaced by a group of space characters.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4681">%TRUE if spaces are inserted instead of tabs.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4676">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mark_attributes"
              c:identifier="gtk_source_view_get_mark_attributes">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5525">Gets attributes and priority for the @category.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5533">#GtkSourceMarkAttributes for the @category.
The object belongs to @view, so it must not be unreffed.</doc>
          <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5527">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5528">the category.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5529">place where priority of the category will be stored.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_right_margin_position"
              c:identifier="gtk_source_view_get_right_margin_position"
              glib:get-property="right-margin-position">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4918">Gets the position of the right margin in the given @view.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4924">the position of the right margin.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4920">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_line_marks"
              c:identifier="gtk_source_view_get_show_line_marks"
              glib:get-property="show-line-marks">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3151">Returns whether line marks are displayed beside the text.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="3157">%TRUE if the line marks are displayed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3153">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_line_numbers"
              c:identifier="gtk_source_view_get_show_line_numbers"
              glib:get-property="show-line-numbers">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3085">Returns whether line numbers are displayed beside the text.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="3091">%TRUE if the line numbers are displayed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3087">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_right_margin"
              c:identifier="gtk_source_view_get_show_right_margin"
              glib:get-property="show-right-margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4872">Returns whether a right margin is displayed.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="156"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4878">%TRUE if the right margin is shown.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4874">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_smart_backspace"
              c:identifier="gtk_source_view_get_smart_backspace"
              glib:get-property="smart-backspace">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4990">Returns %TRUE if pressing the Backspace key will try to delete spaces
up to the previous tab stop.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="4997">%TRUE if smart Backspace handling is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4992">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_smart_home_end"
              c:identifier="gtk_source_view_get_smart_home_end"
              glib:get-property="smart-home-end">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5033">Returns a [enum@SmartHomeEndType] end value specifying
how the cursor will move when HOME and END keys are pressed.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5040">a #GtkSourceSmartHomeEndType value.</doc>
          <type name="SmartHomeEndType" c:type="GtkSourceSmartHomeEndType"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5035">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_space_drawer"
              c:identifier="gtk_source_view_get_space_drawer"
              glib:get-property="space-drawer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5608">Gets the [class@SpaceDrawer] associated with @view.

The returned object is guaranteed to be the same for the lifetime of @view.
Each [class@View] object has a different [class@SpaceDrawer].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="212"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5617">the #GtkSourceSpaceDrawer associated with @view.</doc>
          <type name="SpaceDrawer" c:type="GtkSourceSpaceDrawer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5610">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tab_width"
              c:identifier="gtk_source_view_get_tab_width"
              glib:get-property="tab-width">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3294">Returns the width of tabulation in characters.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="3300">width of tab.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3296">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visual_column"
              c:identifier="gtk_source_view_get_visual_column">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5052">Determines the visual column at @iter taking into consideration the
[property@View:tab-width] of @view.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="192"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceview.c"
               line="5060">the visual column at @iter.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5054">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5055">a position in @view.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="indent_lines" c:identifier="gtk_source_view_indent_lines">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3410">Inserts one indentation level at the beginning of the specified lines. The
empty lines are not indented.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3412">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3413">#GtkTextIter of the first line to indent</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3414">#GtkTextIter of the last line to indent</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_snippet" c:identifier="gtk_source_view_push_snippet">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5753">Inserts a new snippet at @location

If another snippet was already active, it will be paused and the new
snippet will become active. Once the focus positions of @snippet have
been exhausted, editing will return to the previous snippet.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="216"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5755">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5756">a #GtkSourceSnippet</doc>
            <type name="Snippet" c:type="GtkSourceSnippet*"/>
          </parameter>
          <parameter name="location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5757">a #GtkTextIter or %NULL for the cursor position</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auto_indent"
              c:identifier="gtk_source_view_set_auto_indent"
              glib:set-property="auto-indent">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4644">If %TRUE auto-indentation of text is enabled.

When Enter is pressed to create a new line, the auto-indentation inserts the
same indentation as the previous line. This is **not** a
"smart indentation" where an indentation level is added or removed depending
on the context.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4646">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4647">whether to enable auto indentation.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_background_pattern"
              c:identifier="gtk_source_view_set_background_pattern"
              glib:set-property="background-pattern">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5563">Set if and how the background pattern should be displayed.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5565">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="background_pattern" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5566">the #GtkSourceBackgroundPatternType.</doc>
            <type name="BackgroundPatternType"
                  c:type="GtkSourceBackgroundPatternType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enable_snippets"
              c:identifier="gtk_source_view_set_enable_snippets"
              glib:set-property="enable-snippets">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5828">Sets the [property@View:enable-snippets] property.

If @enable_snippets is %TRUE, matching snippets found in the
[class@SnippetManager] may be expanded when the user presses
Tab after a word in the [class@View].</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5830">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="enable_snippets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5831">if snippets should be enabled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_current_line"
              c:identifier="gtk_source_view_set_highlight_current_line"
              glib:set-property="highlight-current-line">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4844">If @highlight is %TRUE the current line will be highlighted.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4846">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4847">whether to highlight the current line.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_indent_on_tab"
              c:identifier="gtk_source_view_set_indent_on_tab"
              glib:set-property="indent-on-tab">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4740">If %TRUE, when the tab key is pressed when several lines are selected, the
selected lines are indented of one level instead of being replaced with a `\t`
character. Shift+Tab unindents the selection.

If the first or last line is not selected completely, it is also indented or
unindented.

When the selection doesn't span several lines, the tab key always replaces
the selection with a normal `\t` character.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4742">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4743">whether to indent a block when tab is pressed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_indent_width"
              c:identifier="gtk_source_view_set_indent_width"
              glib:set-property="indent-width">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3312">Sets the number of spaces to use for each step of indent when the tab key is
pressed.

If @width is -1, the value of the [property@View:tab-width] property
will be used.

The [property@View:indent-width] interacts with the
[property@View:insert-spaces-instead-of-tabs] property and
[property@View:tab-width]. An example will be clearer:

If the [property@View:indent-width] is 4 and [property@View:tab-width] is 8 and
[property@View:insert-spaces-instead-of-tabs] is %FALSE, then pressing the tab
key at the beginning of a line will insert 4 spaces. So far so good. Pressing
the tab key a second time will remove the 4 spaces and insert a `\t` character
instead (since [property@View:tab-width] is 8). On the other hand, if
[property@View:insert-spaces-instead-of-tabs] is %TRUE, the second tab key
pressed will insert 4 more spaces for a total of 8 spaces in the
[class@Gtk.TextBuffer].

The test-widget program (available in the GtkSourceView repository) may be
useful to better understand the indentation settings (enable the space
drawing!).</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="120"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3314">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3315">indent width in characters.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_indenter"
              c:identifier="gtk_source_view_set_indenter"
              glib:set-property="indenter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5876">Sets the indenter for @view to @indenter.

Note that the indenter will not be used unless #GtkSourceView:auto-indent
has been set to %TRUE.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5878">a #GtkSourceView</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="indenter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5879">a #GtkSourceIndenter or %NULL</doc>
            <type name="Indenter" c:type="GtkSourceIndenter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_insert_spaces_instead_of_tabs"
              c:identifier="gtk_source_view_set_insert_spaces_instead_of_tabs"
              glib:set-property="insert-spaces-instead-of-tabs">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4693">If %TRUE a tab key pressed is replaced by a group of space characters.

Of course it is still possible to insert a real `\t` programmatically with the
[class@Gtk.TextBuffer] API.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4695">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4696">whether to insert spaces instead of tabs.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mark_attributes"
              c:identifier="gtk_source_view_set_mark_attributes">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5496">Sets attributes and priority for the @category.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5498">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5499">the category.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5500">mark attributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5501">priority of the category.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_right_margin_position"
              c:identifier="gtk_source_view_set_right_margin_position"
              glib:set-property="right-margin-position">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4936">Sets the position of the right margin in the given @view.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4938">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4939">the width in characters where to position the right margin.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_line_marks"
              c:identifier="gtk_source_view_set_show_line_marks"
              glib:set-property="show-line-marks">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3182">If %TRUE line marks will be displayed beside the text.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3184">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3185">whether line marks should be displayed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_line_numbers"
              c:identifier="gtk_source_view_set_show_line_numbers"
              glib:set-property="show-line-numbers">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3103">If %TRUE line numbers will be displayed beside the text.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3105">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3106">whether line numbers should be displayed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_right_margin"
              c:identifier="gtk_source_view_set_show_right_margin"
              glib:set-property="show-right-margin">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4890">If %TRUE a right margin is displayed.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4892">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4893">whether to show a right margin.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_smart_backspace"
              c:identifier="gtk_source_view_set_smart_backspace"
              glib:set-property="smart-backspace">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="4964">When set to %TRUE, pressing the Backspace key will try to delete spaces
up to the previous tab stop.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="177"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4966">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="smart_backspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="4967">whether to enable smart Backspace handling.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_smart_home_end"
              c:identifier="gtk_source_view_set_smart_home_end"
              glib:set-property="smart-home-end">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="5009">Set the desired movement of the cursor when HOME and END keys
are pressed.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="182"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5011">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="smart_home_end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="5012">the desired behavior among #GtkSourceSmartHomeEndType.</doc>
            <type name="SmartHomeEndType" c:type="GtkSourceSmartHomeEndType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tab_width"
              c:identifier="gtk_source_view_set_tab_width"
              glib:set-property="tab-width">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3255">Sets the width of tabulation in characters.

The #GtkTextBuffer still contains `\t` characters,
but they can take a different visual width in a [class@View] widget.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3257">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3258">width of tab in characters.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="unindent_lines"
              c:identifier="gtk_source_view_unindent_lines">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="3563">Removes one indentation level at the beginning of the
specified lines.</doc>
        <source-position filename="gtksourceview/gtksourceview.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3565">a #GtkSourceView.</doc>
            <type name="View" c:type="GtkSourceView*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3566">#GtkTextIter of the first line to indent</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="3567">#GtkTextIter of the last line to indent</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="annotations"
                version="5.18"
                transfer-ownership="none"
                getter="get_annotations">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="858">The [class@Annotations] object associated with the view.</doc>
        <type name="Annotations"/>
      </property>
      <property name="auto-indent"
                writable="1"
                transfer-ownership="none"
                setter="set_auto_indent"
                getter="get_auto_indent"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="background-pattern"
                writable="1"
                transfer-ownership="none"
                setter="set_background_pattern"
                getter="get_background_pattern"
                default-value="GTK_SOURCE_BACKGROUND_PATTERN_TYPE_NONE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="816">Draw a specific background pattern on the view.</doc>
        <type name="BackgroundPatternType"/>
      </property>
      <property name="completion"
                transfer-ownership="none"
                getter="get_completion">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="625">The completion object associated with the view</doc>
        <type name="Completion"/>
      </property>
      <property name="enable-snippets"
                writable="1"
                transfer-ownership="none"
                setter="set_enable_snippets"
                getter="get_enable_snippets"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="638">The property denotes if snippets should be
expanded when the user presses Tab after having typed a word
matching the snippets found in [class@SnippetManager].

The user may tab through focus-positions of the snippet if any
are available by pressing Tab repeatedly until the desired focus
position is selected.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="highlight-current-line"
                writable="1"
                transfer-ownership="none"
                setter="set_highlight_current_line"
                getter="get_highlight_current_line"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="indent-on-tab"
                writable="1"
                transfer-ownership="none"
                setter="set_indent_on_tab"
                getter="get_indent_on_tab"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="indent-width"
                writable="1"
                transfer-ownership="none"
                setter="set_indent_width"
                getter="get_indent_width"
                default-value="-1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="717">Width of an indentation step expressed in number of spaces.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="indenter"
                writable="1"
                transfer-ownership="none"
                setter="set_indenter"
                getter="get_indenter">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="702">The property is a [iface@Indenter] to use to indent
as the user types into the [class@View].</doc>
        <type name="Indenter"/>
      </property>
      <property name="insert-spaces-instead-of-tabs"
                writable="1"
                transfer-ownership="none"
                setter="set_insert_spaces_instead_of_tabs"
                getter="get_insert_spaces_instead_of_tabs"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="right-margin-position"
                writable="1"
                transfer-ownership="none"
                setter="set_right_margin_position"
                getter="get_right_margin_position"
                default-value="80">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="765">Position of the right margin.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="show-line-marks"
                writable="1"
                transfer-ownership="none"
                setter="set_show_line_marks"
                getter="get_show_line_marks"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="672">Whether to display line mark pixbufs</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-line-numbers"
                writable="1"
                transfer-ownership="none"
                setter="set_show_line_numbers"
                getter="get_show_line_numbers"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="658">Whether to display line numbers</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-right-margin"
                writable="1"
                transfer-ownership="none"
                setter="set_show_right_margin"
                getter="get_show_right_margin"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="751">Whether to display the right margin.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="smart-backspace"
                writable="1"
                transfer-ownership="none"
                setter="set_smart_backspace"
                getter="get_smart_backspace"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="831">Whether smart Backspace should be used.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="smart-home-end"
                writable="1"
                transfer-ownership="none"
                setter="set_smart_home_end"
                getter="get_smart_home_end"
                default-value="GTK_SOURCE_SMART_HOME_END_DISABLED">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="781">Set the behavior of the HOME and END keys.</doc>
        <type name="SmartHomeEndType"/>
      </property>
      <property name="space-drawer"
                transfer-ownership="none"
                getter="get_space_drawer">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="845">The [class@SpaceDrawer] object associated with the view.</doc>
        <type name="SpaceDrawer"/>
      </property>
      <property name="tab-width"
                writable="1"
                transfer-ownership="none"
                setter="set_tab_width"
                getter="get_tab_width"
                default-value="8">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="686">Width of a tab character expressed in number of spaces.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TextView" c:type="GtkTextView"/>
      </field>
      <glib:signal name="change-case" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="1074">Keybinding signal to change case of the text at the current cursor position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="case_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="1077">the case to use</doc>
            <type name="ChangeCaseType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="change-number" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="1053">Keybinding signal to edit a number at the current cursor position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="1056">the number to add to the number at the current position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="join-lines" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="1095">Keybinding signal to join the lines currently selected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="line-mark-activated" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="900">Emitted when a line mark has been activated (for instance when there
was a button press in the line marks gutter).

You can use @iter to determine on which line the activation took place.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="903">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="904">the button that was pressed</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="905">the modifier state, if any</doc>
            <type name="Gdk.ModifierType"/>
          </parameter>
          <parameter name="n_presses" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="906">the number of presses</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-lines" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="930">The signal is a keybinding which gets emitted when the user initiates moving a line.

The default binding key is Alt+Up/Down arrow. And moves the currently selected lines,
or the current line up or down by one line.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="down" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="933">%TRUE to move down, %FALSE to move up.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-to-matching-bracket" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="1031">Keybinding signal to move the cursor to the matching bracket.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="extend_selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="1034">%TRUE if the move should extend the selection</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-words" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="953">The signal is a keybinding which gets emitted when the user initiates moving a word.

The default binding key is Alt+Left/Right Arrow and moves the current selection, or the current
word by one word.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="956">the number of words to move over</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="push-snippet" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="976">The signal is emitted to insert a new snippet into the view.

If another snippet was active, it will be paused until all focus positions of @snippet have been exhausted.

@location will be updated to point at the end of the snippet.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="snippet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="979">a #GtkSourceSnippet</doc>
            <type name="Snippet"/>
          </parameter>
          <parameter name="location"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="980">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-completion" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="873">The signal is a key binding signal which gets
emitted when the user requests a completion, by pressing
&lt;keycombo&gt;&lt;keycap&gt;Control&lt;/keycap&gt;&lt;keycap&gt;space&lt;/keycap&gt;&lt;/keycombo&gt;.

This will create a [class@CompletionContext] with the activation
type as %GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED.

Applications should not connect to it, but may emit it with
[func@GObject.signal_emit_by_name] if they need to activate the completion by
another means, for example with another key binding or a menu entry.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="smart-home-end" when="last">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.c"
             line="1003">Emitted when a the cursor was moved according to the smart home end setting.

The signal is emitted after the cursor is moved, but
during the [signal@Gtk.TextView::move-cursor] action. This can be used to find
out whether the cursor was moved by a normal home/end or by a smart
home/end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="1006">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourceview.c"
                 line="1007">the count</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ViewClass"
            c:type="GtkSourceViewClass"
            glib:is-gtype-struct-for="View">
      <source-position filename="gtksourceview/gtksourceview.h" line="103"/>
      <field name="parent_class">
        <type name="Gtk.TextViewClass" c:type="GtkTextViewClass"/>
      </field>
      <field name="line_mark_activated">
        <callback name="line_mark_activated">
          <source-position filename="gtksourceview/gtksourceview.h" line="87"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="button" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
            </parameter>
            <parameter name="n_presses" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_completion">
        <callback name="show_completion">
          <source-position filename="gtksourceview/gtksourceview.h" line="92"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_lines">
        <callback name="move_lines">
          <source-position filename="gtksourceview/gtksourceview.h" line="93"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
            <parameter name="down" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_words">
        <callback name="move_words">
          <source-position filename="gtksourceview/gtksourceview.h" line="95"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="push_snippet">
        <callback name="push_snippet">
          <source-position filename="gtksourceview/gtksourceview.h" line="97"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceview.c"
                   line="5755">a #GtkSourceView</doc>
              <type name="View" c:type="GtkSourceView*"/>
            </parameter>
            <parameter name="snippet" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceview.c"
                   line="5756">a #GtkSourceSnippet</doc>
              <type name="Snippet" c:type="GtkSourceSnippet*"/>
            </parameter>
            <parameter name="location"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtksourceview/gtksourceview.c"
                   line="5757">a #GtkTextIter or %NULL for the cursor position</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="20">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="ViewGutterPosition"
                 glib:type-name="GtkSourceViewGutterPosition"
                 glib:get-type="gtk_source_view_gutter_position_get_type"
                 c:type="GtkSourceViewGutterPosition">
      <member name="lines"
              value="-30"
              c:identifier="GTK_SOURCE_VIEW_GUTTER_POSITION_LINES"
              glib:nick="lines"
              glib:name="GTK_SOURCE_VIEW_GUTTER_POSITION_LINES">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="38">the gutter position of the lines
renderer</doc>
      </member>
      <member name="marks"
              value="-20"
              c:identifier="GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS"
              glib:nick="marks"
              glib:name="GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceview.h"
             line="40">the gutter position of the marks
renderer</doc>
      </member>
    </enumeration>
    <class name="VimIMContext"
           c:symbol-prefix="vim_im_context"
           c:type="GtkSourceVimIMContext"
           version="5.4"
           parent="Gtk.IMContext"
           glib:type-name="GtkSourceVimIMContext"
           glib:get-type="gtk_source_vim_im_context_get_type"
           glib:type-struct="VimIMContextClass">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcevimimcontext.c"
           line="31">Vim emulation.

The `GtkSourceVimIMContext` is a [class@Gtk.IMContext] implementation that can
be used to provide Vim-like editing controls within a [class@View].

The `GtkSourceViMIMContext` will process incoming [class@Gdk.KeyEvent] as the
user types. It should be used in conjunction with a [class@Gtk.EventControllerKey].

Various features supported by `GtkSourceVimIMContext` include:

 - Normal, Insert, Replace, Visual, and Visual Line modes
 - Support for an integrated command bar and current command preview
 - Search and replace
 - Motions and Text Objects
 - History replay
 - Jumplists within the current file
 - Registers including the system and primary clipboards
 - Creation and motion to marks
 - Some commonly used Vim commands

It is recommended that applications display the contents of
[property@VimIMContext:command-bar-text] and
[property@VimIMContext:command-text] to the user as they represent the
command-bar and current command preview found in Vim.

`GtkSourceVimIMContext` attempts to work with additional [class@Gtk.IMContext]
implementations such as IBus by querying the [class@Gtk.TextView] before processing
the command in states which support it (notably Insert and Replace modes).

```c
GtkEventController *key;
GtkIMContext *im_context;
GtkWidget *view;

view = gtk_source_view_new ();
im_context = gtk_source_vim_im_context_new ();
key = gtk_event_controller_key_new ();

gtk_event_controller_key_set_im_context (GTK_EVENT_CONTROLLER_KEY (key), im_context);
gtk_event_controller_set_propagation_phase (key, GTK_PHASE_CAPTURE);
gtk_widget_add_controller (view, key);
gtk_im_context_set_client_widget (im_context, view);

g_object_bind_property (im_context, "command-bar-text", command_bar_label, "label", 0);
g_object_bind_property (im_context, "command-text", command_label, "label", 0);
```
```python
key = Gtk.EventControllerKey.new()
im_context = GtkSource.VimIMContext.new()
buffer = GtkSource.Buffer()
view = GtkSource.View.new_with_buffer(buffer)

key.set_im_context(im_context)
key.set_propagation_phase(Gtk.PropagationPhase.CAPTURE)
view.add_controller(key)
im_context.set_client_widget(view)

im_context.bind_property(
    source_property="command-text",
    target=command_label,
    target_property="label",
    flags=GObject.BindingFlags.DEFAULT,
)

im_context.bind_property(
    source_property="command-bar-text",
    target=command_bar_label,
    target_property="label",
    flags=GObject.BindingFlags.DEFAULT,
)
```</doc>
      <source-position filename="gtksourceview/gtksourcevimimcontext.h"
                       line="37"/>
      <constructor name="new" c:identifier="gtk_source_vim_im_context_new">
        <source-position filename="gtksourceview/gtksourcevimimcontext.h"
                         line="40"/>
        <return-value transfer-ownership="full">
          <type name="Gtk.IMContext" c:type="GtkIMContext*"/>
        </return-value>
      </constructor>
      <method name="execute_command"
              c:identifier="gtk_source_vim_im_context_execute_command"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="608">Executes @command as if it was typed into the command bar by the
user except that this does not emit the
[signal@VimIMContext::execute-command] signal.</doc>
        <source-position filename="gtksourceview/gtksourcevimimcontext.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="610">a #GtkSourceVimIMContext</doc>
            <type name="VimIMContext" c:type="GtkSourceVimIMContext*"/>
          </instance-parameter>
          <parameter name="command" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="611">the command text</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_command_bar_text"
              c:identifier="gtk_source_vim_im_context_get_command_bar_text"
              glib:get-property="command-bar-text"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="587">Gets the current command-bar text as it is entered by the user.</doc>
        <source-position filename="gtksourceview/gtksourcevimimcontext.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcevimimcontext.c"
               line="593">A string containing the command-bar text</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="589">a #GtkSourceVimIMContext</doc>
            <type name="VimIMContext" c:type="GtkSourceVimIMContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_command_text"
              c:identifier="gtk_source_vim_im_context_get_command_text"
              glib:get-property="command-text"
              version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="566">Gets the current command text as it is entered by the user.</doc>
        <source-position filename="gtksourceview/gtksourcevimimcontext.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcevimimcontext.c"
               line="572">A string containing the command text</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="568">a #GtkSourceVimIMContext</doc>
            <type name="VimIMContext" c:type="GtkSourceVimIMContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="command-bar-text"
                transfer-ownership="none"
                getter="get_command_bar_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="command-text"
                transfer-ownership="none"
                getter="get_command_text"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="edit" when="last" version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="513">Requests the application open the file found at @path.

If @path is %NULL, then the current file should be reloaded from storage.

This may be executed in relation to the user running the
`:edit` or `:e` commands.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="516">the #GtkSourceView</doc>
            <type name="View"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="517">the path if provided, otherwise %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="execute-command" when="last" version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="439">The signal is emitted when a command should be
executed. This might be something like `:wq` or `:e &lt;path&gt;`.

If the application chooses to implement this, it should return
%TRUE from this signal to indicate the command has been handled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcevimimcontext.c"
               line="450">%TRUE if handled; otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="command" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="442">the command to execute</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="format-text" when="last" version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="465">Requests that the application format the text between
@begin and @end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="begin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="468">the start location</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="469">the end location</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="write" when="last" version="5.4">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourcevimimcontext.c"
             line="488">Requests the application save the file.

If a filename was provided, it will be available to the signal handler as @path.
This may be executed in relation to the user running the `:write` or `:w` commands.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="491">the #GtkSourceView</doc>
            <type name="View"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtksourceview/gtksourcevimimcontext.c"
                 line="492">the path if provided, otherwise %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="VimIMContextClass"
            c:type="GtkSourceVimIMContextClass"
            glib:is-gtype-struct-for="VimIMContext">
      <source-position filename="gtksourceview/gtksourcevimimcontext.h"
                       line="37"/>
      <field name="parent_class">
        <type name="Gtk.IMContextClass" c:type="GtkIMContextClass"/>
      </field>
    </record>
    <function name="check_version" c:identifier="gtk_source_check_version">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.c"
           line="87">Like GTK_SOURCE_CHECK_VERSION, but the check for gtk_source_check_version is
at runtime instead of compile time. This is useful for compiling
against older versions of GtkSourceView, but using features from newer
versions.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="336"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceversion.c"
             line="98">%TRUE if the version of the GtkSourceView currently loaded
is the same as or newer than the passed-in version.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="major" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceversion.c"
               line="89">the major version to check</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="minor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceversion.c"
               line="90">the minor version to check</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="micro" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceversion.c"
               line="91">the micro version to check</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_get_all"
              c:identifier="gtk_source_encoding_get_all"
              moved-to="Encoding.get_all">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceencoding.c"
           line="342">Gets all encodings.</doc>
      <source-position filename="gtksourceview/gtksourceencoding.h" line="51"/>
      <return-value transfer-ownership="container">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="347">a list of
all #GtkSourceEncoding's. Free with g_slist_free().</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="Encoding"/>
        </type>
      </return-value>
    </function>
    <function name="encoding_get_current"
              c:identifier="gtk_source_encoding_get_current"
              moved-to="Encoding.get_current">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceencoding.c"
           line="377">Gets the #GtkSourceEncoding for the current locale.

See also [func@GLib.get_charset].</doc>
      <source-position filename="gtksourceview/gtksourceencoding.h" line="49"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="384">the current locale encoding.</doc>
        <type name="Encoding" c:type="const GtkSourceEncoding*"/>
      </return-value>
    </function>
    <function name="encoding_get_default_candidates"
              c:identifier="gtk_source_encoding_get_default_candidates"
              moved-to="Encoding.get_default_candidates">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceencoding.c"
           line="590">Gets the list of default candidate encodings to try when loading a file.

See [method@FileLoader.set_candidate_encodings].

This function returns a different list depending on the current locale (i.e.
language, country and default encoding). The UTF-8 encoding and the current
locale encoding are guaranteed to be present in the returned list.</doc>
      <source-position filename="gtksourceview/gtksourceencoding.h" line="53"/>
      <return-value transfer-ownership="container">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="601">the list of
default candidate encodings. Free with g_slist_free().</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="Encoding"/>
        </type>
      </return-value>
    </function>
    <function name="encoding_get_from_charset"
              c:identifier="gtk_source_encoding_get_from_charset"
              moved-to="Encoding.get_from_charset">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceencoding.c"
           line="301">Gets a #GtkSourceEncoding from a character set such as "UTF-8" or
"ISO-8859-1".</doc>
      <source-position filename="gtksourceview/gtksourceencoding.h" line="39"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="308">the corresponding #GtkSourceEncoding, or %NULL
if not found.</doc>
        <type name="Encoding" c:type="const GtkSourceEncoding*"/>
      </return-value>
      <parameters>
        <parameter name="charset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceencoding.c"
               line="303">a character set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="encoding_get_utf8"
              c:identifier="gtk_source_encoding_get_utf8"
              moved-to="Encoding.get_utf8">
      <source-position filename="gtksourceview/gtksourceencoding.h" line="47"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceencoding.c"
             line="369">the UTF-8 encoding.</doc>
        <type name="Encoding" c:type="const GtkSourceEncoding*"/>
      </return-value>
    </function>
    <function name="file_loader_error_quark"
              c:identifier="gtk_source_file_loader_error_quark"
              moved-to="FileLoaderError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="file_saver_error_quark"
              c:identifier="gtk_source_file_saver_error_quark"
              moved-to="FileSaverError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="finalize" c:identifier="gtk_source_finalize">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceinit.c"
           line="261">Free the resources allocated by GtkSourceView. For example it unrefs the
singleton objects.

It is not mandatory to call this function, it's just to be friendlier to
memory debugging tools. This function is meant to be called at the end of
main(). It can be called several times.</doc>
      <source-position filename="gtksourceview/gtksourceinit.h" line="35"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="get_major_version"
              c:identifier="gtk_source_get_major_version">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.c"
           line="30">Returns the major version number of the GtkSourceView library.
(e.g. in GtkSourceView version 3.20.0 this is 3.)

This function is in the library, so it represents the GtkSourceView library
your code is running against. Contrast with the #GTK_SOURCE_MAJOR_VERSION
macro, which represents the major version of the GtkSourceView headers you
have included when compiling your code.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="330"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceversion.c"
             line="41">the major version number of the GtkSourceView library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_micro_version"
              c:identifier="gtk_source_get_micro_version">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.c"
           line="68">Returns the micro version number of the GtkSourceView library.
(e.g. in GtkSourceView version 3.20.0 this is 0.)

This function is in the library, so it represents the GtkSourceView library
your code is running against. Contrast with the #GTK_SOURCE_MICRO_VERSION
macro, which represents the micro version of the GtkSourceView headers you
have included when compiling your code.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="334"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceversion.c"
             line="79">the micro version number of the GtkSourceView library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_minor_version"
              c:identifier="gtk_source_get_minor_version">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceversion.c"
           line="49">Returns the minor version number of the GtkSourceView library.
(e.g. in GtkSourceView version 3.20.0 this is 20.)

This function is in the library, so it represents the GtkSourceView library
your code is running against. Contrast with the #GTK_SOURCE_MINOR_VERSION
macro, which represents the minor version of the GtkSourceView headers you
have included when compiling your code.</doc>
      <source-position filename="gtksourceview/gtksourceversion.h" line="332"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceversion.c"
             line="60">the minor version number of the GtkSourceView library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="init" c:identifier="gtk_source_init">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceinit.c"
           line="163">Initializes the GtkSourceView library (e.g. for the internationalization).

This function can be called several times, but is meant to be called at the
beginning of main(), before any other GtkSourceView function call.

The counterpart to this function is [func@finalize] which can be convenient
when using memory debugging tools.</doc>
      <source-position filename="gtksourceview/gtksourceinit.h" line="33"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="scheduler_add"
              c:identifier="gtk_source_scheduler_add"
              shadowed-by="scheduler_add_full"
              version="5.2"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcescheduler.c"
           line="232">Simplified version of [func@scheduler_add_full].</doc>
      <source-position filename="gtksourceview/gtksourcescheduler.h"
                       line="55"/>
      <return-value transfer-ownership="none">
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="forever"
                   closure="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.c"
               line="234">the callback to execute</doc>
          <type name="SchedulerCallback" c:type="GtkSourceSchedulerCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.c"
               line="235">user data for @callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="scheduler_add_full"
              c:identifier="gtk_source_scheduler_add_full"
              shadows="scheduler_add"
              version="5.2">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcescheduler.c"
           line="248">Adds a new callback that will be executed as time permits on the main thread.

This is useful when you need to do a lot of background work but want to do
it incrementally.

@callback will be provided a deadline that it should complete it's work by
(or near) and can be checked using [func@GLib.get_monotonic_time] for comparison.

Use [func@scheduler_remove] to remove the handler.</doc>
      <source-position filename="gtksourceview/gtksourcescheduler.h"
                       line="58"/>
      <return-value transfer-ownership="none">
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="1"
                   destroy="2">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.c"
               line="250">the callback to execute</doc>
          <type name="SchedulerCallback" c:type="GtkSourceSchedulerCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.c"
               line="251">user data for @callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.c"
               line="252">closure notify for @user_data</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="scheduler_remove"
              c:identifier="gtk_source_scheduler_remove"
              version="5.2">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourcescheduler.c"
           line="287">Removes a scheduler callback previously registered with
[func@scheduler_add] or [func@scheduler_add_full].</doc>
      <source-position filename="gtksourceview/gtksourcescheduler.h"
                       line="62"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="handler_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourcescheduler.c"
               line="289">the handler id</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="utils">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceutils.c"
           line="23">Utility functions.</doc>
    </docsection>
    <function name="utils_escape_search_text"
              c:identifier="gtk_source_utils_escape_search_text">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceutils.c"
           line="175">Use this function to escape the following characters: `\n`, `\r`, `\t` and `\`.

For a regular expression search, use g_regex_escape_string() instead.

One possible use case is to take the #GtkTextBuffer's selection and put it in a
search entry. The selection can contain tabulations, newlines, etc. So it's
better to escape those special characters to better fit in the search entry.

See also: [func@utils_unescape_search_text].

&lt;warning&gt;
Warning: the escape and unescape functions are not reciprocal! For example,
escape (unescape (\)) = \\. So avoid cycles such as: search entry -&gt; unescape
-&gt; search settings -&gt; escape -&gt; search entry. The original search entry text
may be modified.
&lt;/warning&gt;</doc>
      <source-position filename="gtksourceview/gtksourceutils.h" line="35"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceutils.c"
             line="196">the escaped @text.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceutils.c"
               line="177">the text to escape.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_unescape_search_text"
              c:identifier="gtk_source_utils_unescape_search_text">
      <doc xml:space="preserve"
           filename="gtksourceview/gtksourceutils.c"
           line="84">Use this function before [method@SearchSettings.set_search_text], to
unescape the following sequences of characters: `\n`, `\r`, `\t` and `\\`.
The purpose is to easily write those characters in a search entry.

Note that unescaping the search text is not needed for regular expression
searches.

See also: [func@utils_escape_search_text].</doc>
      <source-position filename="gtksourceview/gtksourceutils.h" line="33"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtksourceview/gtksourceutils.c"
             line="97">the unescaped @text.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksourceview/gtksourceutils.c"
               line="86">the text to unescape.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
