<?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:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Atk" version="1.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <include name="xlib" version="2.0"/>
  <package name="gtksourceview-3.0"/>
  <c:include name="gtksourceview/gtksource.h"/>
  <namespace name="GtkSource"
             version="3.0"
             shared-library="libgtksourceview-3.0.so.0.0"
             c:identifier-prefixes="GtkSource"
             c:symbol-prefixes="gtk_source">
    <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"/>
      <member name="out_of_range"
              value="1"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_OUT_OF_RANGE"
              glib:nick="out-of-range"/>
      <member name="not_found"
              value="2"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_NOT_FOUND"
              glib:nick="not-found"/>
      <member name="found"
              value="3"
              c:identifier="GTK_SOURCE_BRACKET_MATCH_FOUND"
              glib:nick="found"/>
    </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">
      <constructor name="new" c:identifier="gtk_source_buffer_new">
        <doc xml:whitespace="preserve">Creates a new source buffer.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new source buffer.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="table" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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 gtk_source_buffer_set_language().

according to the highlighting patterns in @language.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new source buffer which will highlight text</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceLanguage.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="bracket_matched">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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>
      <virtual-method name="redo" invoker="redo">
        <doc xml:whitespace="preserve">Redoes the last undo operation.  Use gtk_source_buffer_can_redo()
to check whether a call to this function will have any effect.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="undo" invoker="undo">
        <doc xml:whitespace="preserve">Undoes the last user action which modified the buffer.  Use
gtk_source_buffer_can_undo() to check whether a call to this
function will have any effect.

Actions are defined as groups of operations between a call to
gtk_text_buffer_begin_user_action() and
gtk_text_buffer_end_user_action(), or sequences of similar edits
(inserts or deletes) on the same line.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="backward_iter_to_source_mark"
              c:identifier="gtk_source_buffer_backward_iter_to_source_mark"
              version="2.2">
        <doc xml:whitespace="preserve">Moves @iter to the position of the previous #GtkSourceMark of the given
category. Returns %TRUE if @iter was moved. If @category is NULL, the
previous source mark can be of any category.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether @iter was moved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">an iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">category to search for, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_not_undoable_action"
              c:identifier="gtk_source_buffer_begin_not_undoable_action">
        <doc xml:whitespace="preserve">Marks the beginning of a not undoable action on the buffer,
disabling the undo manager.  Typically you would call this function
before initially setting the contents of the buffer (e.g. when
loading a file in a text editor).

You may nest gtk_source_buffer_begin_not_undoable_action() /
gtk_source_buffer_end_not_undoable_action() blocks.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="can_redo" c:identifier="gtk_source_buffer_can_redo">
        <doc xml:whitespace="preserve">Determines whether a source buffer can redo the last action
(i.e. if the last operation was an undo).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if a redo is possible.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="can_undo" c:identifier="gtk_source_buffer_can_undo">
        <doc xml:whitespace="preserve">Determines whether a source buffer can undo the last action.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if it's possible to undo the last action.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="create_source_mark"
              c:identifier="gtk_source_buffer_create_source_mark"
              version="2.2">
        <doc xml:whitespace="preserve">Creates a source mark in the @buffer of category @category.  A source mark is
a #GtkTextMark but organised into categories. Depending on the category
a pixbuf can be specified that will be displayed along the line of the mark.

Like a #GtkTextMark, a #GtkSourceMark 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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #GtkSourceMark, owned by the buffer.</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the name of the mark, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:whitespace="preserve">a string defining the mark category.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:whitespace="preserve">location to place the mark.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="end_not_undoable_action"
              c:identifier="gtk_source_buffer_end_not_undoable_action">
        <doc xml:whitespace="preserve">Marks the end of a not undoable action on the buffer.  When the
last not undoable block is closed through the call to this
function, the list of undo actions is cleared and the undo manager
is re-enabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="ensure_highlight"
              c:identifier="gtk_source_buffer_ensure_highlight">
        <doc xml:whitespace="preserve">Forces buffer to analyze and highlight the given area synchronously.

&lt;note&gt;
&lt;para&gt;
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.
&lt;/para&gt;
&lt;/note&gt;</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">start of the area to highlight.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">end of the area to highlight.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_iter_to_source_mark"
              c:identifier="gtk_source_buffer_forward_iter_to_source_mark"
              version="2.2">
        <doc xml:whitespace="preserve">Moves @iter to the position of the next #GtkSourceMark of the given
@category. Returns %TRUE if @iter was moved. If @category is NULL, the
next source mark can be of any category.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether @iter was moved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">an iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">category to search for, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_context_classes_at_iter"
              c:identifier="gtk_source_buffer_get_context_classes_at_iter"
              version="2.10">
        <doc xml:whitespace="preserve">Get all defined context classes at @iter.

terminated array of context class names.
Use g_strfreev() to free the array if it is no longer needed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new %NULL</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_highlight_matching_brackets"
              c:identifier="gtk_source_buffer_get_highlight_matching_brackets">
        <doc xml:whitespace="preserve">Determines whether bracket match highlighting is activated for the
source buffer.

brackets.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the source buffer will highlight matching</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_highlight_syntax"
              c:identifier="gtk_source_buffer_get_highlight_syntax">
        <doc xml:whitespace="preserve">Determines whether syntax highlighting is activated in the source
buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if syntax highlighting is enabled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_language"
              c:identifier="gtk_source_buffer_get_language">
        <doc xml:whitespace="preserve">Returns the #GtkSourceLanguage associated with the buffer,
see gtk_source_buffer_set_language().  The returned object should not be
unreferenced by the user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkSourceLanguage associated with the buffer, or %NULL.</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
      </method>
      <method name="get_max_undo_levels"
              c:identifier="gtk_source_buffer_get_max_undo_levels">
        <doc xml:whitespace="preserve">Determines the number of undo levels the buffer will track for
buffer edits.

-1 if no limit is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the maximum number of possible undo levels or</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_source_marks_at_iter"
              c:identifier="gtk_source_buffer_get_source_marks_at_iter"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the list of marks of the given category at @iter. If @category
is %NULL it returns all marks at @iter.

a newly allocated #GSList.</doc>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="Mark"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">an iterator.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">category to search for, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source_marks_at_line"
              c:identifier="gtk_source_buffer_get_source_marks_at_line"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the list of marks of the given category at @line.
If @category is NULL, all marks at @line are returned.

a newly allocated #GSList.</doc>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="Mark"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="line" transfer-ownership="none">
            <doc xml:whitespace="preserve">a line number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="category" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">category to search for, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_style_scheme"
              c:identifier="gtk_source_buffer_get_style_scheme">
        <doc xml:whitespace="preserve">Returns the #GtkSourceStyleScheme associated with the buffer,
see gtk_source_buffer_set_style_scheme().
The returned object should not be unreferenced by the user.

with the buffer, or %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkSourceStyleScheme associated</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
      </method>
      <method name="get_undo_manager"
              c:identifier="gtk_source_buffer_get_undo_manager">
        <doc xml:whitespace="preserve">Returns the #GtkSourceUndoManager associated with the buffer,
see gtk_source_buffer_set_undo_manager().  The returned object should not be
unreferenced by the user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkSourceUndoManager associated with the buffer, or %NULL.</doc>
          <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
        </return-value>
      </method>
      <method name="iter_backward_to_context_class_toggle"
              c:identifier="gtk_source_buffer_iter_backward_to_context_class_toggle"
              version="2.10">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether we found a context class toggle before @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="context_class" transfer-ownership="none">
            <doc xml:whitespace="preserve">the context class.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_forward_to_context_class_toggle"
              c:identifier="gtk_source_buffer_iter_forward_to_context_class_toggle"
              version="2.10">
        <doc xml:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether we found a context class toggle after @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="context_class" transfer-ownership="none">
            <doc xml:whitespace="preserve">the context class.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_has_context_class"
              c:identifier="gtk_source_buffer_iter_has_context_class"
              version="2.10">
        <doc xml:whitespace="preserve">Check if the class @context_klass is set on @iter.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="context_class" transfer-ownership="none">
            <doc xml:whitespace="preserve">class to search for.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="redo" c:identifier="gtk_source_buffer_redo">
        <doc xml:whitespace="preserve">Redoes the last undo operation.  Use gtk_source_buffer_can_redo()
to check whether a call to this function will have any effect.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove_source_marks"
              c:identifier="gtk_source_buffer_remove_source_marks"
              version="2.2">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">category to search for, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_matching_brackets"
              c:identifier="gtk_source_buffer_set_highlight_matching_brackets">
        <doc xml:whitespace="preserve">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.  You can specify the
style with the gtk_source_buffer_set_bracket_match_style()
function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:whitespace="preserve">%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">
        <doc xml:whitespace="preserve">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 language set with
gtk_source_buffer_set_language(). If @highlight is %FALSE, syntax highlighting
is disabled and all the GtkTextTag objects that have been added by the
syntax highlighting engine are removed from the buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE to enable syntax highlighting, %FALSE to disable it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_language"
              c:identifier="gtk_source_buffer_set_language">
        <doc xml:whitespace="preserve">Associate a #GtkSourceLanguage with the buffer. If @language is
not-%NULL and syntax highlighting is enabled (see gtk_source_buffer_set_highlight_syntax()),
the syntax patterns defined in @language will be used to highlight the text
contained in the buffer. If @language is %NULL, the text contained in the
buffer is not highlighted.

The buffer holds a reference to @language.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GtkSourceLanguage to set, or %NULL.</doc>
            <type name="Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_undo_levels"
              c:identifier="gtk_source_buffer_set_max_undo_levels">
        <doc xml:whitespace="preserve">Sets the number of undo levels for user actions the buffer will
track.  If the number of user actions exceeds the limit set by this
function, older actions will be discarded.

If @max_undo_levels is -1, no limit is set.

A new action is started whenever the function
gtk_text_buffer_begin_user_action() is called.  In general, this
happens whenever the user presses any key which modifies the
buffer, but the undo manager will try to merge similar consecutive
actions, such as multiple character insertions into one action.
But, inserting a newline does start a new action.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="max_undo_levels" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired maximum number of undo levels.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style_scheme"
              c:identifier="gtk_source_buffer_set_style_scheme">
        <doc xml:whitespace="preserve">Sets style scheme used by the buffer. If @scheme is %NULL no
style scheme is used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="scheme" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GtkSourceStyleScheme or %NULL.</doc>
            <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_undo_manager"
              c:identifier="gtk_source_buffer_set_undo_manager">
        <doc xml:whitespace="preserve">Set the buffer undo manager. If @manager is %NULL the default undo manager
will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="manager" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">A #GtkSourceUndoManager or %NULL.</doc>
            <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
          </parameter>
        </parameters>
      </method>
      <method name="undo" c:identifier="gtk_source_buffer_undo">
        <doc xml:whitespace="preserve">Undoes the last user action which modified the buffer.  Use
gtk_source_buffer_can_undo() to check whether a call to this
function will have any effect.

Actions are defined as groups of operations between a call to
gtk_text_buffer_begin_user_action() and
gtk_text_buffer_end_user_action(), or sequences of similar edits
(inserts or deletes) on the same line.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="can-redo" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="can-undo" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="highlight-matching-brackets"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether to highlight matching brackets in the buffer.</doc>
        <type name="gboolean"/>
      </property>
      <property name="highlight-syntax" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether to highlight syntax in the buffer.</doc>
        <type name="gboolean"/>
      </property>
      <property name="language" writable="1" transfer-ownership="none">
        <type name="Language"/>
      </property>
      <property name="max-undo-levels" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Number of undo levels for the buffer. -1 means no limit. This property
will only affect the default undo manager.</doc>
        <type name="gint"/>
      </property>
      <property name="style-scheme" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">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>
      <property name="undo-manager"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="UndoManager"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TextBuffer" c:type="GtkTextBuffer"/>
      </field>
      <field name="priv">
        <type name="BufferPrivate" c:type="GtkSourceBufferPrivate*"/>
      </field>
      <glib:signal name="bracket-matched" when="last" version="2.12">
        <doc xml:whitespace="preserve">Sets @iter to a valid iterator pointing to the matching bracket
if @state is #GTK_SOURCE_BRACKET_MATCH_FOUND. Otherwise @iter is
meaningless.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">iterator to initialize.</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">state of bracket matching</doc>
            <type name="BracketMatchType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="highlight-updated" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="redo" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="source-mark-updated" when="last">
        <doc xml:whitespace="preserve">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"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.TextMark"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="undo" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="BufferClass"
            c:type="GtkSourceBufferClass"
            glib:is-gtype-struct-for="Buffer">
      <field name="parent_class">
        <type name="Gtk.TextBufferClass" c:type="GtkTextBufferClass"/>
      </field>
      <field name="undo">
        <callback name="undo">
          <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>
          </parameters>
        </callback>
      </field>
      <field name="redo">
        <callback name="redo">
          <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>
          </parameters>
        </callback>
      </field>
      <field name="bracket_matched">
        <callback name="bracket_matched">
          <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="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved3" introspectable="0">
        <callback name="_gtk_source_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="BufferPrivate" c:type="GtkSourceBufferPrivate" disguised="1">
    </record>
    <constant name="COMPLETION_CAPABILITY_AUTOMATIC"
              value="standard::automatic"
              c:type="GTK_SOURCE_COMPLETION_CAPABILITY_AUTOMATIC">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="COMPLETION_CAPABILITY_INTERACTIVE"
              value="standard::interactive"
              c:type="GTK_SOURCE_COMPLETION_CAPABILITY_INTERACTIVE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <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">
      <virtual-method name="activate_proposal">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="hide" invoker="hide">
        <doc xml:whitespace="preserve">Hides the completion if it is active (visible).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="move_cursor">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <type name="Gtk.ScrollStep" c:type="GtkScrollStep"/>
          </parameter>
          <parameter name="num" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_page">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <type name="Gtk.ScrollStep" c:type="GtkScrollStep"/>
          </parameter>
          <parameter name="num" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_context">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="proposal_activated">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="add_provider"
              c:identifier="gtk_source_completion_add_provider"
              throws="1">
        <doc xml:whitespace="preserve">Add a new #GtkSourceCompletionProvider to the completion object. This will
add a reference @provider, so make sure to unref your own copy when you
no longer need it.

is provided, it will be set with the error and %FALSE is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @provider was successfully added, otherwise if @error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProvider.</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="block_interactive"
              c:identifier="gtk_source_completion_block_interactive">
        <doc xml:whitespace="preserve">Block interactive completion. This can be used to disable interactive
completion when inserting or deleting text from the buffer associated with
the completion. Use #gtk_source_completion_unblock_interactive to enable
interactive completion again.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="create_context"
              c:identifier="gtk_source_completion_create_context">
        <doc xml:whitespace="preserve">Create a new #GtkSourceCompletionContext for @completion. The position where
the completion occurs can be specified by @position. If @position is %NULL,
the current cursor position will be used.

The reference being returned is a 'floating' reference,
so if you invoke #gtk_source_completion_show with this context
you don't need to unref it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GtkSourceCompletionContext.</doc>
          <type name="CompletionContext" c:type="GtkSourceCompletionContext*"/>
        </return-value>
        <parameters>
          <parameter name="position" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GtkTextIter, or %NULL.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_info_window"
              c:identifier="gtk_source_completion_get_info_window">
        <doc xml:whitespace="preserve">The info widget is the window where the completion displays optional extra
information of the proposal.

associated with @completion.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The #GtkSourceCompletionInfo window</doc>
          <type name="CompletionInfo" c:type="GtkSourceCompletionInfo*"/>
        </return-value>
      </method>
      <method name="get_providers"
              c:identifier="gtk_source_completion_get_providers">
        <doc xml:whitespace="preserve">Get list of providers registered on @completion. The returned list is owned
by the completion and should not be freed.

list of #GtkSourceCompletionProvider.</doc>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="CompletionProvider"/>
          </type>
        </return-value>
      </method>
      <method name="get_view" c:identifier="gtk_source_completion_get_view">
        <doc xml:whitespace="preserve">The #GtkSourceView associated with @completion.

The #GtkSourceView associated with @completion.</doc>
        <return-value transfer-ownership="none">
          <type name="View" c:type="gpointer*"/>
        </return-value>
      </method>
      <method name="hide" c:identifier="gtk_source_completion_hide">
        <doc xml:whitespace="preserve">Hides the completion if it is active (visible).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="move_window"
              c:identifier="gtk_source_completion_move_window">
        <doc xml:whitespace="preserve">Move the completion window to a specific iter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_provider"
              c:identifier="gtk_source_completion_remove_provider"
              throws="1">
        <doc xml:whitespace="preserve">Remove @provider from the completion.

is provided, it will be set with the error and %FALSE is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @provider was successfully removed, otherwise if @error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProvider.</doc>
            <type name="CompletionProvider"
                  c:type="GtkSourceCompletionProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="gtk_source_completion_show">
        <doc xml:whitespace="preserve">Starts a new completion with the specified #GtkSourceCompletionContext and
a list of potential candidate providers for completion.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if it was possible to the show completion window.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="providers" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve"> a list of #GtkSourceCompletionProvider, or %NULL.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="CompletionProvider"/>
            </type>
          </parameter>
          <parameter name="context" transfer-ownership="full">
            <doc xml:whitespace="preserve">The #GtkSourceCompletionContext with which to start the completion.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unblock_interactive"
              c:identifier="gtk_source_completion_unblock_interactive">
        <doc xml:whitespace="preserve">Unblock interactive completion. This can be used after using
#gtk_source_completion_block_interactive to enable interactive completion
again.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="accelerators"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Number of keyboard accelerators to show for the first proposals. For
example, to activate the first proposal, the user can press
&lt;keycombo&gt;&lt;keycap&gt;Alt&lt;/keycap&gt;&lt;keycap&gt;1&lt;/keycap&gt;&lt;/keycombo&gt;.</doc>
        <type name="guint"/>
      </property>
      <property name="auto-complete-delay"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Determines the popup delay (in milliseconds) at which the completion
will be shown for interactive completion.</doc>
        <type name="guint"/>
      </property>
      <property name="proposal-page-size"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The scroll page size of the proposals in the completion window. In
other words, when &lt;keycap&gt;PageDown&lt;/keycap&gt; or
&lt;keycap&gt;PageUp&lt;/keycap&gt; is pressed, the selected
proposal becomes the one which is located one page size backward or
forward.</doc>
        <type name="guint"/>
      </property>
      <property name="provider-page-size"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The scroll page size of the provider pages in the completion window.
Not yet used.</doc>
        <type name="guint"/>
      </property>
      <property name="remember-info-visibility"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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"/>
      </property>
      <property name="select-on-show"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Determines whether the first proposal should be selected when the
completion is first shown.</doc>
        <type name="gboolean"/>
      </property>
      <property name="show-headers"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Determines whether provider headers should be shown in the proposal
list. It can be useful to disable when there is only one provider.</doc>
        <type name="gboolean"/>
      </property>
      <property name="show-icons"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Determines whether provider and proposal icons should be shown in
the completion popup.</doc>
        <type name="gboolean"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The #GtkSourceView bound to the completion object.</doc>
        <type name="View"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="CompletionPrivate" c:type="GtkSourceCompletionPrivate*"/>
      </field>
      <glib:signal name="activate-proposal" when="last" action="1">
        <doc xml:whitespace="preserve">The ::activate-proposal signal is a keybinding signal which gets
emitted when the user initiates a proposal activation.

Applications should not connect to it, but may emit it with
#g_signal_emit_by_name if they need to control the proposal activation
programmatically.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide" when="last" action="1">
        <doc xml:whitespace="preserve">Emitted when the completion window is hidden. The default handler
will actually hide the window.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="move-cursor" when="last" action="1">
        <doc xml:whitespace="preserve">The ::move-cursor signal is a keybinding signal which gets emitted when
the user initiates a cursor movement.

The &lt;keycap&gt;Up&lt;/keycap&gt;, &lt;keycap&gt;Down&lt;/keycap&gt;,
&lt;keycap&gt;PageUp&lt;/keycap&gt;, &lt;keycap&gt;PageDown&lt;/keycap&gt;,
&lt;keycap&gt;Home&lt;/keycap&gt; and &lt;keycap&gt;End&lt;/keycap&gt; keys are bound to the
normal behavior expected by those keys. The &lt;keycap&gt;PageDown&lt;/keycap&gt;
and &lt;keycap&gt;PageUp&lt;/keycap&gt; keys use the page size defined by the
#GtkSourceCompletion:proposal-page-size property.

Applications should not connect to it, but may emit it with
#g_signal_emit_by_name if they need to control the cursor
programmatically.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #GtkScrollStep by which to move the cursor</doc>
            <type name="Gtk.ScrollStep"/>
          </parameter>
          <parameter name="num" transfer-ownership="none">
            <doc xml:whitespace="preserve">The amount of steps to move the cursor</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-page" when="last" action="1">
        <doc xml:whitespace="preserve">The ::move-page signal is a keybinding signal which gets emitted when
the user initiates a page movement (i.e. switches between provider
pages).

&lt;keycombo&gt;&lt;keycap&gt;Control&lt;/keycap&gt;&lt;keycap&gt;Left&lt;/keycap&gt;&lt;/keycombo&gt;
is for going to the previous provider.
&lt;keycombo&gt;&lt;keycap&gt;Control&lt;/keycap&gt;&lt;keycap&gt;Right&lt;/keycap&gt;&lt;/keycombo&gt;
is for going to the next provider.
&lt;keycombo&gt;&lt;keycap&gt;Control&lt;/keycap&gt;&lt;keycap&gt;Home&lt;/keycap&gt;&lt;/keycombo&gt;
is for displaying all the providers.
&lt;keycombo&gt;&lt;keycap&gt;Control&lt;/keycap&gt;&lt;keycap&gt;End&lt;/keycap&gt;&lt;/keycombo&gt;
is for going to the last provider.

Applications should not connect to it, but may emit it with
#g_signal_emit_by_name if they need to control the page selection
programmatically.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #GtkScrollStep by which to move the page</doc>
            <type name="Gtk.ScrollStep"/>
          </parameter>
          <parameter name="num" transfer-ownership="none">
            <doc xml:whitespace="preserve">The amount of steps to move the page</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="populate-context" when="last" action="1">
        <doc xml:whitespace="preserve">Emitted just before starting to populate the completion with providers.
You can use this signal to add additional attributes in the context.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #GtkSourceCompletionContext for the current completion</doc>
            <type name="CompletionContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show" when="last" action="1">
        <doc xml:whitespace="preserve">Emitted when the completion window is shown. The default handler
will actually show the window.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <bitfield 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"/>
      <member name="interactive"
              value="1"
              c:identifier="GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE"
              glib:nick="interactive"/>
      <member name="user_requested"
              value="2"
              c:identifier="GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED"
              glib:nick="user-requested"/>
    </bitfield>
    <record name="CompletionClass"
            c:type="GtkSourceCompletionClass"
            glib:is-gtype-struct-for="Completion">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="proposal_activated">
        <callback name="proposal_activated">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show">
        <callback name="show">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide">
        <callback name="hide">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_context">
        <callback name="populate_context">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_cursor">
        <callback name="move_cursor">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="Gtk.ScrollStep" c:type="GtkScrollStep"/>
            </parameter>
            <parameter name="num" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_page">
        <callback name="move_page">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="Gtk.ScrollStep" c:type="GtkScrollStep"/>
            </parameter>
            <parameter name="num" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate_proposal">
        <callback name="activate_proposal">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="completion" transfer-ownership="none">
              <type name="Completion" c:type="GtkSourceCompletion*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="CompletionContext"
           c:symbol-prefix="completion_context"
           c:type="GtkSourceCompletionContext"
           parent="GObject.InitiallyUnowned"
           glib:type-name="GtkSourceCompletionContext"
           glib:get-type="gtk_source_completion_context_get_type"
           glib:type-struct="CompletionContextClass">
      <virtual-method name="cancelled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="add_proposals"
              c:identifier="gtk_source_completion_context_add_proposals">
        <doc xml:whitespace="preserve">Providers can use this function to add proposals to the completion. They
can do so asynchronously by means of the @finished argument. Providers must
ensure that they always call this function with @finished set to %TRUE
once each population (even if no proposals need to be added).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProvider.</doc>
            <type name="CompletionProvider" c:type="gpointer*"/>
          </parameter>
          <parameter name="proposals" transfer-ownership="none">
            <doc xml:whitespace="preserve">The list of proposals to add.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="CompletionProposal"/>
            </type>
          </parameter>
          <parameter name="finished" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether the provider is finished adding proposals.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_activation"
              c:identifier="gtk_source_completion_context_get_activation">
        <doc xml:whitespace="preserve">Get the context activation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The context activation.</doc>
          <type name="CompletionActivation"
                c:type="GtkSourceCompletionActivation"/>
        </return-value>
      </method>
      <method name="get_iter"
              c:identifier="gtk_source_completion_context_get_iter">
        <doc xml:whitespace="preserve">Get the iter at which the completion was invoked. Providers can use this
to determine how and if to match proposals.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="activation" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The completion activation</doc>
        <type name="CompletionActivation"/>
      </property>
      <property name="completion"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The #GtkSourceCompletion associated with the context.</doc>
        <type name="Completion"/>
      </property>
      <property name="iter" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The #GtkTextIter at which the completion is invoked.</doc>
        <type name="Gtk.TextIter"/>
      </property>
      <field name="parent">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
      <field name="priv">
        <type name="CompletionContextPrivate"
              c:type="GtkSourceCompletionContextPrivate*"/>
      </field>
      <glib:signal name="cancelled" when="last" action="1">
        <doc xml:whitespace="preserve">Emitted when the current population of proposals has been cancelled.
Providers adding proposals asynchronously should connect to this signal
to know when to cancel running proposal queries.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="CompletionContextClass"
            c:type="GtkSourceCompletionContextClass"
            glib:is-gtype-struct-for="CompletionContext">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="cancelled">
        <callback name="cancelled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="context" transfer-ownership="none">
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved3" introspectable="0">
        <callback name="_gtk_source_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="CompletionContextPrivate"
            c:type="GtkSourceCompletionContextPrivate"
            disguised="1">
    </record>
    <enumeration name="CompletionError"
                 glib:type-name="GtkSourceCompletionError"
                 glib:get-type="gtk_source_completion_error_get_type"
                 c:type="GtkSourceCompletionError"
                 glib:error-domain="gtk-source-completion-error-quark">
      <member name="already_bound"
              value="0"
              c:identifier="GTK_SOURCE_COMPLETION_ERROR_ALREADY_BOUND"
              glib:nick="already-bound"/>
      <member name="not_bound"
              value="1"
              c:identifier="GTK_SOURCE_COMPLETION_ERROR_NOT_BOUND"
              glib:nick="not-bound"/>
      <function name="quark" c:identifier="gtk_source_completion_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="CompletionInfo"
           c:symbol-prefix="completion_info"
           c:type="GtkSourceCompletionInfo"
           parent="Gtk.Window"
           glib:type-name="GtkSourceCompletionInfo"
           glib:get-type="gtk_source_completion_info_get_type"
           glib:type-struct="CompletionInfoClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gtk_source_completion_info_new">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new GtkSourceCompletionInfo.</doc>
          <type name="CompletionInfo" c:type="GtkSourceCompletionInfo*"/>
        </return-value>
      </constructor>
      <virtual-method name="before_show">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="get_widget"
              c:identifier="gtk_source_completion_info_get_widget">
        <doc xml:whitespace="preserve">Get the current content widget.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The current content widget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </method>
      <method name="move_to_iter"
              c:identifier="gtk_source_completion_info_move_to_iter">
        <doc xml:whitespace="preserve">Moves the #GtkSourceCompletionInfo to @iter. If @iter is %NULL @info is
moved to the cursor position. Moving will respect the #GdkGravity setting
of the info window and will ensure the line at @iter is not occluded by
the window.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextView on which the info window should be positioned.</doc>
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_widget"
              c:identifier="gtk_source_completion_info_set_widget">
        <doc xml:whitespace="preserve">Sets the content widget of the info window. If @widget does not fit within
the size requirements of the window, a #GtkScrolledWindow will automatically
be created and added to the window. See that the previous widget will lose
a reference and it can be destroyed, so if you do not want this to happen
you must g_object_ref() before calling this method.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GtkWidget.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Window" c:type="GtkWindow"/>
      </field>
      <field name="priv">
        <type name="CompletionInfoPrivate"
              c:type="GtkSourceCompletionInfoPrivate*"/>
      </field>
      <glib:signal name="before-show" when="last" action="1">
        <doc xml:whitespace="preserve">This signal is emitted before any "show" management. You can connect
to this signal if you want to change some properties or position
before the real "show".</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="CompletionInfoClass"
            c:type="GtkSourceCompletionInfoClass"
            glib:is-gtype-struct-for="CompletionInfo">
      <field name="parent_class">
        <type name="Gtk.WindowClass" c:type="GtkWindowClass"/>
      </field>
      <field name="before_show">
        <callback name="before_show">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="info" transfer-ownership="none">
              <type name="CompletionInfo" c:type="GtkSourceCompletionInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CompletionInfoPrivate"
            c:type="GtkSourceCompletionInfoPrivate"
            disguised="1">
    </record>
    <class name="CompletionItem"
           c:symbol-prefix="completion_item"
           c:type="GtkSourceCompletionItem"
           parent="GObject.Object"
           glib:type-name="GtkSourceCompletionItem"
           glib:get-type="gtk_source_completion_item_get_type"
           glib:type-struct="CompletionItemClass">
      <implements name="CompletionProposal"/>
      <constructor name="new" c:identifier="gtk_source_completion_item_new">
        <doc xml:whitespace="preserve">Create a new #GtkSourceCompletionItem with label @label, icon @icon and
extra information @info. Both @icon and @info can be %NULL in which case
there will be no icon shown and no extra information available.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GtkSourceCompletionItem.</doc>
          <type name="CompletionItem" c:type="GtkSourceCompletionItem*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <doc xml:whitespace="preserve">The item label.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">The item text.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The item icon.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The item extra information.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_stock"
                   c:identifier="gtk_source_completion_item_new_from_stock">
        <doc xml:whitespace="preserve">Creates a new #GtkSourceCompletionItem from a stock item. If @label is %NULL,
the stock label will be used.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GtkSourceCompletionItem.</doc>
          <type name="CompletionItem" c:type="GtkSourceCompletionItem*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The item label.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">The item text.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="stock" transfer-ownership="none">
            <doc xml:whitespace="preserve">The stock icon.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The item extra information.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_markup"
                   c:identifier="gtk_source_completion_item_new_with_markup">
        <doc xml:whitespace="preserve">Create a new #GtkSourceCompletionItem with markup label @markup, icon
@icon and extra information @info. Both @icon and @info can be %NULL in
which case there will be no icon shown and no extra information available.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GtkSourceCompletionItem.</doc>
          <type name="CompletionItem" c:type="GtkSourceCompletionItem*"/>
        </return-value>
        <parameters>
          <parameter name="markup" transfer-ownership="none">
            <doc xml:whitespace="preserve">The item markup label.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="preserve">The item text.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The item icon.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The item extra information.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="icon" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Icon to be shown for this proposal.</doc>
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="info" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Optional extra information to be shown for this proposal.</doc>
        <type name="utf8"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Label to be shown for this proposal.</doc>
        <type name="utf8"/>
      </property>
      <property name="markup" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Label with markup to be shown for this proposal.</doc>
        <type name="utf8"/>
      </property>
      <property name="text" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Proposal text.</doc>
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="CompletionItemPrivate"
              c:type="GtkSourceCompletionItemPrivate*"/>
      </field>
    </class>
    <record name="CompletionItemClass"
            c:type="GtkSourceCompletionItemClass"
            glib:is-gtype-struct-for="CompletionItem">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="CompletionItemPrivate"
            c:type="GtkSourceCompletionItemPrivate"
            disguised="1">
    </record>
    <record name="CompletionPrivate"
            c:type="GtkSourceCompletionPrivate"
            disguised="1">
    </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="CompletionProposalIface">
      <virtual-method name="changed" invoker="changed">
        <doc xml:whitespace="preserve">Emits the "changed" signal on @proposal. This should be called by
implementations whenever the name, icon or info of the proposal has
changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="equal" invoker="equal">
        <doc xml:whitespace="preserve">Get whether two proposal objects are the same.  This is used to (together
with #gtk_source_completion_proposal_hash) to match proposals in the
completion model. By default, it uses direct equality (#g_direct_equal).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @proposal and @object are the same proposal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="other" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_icon" invoker="get_icon">
        <doc xml:whitespace="preserve">Gets the icon of @proposal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The icon of @proposal.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_info" invoker="get_info">
        <doc xml:whitespace="preserve">Gets extra information associated to the proposal. This information will be
used to present the user with extra, detailed information about the
selected proposal. The returned string must be freed with g_free().

no extra information is associated to @proposal.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing extra information of @proposal or %NULL if</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_label" invoker="get_label">
        <doc xml:whitespace="preserve">Gets the label of @proposal. The label is shown in the list of proposals as
plain text. If you need any markup (such as bold or italic text), you have
to implement #gtk_source_completion_proposal_get_markup. The returned string
must be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the label of @proposal.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_markup" invoker="get_markup">
        <doc xml:whitespace="preserve">Gets the label of @proposal with markup. The label is shown in the list of
proposals and may contain markup. This will be used instead of
#gtk_source_completion_proposal_get_label if implemented. The returned string
must be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the label of @proposal with markup.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_text" invoker="get_text">
        <doc xml:whitespace="preserve">Gets the text of @proposal. The text that is inserted into
the text buffer when the proposal is activated by the default activation.
You are free to implement a custom activation handler in the provider and
not implement this function. For more information, see
gtk_source_completion_provider_activate_proposal(). The returned string must
be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the text of @proposal.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="hash" invoker="hash">
        <doc xml:whitespace="preserve">Get the hash value of @proposal. This is used to (together with
#gtk_source_completion_proposal_equal) to match proposals in the completion
model. By default, it uses a direct hash (#g_direct_hash).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The hash value of @proposal.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </virtual-method>
      <method name="changed"
              c:identifier="gtk_source_completion_proposal_changed">
        <doc xml:whitespace="preserve">Emits the "changed" signal on @proposal. This should be called by
implementations whenever the name, icon or info of the proposal has
changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="equal" c:identifier="gtk_source_completion_proposal_equal">
        <doc xml:whitespace="preserve">Get whether two proposal objects are the same.  This is used to (together
with #gtk_source_completion_proposal_hash) to match proposals in the
completion model. By default, it uses direct equality (#g_direct_equal).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @proposal and @object are the same proposal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="other" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icon"
              c:identifier="gtk_source_completion_proposal_get_icon">
        <doc xml:whitespace="preserve">Gets the icon of @proposal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The icon of @proposal.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </method>
      <method name="get_info"
              c:identifier="gtk_source_completion_proposal_get_info">
        <doc xml:whitespace="preserve">Gets extra information associated to the proposal. This information will be
used to present the user with extra, detailed information about the
selected proposal. The returned string must be freed with g_free().

no extra information is associated to @proposal.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing extra information of @proposal or %NULL if</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_label"
              c:identifier="gtk_source_completion_proposal_get_label">
        <doc xml:whitespace="preserve">Gets the label of @proposal. The label is shown in the list of proposals as
plain text. If you need any markup (such as bold or italic text), you have
to implement #gtk_source_completion_proposal_get_markup. The returned string
must be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the label of @proposal.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_markup"
              c:identifier="gtk_source_completion_proposal_get_markup">
        <doc xml:whitespace="preserve">Gets the label of @proposal with markup. The label is shown in the list of
proposals and may contain markup. This will be used instead of
#gtk_source_completion_proposal_get_label if implemented. The returned string
must be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the label of @proposal with markup.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_text"
              c:identifier="gtk_source_completion_proposal_get_text">
        <doc xml:whitespace="preserve">Gets the text of @proposal. The text that is inserted into
the text buffer when the proposal is activated by the default activation.
You are free to implement a custom activation handler in the provider and
not implement this function. For more information, see
gtk_source_completion_provider_activate_proposal(). The returned string must
be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the text of @proposal.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="hash" c:identifier="gtk_source_completion_proposal_hash">
        <doc xml:whitespace="preserve">Get the hash value of @proposal. This is used to (together with
#gtk_source_completion_proposal_equal) to match proposals in the completion
model. By default, it uses a direct hash (#g_direct_hash).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The hash value of @proposal.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <glib:signal name="changed" when="last" action="1">
        <doc xml:whitespace="preserve">Emitted when the proposal has changed. The completion popup
will react to this by updating the shown information.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="CompletionProposalIface"
            c:type="GtkSourceCompletionProposalIface"
            glib:is-gtype-struct-for="CompletionProposal">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_label">
        <callback name="get_label">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a new string containing the label of @proposal.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_markup">
        <callback name="get_markup">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a new string containing the label of @proposal with markup.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text">
        <callback name="get_text">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a new string containing the text of @proposal.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_icon">
        <callback name="get_icon">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The icon of @proposal.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_info">
        <callback name="get_info">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a new string containing extra information of @proposal or %NULL if</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hash">
        <callback name="hash">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The hash value of @proposal.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="equal">
        <callback name="equal">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if @proposal and @object are the same proposal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
            <parameter name="other" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="proposal" transfer-ownership="none">
              <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="CompletionProviderIface">
      <virtual-method name="activate_proposal" invoker="activate_proposal">
        <doc xml:whitespace="preserve">Activate @proposal at @iter. When this functions returns %FALSE, the default
activation of @proposal will take place which replaces the word at @iter
with the text of @proposal (see gtk_source_completion_proposal_get_text()).

Here is how the default activation selects the boundaries of the word to
replace. The end of the word is @iter. For the start of the word, it depends
on wheter a start iter is defined for @proposal (see
gtk_source_completion_provider_get_start_iter()). If a start iter is defined,
the start of the word is the start iter. Else, the word (as long as possible)
will contain only alphanumerical and the "_" characters.

%FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE to indicate that the proposal activation has been handled,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_activation" invoker="get_activation">
        <doc xml:whitespace="preserve">Get with what kind of activation the provider should be activated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a combination of #GtkSourceCompletionActivation.</doc>
          <type name="CompletionActivation"
                c:type="GtkSourceCompletionActivation"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_icon" invoker="get_icon">
        <doc xml:whitespace="preserve">Get the icon of the provider.

or %NULL if the provider does not have a special icon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The icon to be used for the provider,</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_info_widget" invoker="get_info_widget">
        <doc xml:whitespace="preserve">Get a customized info widget to show extra information of a proposal.
This allows for customized widgets on a proposal basis, although in general
providers will have the same custom widget for all their proposals and
@proposal can be ignored. The implementation of this function is optional.
If implemented, #gtk_source_completion_provider_update_info MUST also be
implemented. If not implemented, the default
#gtk_source_completion_proposal_get_info will be used to display extra
information about a #GtkSourceCompletionProposal.

information about @proposal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a custom #GtkWidget to show extra</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a currently selected #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_interactive_delay"
                      invoker="get_interactive_delay">
        <doc xml:whitespace="preserve">Get the delay in milliseconds before starting interactive completion for
this provider. A value of -1 indicates to use the default value as set
by #GtkSourceCompletion::auto-complete-delay.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the interactive delay in milliseconds.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name">
        <doc xml:whitespace="preserve">Get the name of the provider. This should be a translatable name for
display to the user. For example: _("Document word completion provider"). The
returned string must be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the name of the provider.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_priority" invoker="get_priority">
        <doc xml:whitespace="preserve">Get the provider priority. The priority determines the order in which
proposals appear in the completion popup. Higher priorities are sorted
before lower priorities. The default priority is 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the provider priority.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_start_iter" invoker="get_start_iter">
        <doc xml:whitespace="preserve">Get the #GtkTextIter at which the completion for @proposal starts. When
implemented, the completion can use this information to position the
completion window accordingly when a proposal is selected in the completion
window.

When the @proposal is activated, the default handler uses @iter as the start
of the word to replace. See
gtk_source_completion_provider_activate_proposal() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @iter was set for @proposal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="match" invoker="match">
        <doc xml:whitespace="preserve">Get whether the provider match the context of completion detailed in
@context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @provider matches the completion context, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate" invoker="populate">
        <doc xml:whitespace="preserve">Populate @context with proposals from @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_info" invoker="update_info">
        <doc xml:whitespace="preserve">Update extra information shown in @info for @proposal.
This function MUST be implemented when
#gtk_source_completion_provider_get_info_widget is implemented.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionInfo.</doc>
            <type name="CompletionInfo" c:type="GtkSourceCompletionInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate_proposal"
              c:identifier="gtk_source_completion_provider_activate_proposal">
        <doc xml:whitespace="preserve">Activate @proposal at @iter. When this functions returns %FALSE, the default
activation of @proposal will take place which replaces the word at @iter
with the text of @proposal (see gtk_source_completion_proposal_get_text()).

Here is how the default activation selects the boundaries of the word to
replace. The end of the word is @iter. For the start of the word, it depends
on wheter a start iter is defined for @proposal (see
gtk_source_completion_provider_get_start_iter()). If a start iter is defined,
the start of the word is the start iter. Else, the word (as long as possible)
will contain only alphanumerical and the "_" characters.

%FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE to indicate that the proposal activation has been handled,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_activation"
              c:identifier="gtk_source_completion_provider_get_activation">
        <doc xml:whitespace="preserve">Get with what kind of activation the provider should be activated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a combination of #GtkSourceCompletionActivation.</doc>
          <type name="CompletionActivation"
                c:type="GtkSourceCompletionActivation"/>
        </return-value>
      </method>
      <method name="get_icon"
              c:identifier="gtk_source_completion_provider_get_icon">
        <doc xml:whitespace="preserve">Get the icon of the provider.

or %NULL if the provider does not have a special icon.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The icon to be used for the provider,</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </method>
      <method name="get_info_widget"
              c:identifier="gtk_source_completion_provider_get_info_widget">
        <doc xml:whitespace="preserve">Get a customized info widget to show extra information of a proposal.
This allows for customized widgets on a proposal basis, although in general
providers will have the same custom widget for all their proposals and
@proposal can be ignored. The implementation of this function is optional.
If implemented, #gtk_source_completion_provider_update_info MUST also be
implemented. If not implemented, the default
#gtk_source_completion_proposal_get_info will be used to display extra
information about a #GtkSourceCompletionProposal.

information about @proposal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a custom #GtkWidget to show extra</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a currently selected #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_interactive_delay"
              c:identifier="gtk_source_completion_provider_get_interactive_delay">
        <doc xml:whitespace="preserve">Get the delay in milliseconds before starting interactive completion for
this provider. A value of -1 indicates to use the default value as set
by #GtkSourceCompletion::auto-complete-delay.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the interactive delay in milliseconds.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_name"
              c:identifier="gtk_source_completion_provider_get_name">
        <doc xml:whitespace="preserve">Get the name of the provider. This should be a translatable name for
display to the user. For example: _("Document word completion provider"). The
returned string must be freed with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the name of the provider.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_priority"
              c:identifier="gtk_source_completion_provider_get_priority">
        <doc xml:whitespace="preserve">Get the provider priority. The priority determines the order in which
proposals appear in the completion popup. Higher priorities are sorted
before lower priorities. The default priority is 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the provider priority.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_start_iter"
              c:identifier="gtk_source_completion_provider_get_start_iter">
        <doc xml:whitespace="preserve">Get the #GtkTextIter at which the completion for @proposal starts. When
implemented, the completion can use this information to position the
completion window accordingly when a proposal is selected in the completion
window.

When the @proposal is activated, the default handler uses @iter as the start
of the word to replace. See
gtk_source_completion_provider_activate_proposal() for more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @iter was set for @proposal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="gtk_source_completion_provider_match">
        <doc xml:whitespace="preserve">Get whether the provider match the context of completion detailed in
@context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @provider matches the completion context, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="populate"
              c:identifier="gtk_source_completion_provider_populate">
        <doc xml:whitespace="preserve">Populate @context with proposals from @provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
            <type name="CompletionContext"
                  c:type="GtkSourceCompletionContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_info"
              c:identifier="gtk_source_completion_provider_update_info">
        <doc xml:whitespace="preserve">Update extra information shown in @info for @proposal.
This function MUST be implemented when
#gtk_source_completion_provider_get_info_widget is implemented.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="proposal" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
            <type name="CompletionProposal"
                  c:type="GtkSourceCompletionProposal*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceCompletionInfo.</doc>
            <type name="CompletionInfo" c:type="GtkSourceCompletionInfo*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="CompletionProviderIface"
            c:type="GtkSourceCompletionProviderIface"
            glib:is-gtype-struct-for="CompletionProvider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_name">
        <callback name="get_name">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a new string containing the name of the provider.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_icon">
        <callback name="get_icon">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">The icon to be used for the provider,</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate">
        <callback name="populate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="match">
        <callback name="match">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if @provider matches the completion context, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_activation">
        <callback name="get_activation">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">a combination of #GtkSourceCompletionActivation.</doc>
            <type name="CompletionActivation"
                  c:type="GtkSourceCompletionActivation"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_info_widget">
        <callback name="get_info_widget">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">a custom #GtkWidget to show extra</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:whitespace="preserve">a currently selected #GtkSourceCompletionProposal.</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_info">
        <callback name="update_info">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionInfo.</doc>
              <type name="CompletionInfo" c:type="GtkSourceCompletionInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_start_iter">
        <callback name="get_start_iter">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if @iter was set for @proposal, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionContext.</doc>
              <type name="CompletionContext"
                    c:type="GtkSourceCompletionContext*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate_proposal">
        <callback name="activate_proposal">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE to indicate that the proposal activation has been handled,</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
            <parameter name="proposal" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceCompletionProposal.</doc>
              <type name="CompletionProposal"
                    c:type="GtkSourceCompletionProposal*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_interactive_delay">
        <callback name="get_interactive_delay">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the interactive delay in milliseconds.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_priority">
        <callback name="get_priority">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the provider priority.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="CompletionProvider"
                    c:type="GtkSourceCompletionProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </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">
      <implements name="CompletionProvider"/>
      <constructor name="new" c:identifier="gtk_source_completion_words_new">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GtkSourceCompletionWords provider</doc>
          <type name="CompletionWords" c:type="GtkSourceCompletionWords*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">The name for the provider</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">A specific icon for the provider</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="register"
              c:identifier="gtk_source_completion_words_register">
        <doc xml:whitespace="preserve">Registers @buffer in the @words provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Unregisters @buffer from teh @words provider.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextBuffer</doc>
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="interactive-delay"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint"/>
      </property>
      <property name="minimum-word-size"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint"/>
      </property>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="priority"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint"/>
      </property>
      <property name="proposals-batch-size"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint"/>
      </property>
      <property name="scan-batch-size"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="CompletionWordsPrivate"
              c:type="GtkSourceCompletionWordsPrivate*"/>
      </field>
    </class>
    <record name="CompletionWordsClass"
            c:type="GtkSourceCompletionWordsClass"
            glib:is-gtype-struct-for="CompletionWords">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="CompletionWordsPrivate"
            c:type="GtkSourceCompletionWordsPrivate"
            disguised="1">
    </record>
    <bitfield name="DrawSpacesFlags"
              glib:type-name="GtkSourceDrawSpacesFlags"
              glib:get-type="gtk_source_draw_spaces_flags_get_type"
              c:type="GtkSourceDrawSpacesFlags">
      <doc xml:whitespace="preserve">GtkSourceDrawSpacesFlags determine what kind of spaces whould be drawn. If none
of GTK_SOURCE_DRAW_SPACES_LEADING, GTK_SOURCE_DRAW_SPACES_TEXT or
GTK_SOURCE_DRAW_SPACES_TRAILING is specified, whitespaces at any position in
the line will be drawn (i.e. it has the same effect as specifying all of them).</doc>
      <member name="space"
              value="1"
              c:identifier="GTK_SOURCE_DRAW_SPACES_SPACE"
              glib:nick="space"/>
      <member name="tab"
              value="2"
              c:identifier="GTK_SOURCE_DRAW_SPACES_TAB"
              glib:nick="tab"/>
      <member name="newline"
              value="4"
              c:identifier="GTK_SOURCE_DRAW_SPACES_NEWLINE"
              glib:nick="newline"/>
      <member name="nbsp"
              value="8"
              c:identifier="GTK_SOURCE_DRAW_SPACES_NBSP"
              glib:nick="nbsp"/>
      <member name="leading"
              value="16"
              c:identifier="GTK_SOURCE_DRAW_SPACES_LEADING"
              glib:nick="leading"/>
      <member name="text"
              value="32"
              c:identifier="GTK_SOURCE_DRAW_SPACES_TEXT"
              glib:nick="text"/>
      <member name="trailing"
              value="64"
              c:identifier="GTK_SOURCE_DRAW_SPACES_TRAILING"
              glib:nick="trailing"/>
      <member name="all"
              value="127"
              c:identifier="GTK_SOURCE_DRAW_SPACES_ALL"
              glib:nick="all"/>
    </bitfield>
    <class name="Gutter"
           c:symbol-prefix="gutter"
           c:type="GtkSourceGutter"
           parent="GObject.Object"
           glib:type-name="GtkSourceGutter"
           glib:get-type="gtk_source_gutter_get_type"
           glib:type-struct="GutterClass">
      <method name="get_padding" c:identifier="gtk_source_gutter_get_padding">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="xpad" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="ypad" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_renderer_at_pos"
              c:identifier="gtk_source_gutter_get_renderer_at_pos">
        <doc xml:whitespace="preserve">Finds the #GtkSourceGutterRenderer at (x, y).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the renderer at (x, y) or %NULL.</doc>
          <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">The x position to get identified.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">The y position to get identified.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_window"
              c:identifier="gtk_source_gutter_get_window"
              version="2.8">
        <doc xml:whitespace="preserve">Get the #GdkWindow of the gutter. The window will only be available when the
gutter has at least one, non-zero width, cell renderer packed.

if the gutter has no window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GdkWindow of the gutter, or %NULL</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
      </method>
      <method name="insert"
              c:identifier="gtk_source_gutter_insert"
              version="3.0">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if operation succeeded. Otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a gutter renderer (must inherit from #GtkSourceGutterRenderer).</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">the renderer position.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_draw"
              c:identifier="gtk_source_gutter_queue_draw"
              version="2.8">
        <doc xml:whitespace="preserve">Invalidates the drawable area of the gutter. You can use this to force a
redraw of the gutter if something has changed and needs to be redrawn.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove"
              c:identifier="gtk_source_gutter_remove"
              version="2.8">
        <doc xml:whitespace="preserve">Removes @renderer from @gutter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceGutterRenderer.</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reorder"
              c:identifier="gtk_source_gutter_reorder"
              version="2.8">
        <doc xml:whitespace="preserve">Reorders @renderer in @gutter to new @position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkCellRenderer.</doc>
            <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new renderer position.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_padding" c:identifier="gtk_source_gutter_set_padding">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="xpad" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ypad" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The #GtkSourceView of the gutter</doc>
        <type name="View"/>
      </property>
      <property name="window-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The text window type on which the window is placed</doc>
        <type name="Gtk.TextWindowType"/>
      </property>
      <property name="xpad"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint"/>
      </property>
      <property name="ypad"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="GutterPrivate" c:type="GtkSourceGutterPrivate*"/>
      </field>
    </class>
    <record name="GutterClass"
            c:type="GtkSourceGutterClass"
            glib:is-gtype-struct-for="Gutter">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="GutterPrivate" c:type="GtkSourceGutterPrivate" disguised="1">
    </record>
    <class name="GutterRenderer"
           c:symbol-prefix="gutter_renderer"
           c:type="GtkSourceGutterRenderer"
           parent="GObject.InitiallyUnowned"
           abstract="1"
           glib:type-name="GtkSourceGutterRenderer"
           glib:get-type="gtk_source_gutter_renderer_get_type"
           glib:type-struct="GutterRendererClass">
      <virtual-method name="activate" invoker="activate">
        <doc xml:whitespace="preserve">Emits the ::activate signal of the renderer. This is called from
#GtkSourceGutter and should never have to be called manually.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">a #GdkRectangle of the cell area where the renderer is activated</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the event that triggered the activation</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="begin" invoker="begin">
        <doc xml:whitespace="preserve">Called when drawing a region begins. The region to be drawn is indicated
by @start and @end. The purpose is to allow the implementation to precompute
some state before the ::draw method is called for each cell.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #cairo_t</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="background_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="cell_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="change_buffer">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="old_buffer" transfer-ownership="none">
            <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="change_view">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="old_view" transfer-ownership="none">
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw" invoker="draw">
        <doc xml:whitespace="preserve">Main renderering method. Implementations should implement this method to
draw onto the cairo context. The @background_area indicates total area of
the cell (without padding or margin) to be drawn. The @cell_area indicates
the area where content can be drawn (text, images, etc).

The @state argument indicates the current state of the renderer and should
be taken into account to properly draw the different possible states
(cursor, prelit, selected) if appropriate.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:whitespace="preserve">the cairo render context</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="background_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle indicating the total area to be drawn</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="cell_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle indicating the area to draw content</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceGutterRendererState</doc>
            <type name="GutterRendererState"
                  c:type="GtkSourceGutterRendererState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end" invoker="end">
        <doc xml:whitespace="preserve">Called when drawing a region of lines has ended.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="query_activatable" invoker="query_activatable">
        <doc xml:whitespace="preserve">Get whether the renderer is activatable at the location in @event. This is
called from #GtkSourceGutter to determine whether a renderer is activatable
using the mouse pointer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the renderer can be activated, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">a #GdkRectangle of the cell area to be activated</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the event that triggered the query</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_data" invoker="query_data">
        <doc xml:whitespace="preserve">Emit the ::query-data signal. This function is called to query for data
just before rendering a cell. This is called from the #GtkSourceGutter.
Implementations can override the default signal handler or can connect
a signal handler externally to the ::query-data signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceGutterRendererState.</doc>
            <type name="GutterRendererState"
                  c:type="GtkSourceGutterRendererState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_tooltip" invoker="query_tooltip">
        <doc xml:whitespace="preserve">Emits the ::query-tooltip signal. This function is called from
#GtkSourceGutter. Implementations can override the default signal handler
or can connect to the signal externally.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the tooltip has been set, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle.</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">The x position of the tooltip.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">The y position of the tooltip.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTooltip.</doc>
            <type name="Gtk.Tooltip" c:type="GtkTooltip*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="queue_draw" invoker="queue_draw">
        <doc xml:whitespace="preserve">Emits the ::queue-draw signal of the renderer. Call this from an
implementation to inform that the renderer has changed such that it needs
to redraw.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="activate"
              c:identifier="gtk_source_gutter_renderer_activate">
        <doc xml:whitespace="preserve">Emits the ::activate signal of the renderer. This is called from
#GtkSourceGutter and should never have to be called manually.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">a #GdkRectangle of the cell area where the renderer is activated</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the event that triggered the activation</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin" c:identifier="gtk_source_gutter_renderer_begin">
        <doc xml:whitespace="preserve">Called when drawing a region begins. The region to be drawn is indicated
by @start and @end. The purpose is to allow the implementation to precompute
some state before the ::draw method is called for each cell.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #cairo_t</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="background_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="cell_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="draw" c:identifier="gtk_source_gutter_renderer_draw">
        <doc xml:whitespace="preserve">Main renderering method. Implementations should implement this method to
draw onto the cairo context. The @background_area indicates total area of
the cell (without padding or margin) to be drawn. The @cell_area indicates
the area where content can be drawn (text, images, etc).

The @state argument indicates the current state of the renderer and should
be taken into account to properly draw the different possible states
(cursor, prelit, selected) if appropriate.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:whitespace="preserve">the cairo render context</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="background_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle indicating the total area to be drawn</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="cell_area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle indicating the area to draw content</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceGutterRendererState</doc>
            <type name="GutterRendererState"
                  c:type="GtkSourceGutterRendererState"/>
          </parameter>
        </parameters>
      </method>
      <method name="end" c:identifier="gtk_source_gutter_renderer_end">
        <doc xml:whitespace="preserve">Called when drawing a region of lines has ended.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_alignment"
              c:identifier="gtk_source_gutter_renderer_get_alignment">
        <doc xml:whitespace="preserve">Get the x-alignment and y-alignment of the gutter renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="xalign"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for the x-alignment (can be %NULL)</doc>
            <type name="gfloat" c:type="gfloat*"/>
          </parameter>
          <parameter name="yalign"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for the y-alignment (can be %NULL)</doc>
            <type name="gfloat" c:type="gfloat*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alignment_mode"
              c:identifier="gtk_source_gutter_renderer_get_alignment_mode">
        <doc xml:whitespace="preserve">Get the alignment mode. The alignment mode describes the manner in which the
renderer is aligned (see :xalign and :yalign).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceGutterRendererAlignmentMode</doc>
          <type name="GutterRendererAlignmentMode"
                c:type="GtkSourceGutterRendererAlignmentMode"/>
        </return-value>
      </method>
      <method name="get_background"
              c:identifier="gtk_source_gutter_renderer_get_background">
        <doc xml:whitespace="preserve">Get the background color of the renderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the background color is set, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">return value for a #GdkRGBA</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_padding"
              c:identifier="gtk_source_gutter_renderer_get_padding">
        <doc xml:whitespace="preserve">Get the x-padding and y-padding of the gutter renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="xpad"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for the x-padding (can be %NULL)</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="ypad"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for the y-padding (can be %NULL)</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="gtk_source_gutter_renderer_get_size">
        <doc xml:whitespace="preserve">Get the size of the renderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the size of the renderer.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_view"
              c:identifier="gtk_source_gutter_renderer_get_view">
        <doc xml:whitespace="preserve">Get the view associated to the gutter renderer</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkTextView</doc>
          <type name="Gtk.TextView" c:type="GtkTextView*"/>
        </return-value>
      </method>
      <method name="get_visible"
              c:identifier="gtk_source_gutter_renderer_get_visible">
        <doc xml:whitespace="preserve">Get whether the gutter renderer is visible.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the renderer is visible, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_window_type"
              c:identifier="gtk_source_gutter_renderer_get_window_type">
        <doc xml:whitespace="preserve">Get the #GtkTextWindowType associated with the gutter renderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkTextWindowType</doc>
          <type name="Gtk.TextWindowType" c:type="GtkTextWindowType"/>
        </return-value>
      </method>
      <method name="query_activatable"
              c:identifier="gtk_source_gutter_renderer_query_activatable">
        <doc xml:whitespace="preserve">Get whether the renderer is activatable at the location in @event. This is
called from #GtkSourceGutter to determine whether a renderer is activatable
using the mouse pointer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the renderer can be activated, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">a #GdkRectangle of the cell area to be activated</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the event that triggered the query</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_data"
              c:identifier="gtk_source_gutter_renderer_query_data">
        <doc xml:whitespace="preserve">Emit the ::query-data signal. This function is called to query for data
just before rendering a cell. This is called from the #GtkSourceGutter.
Implementations can override the default signal handler or can connect
a signal handler externally to the ::query-data signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceGutterRendererState.</doc>
            <type name="GutterRendererState"
                  c:type="GtkSourceGutterRendererState"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_tooltip"
              c:identifier="gtk_source_gutter_renderer_query_tooltip">
        <doc xml:whitespace="preserve">Emits the ::query-tooltip signal. This function is called from
#GtkSourceGutter. Implementations can override the default signal handler
or can connect to the signal externally.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the tooltip has been set, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle.</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">The x position of the tooltip.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">The y position of the tooltip.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTooltip.</doc>
            <type name="Gtk.Tooltip" c:type="GtkTooltip*"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_draw"
              c:identifier="gtk_source_gutter_renderer_queue_draw">
        <doc xml:whitespace="preserve">Emits the ::queue-draw signal of the renderer. Call this from an
implementation to inform that the renderer has changed such that it needs
to redraw.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_alignment"
              c:identifier="gtk_source_gutter_renderer_set_alignment">
        <doc xml:whitespace="preserve">Set the alignment of the gutter renderer. Both @xalign and @yalign can be
-1, which means the values will not be changed (this allows changing only
one of the values).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="xalign" transfer-ownership="none">
            <doc xml:whitespace="preserve">the x-alignment</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="yalign" transfer-ownership="none">
            <doc xml:whitespace="preserve">the y-alignment</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_alignment_mode"
              c:identifier="gtk_source_gutter_renderer_set_alignment_mode">
        <doc xml:whitespace="preserve">Set the alignment mode. The alignment mode describes the manner in which the
renderer is aligned (see :xalign and :yalign).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceGutterRendererAlignmentMode</doc>
            <type name="GutterRendererAlignmentMode"
                  c:type="GtkSourceGutterRendererAlignmentMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_background"
              c:identifier="gtk_source_gutter_renderer_set_background">
        <doc xml:whitespace="preserve">Set the background color of the renderer. If @color is set to %NULL, the
renderer will not have a background color.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GdkRGBA or %NULL</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_padding"
              c:identifier="gtk_source_gutter_renderer_set_padding">
        <doc xml:whitespace="preserve">Set the padding of the gutter renderer. Both @xpad and @ypad can be
-1, which means the values will not be changed (this allows changing only
one of the values).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="xpad" transfer-ownership="none">
            <doc xml:whitespace="preserve">the x-padding</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ypad" transfer-ownership="none">
            <doc xml:whitespace="preserve">the y-padding</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="gtk_source_gutter_renderer_set_size">
        <doc xml:whitespace="preserve">Sets the size of the renderer. A value of -1 specifies that the size
is to be determined dynamically.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="preserve">the size</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible"
              c:identifier="gtk_source_gutter_renderer_set_visible">
        <doc xml:whitespace="preserve">Set whether the gutter renderer is visible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:whitespace="preserve">the visibility</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="alignment-mode"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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="background-rgba" writable="1" transfer-ownership="none">
        <type name="Gdk.RGBA"/>
      </property>
      <property name="background-set"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="size"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint"/>
      </property>
      <property name="view" transfer-ownership="none">
        <doc xml:whitespace="preserve">The view on which the renderer is placed.</doc>
        <type name="Gtk.TextView"/>
      </property>
      <property name="visible"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The visibility of the renderer.</doc>
        <type name="gboolean"/>
      </property>
      <property name="window-type" transfer-ownership="none">
        <doc xml:whitespace="preserve">The window type of the view on which the renderer is placed (left,
or right).</doc>
        <type name="Gtk.TextWindowType"/>
      </property>
      <property name="xalign"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The x-alignment of the renderer.</doc>
        <type name="gfloat"/>
      </property>
      <property name="xpad"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The x-padding of the renderer.</doc>
        <type name="gint"/>
      </property>
      <property name="yalign"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The y-alignment of the renderer.</doc>
        <type name="gfloat"/>
      </property>
      <property name="ypad"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The y-padding of the renderer.</doc>
        <type name="gint"/>
      </property>
      <field name="parent">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="GutterRendererPrivate"
              c:type="GtkSourceGutterRendererPrivate*"/>
      </field>
      <glib:signal name="activate" when="last">
        <doc xml:whitespace="preserve">The ::activate signal is emitted when the renderer is
activated.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="cairo.RectangleInt"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the event that caused the activation</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-activatable" when="last">
        <doc xml:whitespace="preserve">The ::query-activatable signal is emitted when the renderer
can possibly be activated.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="cairo.RectangleInt"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GdkEvent that is causing the activatable query</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-data" when="last">
        <doc xml:whitespace="preserve">The ::query-data signal is emitted when the renderer needs
to be filled with data just before a cell is drawn. This can
be used by general renderer implementations to allow render
data to be filled in externally.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:whitespace="preserve">the renderer state</doc>
            <type name="GutterRendererState"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-tooltip" when="last">
        <doc xml:whitespace="preserve">The ::query-tooltip signal is emitted when the renderer can
show a tooltip.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRectangle</doc>
            <type name="cairo.RectangleInt"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:whitespace="preserve">the x position (in window coordinates)</doc>
            <type name="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:whitespace="preserve">the y position (in window coordinates)</doc>
            <type name="gint"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTooltip</doc>
            <type name="Gtk.Tooltip"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="queue-draw" when="last">
        <doc xml:whitespace="preserve">The ::queue-draw signal is emitted when the renderer needs
to be redrawn. Use #gtk_source_gutter_renderer_queue_draw
to emit this signal from an implementation of the
#GtkSourceGutterRenderer interface.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <enumeration name="GutterRendererAlignmentMode"
                 glib:type-name="GtkSourceGutterRendererAlignmentMode"
                 glib:get-type="gtk_source_gutter_renderer_alignment_mode_get_type"
                 c:type="GtkSourceGutterRendererAlignmentMode">
      <member name="cell"
              value="0"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_CELL"
              glib:nick="cell"/>
      <member name="first"
              value="1"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_FIRST"
              glib:nick="first"/>
      <member name="last"
              value="2"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_LAST"
              glib:nick="last"/>
    </enumeration>
    <record name="GutterRendererClass"
            c:type="GtkSourceGutterRendererClass"
            glib:is-gtype-struct-for="GutterRenderer">
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
      <field name="begin">
        <callback name="begin">
          <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="cr" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #cairo_t</doc>
              <type name="cairo.Context" c:type="cairo_t*"/>
            </parameter>
            <parameter name="background_area" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GdkRectangle</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="cell_area" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GdkRectangle</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw">
        <callback name="draw">
          <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="cr" transfer-ownership="none">
              <doc xml:whitespace="preserve">the cairo render context</doc>
              <type name="cairo.Context" c:type="cairo_t*"/>
            </parameter>
            <parameter name="background_area" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GdkRectangle indicating the total area to be drawn</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="cell_area" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GdkRectangle indicating the area to draw content</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceGutterRendererState</doc>
              <type name="GutterRendererState"
                    c:type="GtkSourceGutterRendererState"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end">
        <callback name="end">
          <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">
          <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="old_view" transfer-ownership="none">
              <type name="Gtk.TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="change_buffer">
        <callback name="change_buffer">
          <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="old_buffer" transfer-ownership="none">
              <type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_activatable">
        <callback name="query_activatable">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%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">
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">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:whitespace="preserve">a #GdkRectangle of the cell area to be activated</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:whitespace="preserve">the event that triggered the query</doc>
              <type name="Gdk.Event" c:type="GdkEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate">
        <callback name="activate">
          <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="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">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:whitespace="preserve">a #GdkRectangle of the cell area where the renderer is activated</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:whitespace="preserve">the event that triggered the activation</doc>
              <type name="Gdk.Event" c:type="GdkEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="queue_draw">
        <callback name="queue_draw">
          <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="query_tooltip">
        <callback name="query_tooltip">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if the tooltip has been set, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="renderer" transfer-ownership="none">
              <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GdkRectangle.</doc>
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <doc xml:whitespace="preserve">The x position of the tooltip.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <doc xml:whitespace="preserve">The y position of the tooltip.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="tooltip" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTooltip.</doc>
              <type name="Gtk.Tooltip" c:type="GtkTooltip*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_data">
        <callback name="query_data">
          <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="start" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkTextIter.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GtkSourceGutterRendererState.</doc>
              <type name="GutterRendererState"
                    c:type="GtkSourceGutterRendererState"/>
            </parameter>
          </parameters>
        </callback>
      </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">
      <constructor name="new"
                   c:identifier="gtk_source_gutter_renderer_pixbuf_new">
        <doc xml:whitespace="preserve">Create a new #GtkSourceGutterRendererPixbuf.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Get the gicon of the renderer</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
      </method>
      <method name="get_icon_name"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_icon_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_pixbuf"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_pixbuf">
        <doc xml:whitespace="preserve">Get the pixbuf of the renderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </method>
      <method name="get_stock_id"
              c:identifier="gtk_source_gutter_renderer_pixbuf_get_stock_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="set_gicon"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_gicon">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icon" transfer-ownership="none">
            <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icon_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_pixbuf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stock_id"
              c:identifier="gtk_source_gutter_renderer_pixbuf_set_stock_id">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="stock_id" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="gicon" writable="1" transfer-ownership="none">
        <type name="Gio.Icon"/>
      </property>
      <property name="icon-name" writable="1" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="pixbuf" writable="1" transfer-ownership="none">
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="stock-id" writable="1" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GutterRenderer" c:type="GtkSourceGutterRenderer"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="GutterRendererPixbufPrivate"
              c:type="GtkSourceGutterRendererPixbufPrivate*"/>
      </field>
    </class>
    <record name="GutterRendererPixbufClass"
            c:type="GtkSourceGutterRendererPixbufClass"
            glib:is-gtype-struct-for="GutterRendererPixbuf">
      <field name="parent_class" readable="0" private="1">
        <type name="GutterRendererClass"
              c:type="GtkSourceGutterRendererClass"/>
      </field>
    </record>
    <record name="GutterRendererPixbufPrivate"
            c:type="GtkSourceGutterRendererPixbufPrivate"
            disguised="1">
    </record>
    <record name="GutterRendererPrivate"
            c:type="GtkSourceGutterRendererPrivate"
            disguised="1">
    </record>
    <bitfield name="GutterRendererState"
              glib:type-name="GtkSourceGutterRendererState"
              glib:get-type="gtk_source_gutter_renderer_state_get_type"
              c:type="GtkSourceGutterRendererState">
      <doc xml:whitespace="preserve">line on which the insert cursor is currently positioned
over the activatable area of the renderer
a line in the buffer which contains part of the selection</doc>
      <member name="normal"
              value="0"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_STATE_NORMAL"
              glib:nick="normal"/>
      <member name="cursor"
              value="1"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_STATE_CURSOR"
              glib:nick="cursor"/>
      <member name="prelit"
              value="2"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_STATE_PRELIT"
              glib:nick="prelit"/>
      <member name="selected"
              value="4"
              c:identifier="GTK_SOURCE_GUTTER_RENDERER_STATE_SELECTED"
              glib:nick="selected"/>
    </bitfield>
    <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">
      <constructor name="new"
                   c:identifier="gtk_source_gutter_renderer_text_new">
        <doc xml:whitespace="preserve">Create a new #GtkSourceGutterRendererText.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A #GtkSourceGutterRenderer</doc>
          <type name="GutterRenderer" c:type="GtkSourceGutterRenderer*"/>
        </return-value>
      </constructor>
      <method name="measure"
              c:identifier="gtk_source_gutter_renderer_text_measure">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="measure_markup"
              c:identifier="gtk_source_gutter_renderer_text_measure_markup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="markup" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_markup"
              c:identifier="gtk_source_gutter_renderer_text_set_markup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="markup" transfer-ownership="none">
            <type name="utf8" c:type="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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="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">
        <type name="utf8"/>
      </property>
      <property name="text"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GutterRenderer" c:type="GtkSourceGutterRenderer"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="GutterRendererTextPrivate"
              c:type="GtkSourceGutterRendererTextPrivate*"/>
      </field>
    </class>
    <record name="GutterRendererTextClass"
            c:type="GtkSourceGutterRendererTextClass"
            glib:is-gtype-struct-for="GutterRendererText">
      <field name="parent_class" readable="0" private="1">
        <type name="GutterRendererClass"
              c:type="GtkSourceGutterRendererClass"/>
      </field>
    </record>
    <record name="GutterRendererTextPrivate"
            c:type="GtkSourceGutterRendererTextPrivate"
            disguised="1">
    </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">
      <method name="get_globs" c:identifier="gtk_source_language_get_globs">
        <doc xml:whitespace="preserve">Returns the globs associated to this language. This is just
an utility wrapper around gtk_source_language_get_metadata() to
retrieve the "globs" metadata property and split it into an array.

%NULL terminated array containing the globs or %NULL if no globs are found.
The returned array must be freed with g_strfreev().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_hidden" c:identifier="gtk_source_language_get_hidden">
        <doc xml:whitespace="preserve">Returns whether the language should be hidden from the user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the language should be hidden, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="gtk_source_language_get_id">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the ID of @language.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_metadata"
              c:identifier="gtk_source_language_get_metadata">
        <doc xml:whitespace="preserve">or %NULL if language doesn't contain that metadata property.
The returned string is owned by @language and should not be freed
or modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">value of property @name stored in the metadata of @language</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">metadata property name.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mime_types"
              c:identifier="gtk_source_language_get_mime_types">
        <doc xml:whitespace="preserve">Returns the mime types associated to this language. This is just
an utility wrapper around gtk_source_language_get_metadata() to
retrieve the "mimetypes" metadata property and split it into an
array.

%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>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_name" c:identifier="gtk_source_language_get_name">
        <doc xml:whitespace="preserve">Returns the localized name of the language.
The returned string is owned by @language and should not be freed
or modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the name of @language.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_section"
              c:identifier="gtk_source_language_get_section">
        <doc xml:whitespace="preserve">Returns the localized section of the language.
Each language belong to a section (ex. HTML belogs to the
Markup section).
The returned string is owned by @language and should not be freed
or modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the section of @language.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_style_fallback"
              c:identifier="gtk_source_language_get_style_fallback"
              version="3.4">
        <doc xml:whitespace="preserve">Returns the ID of the style to use if the specified @style_id
is not present in the current style scheme.

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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the ID of the style to use if the specified @style_id</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="style_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a style ID.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_style_ids"
              c:identifier="gtk_source_language_get_style_ids">
        <doc xml:whitespace="preserve">Returns the ids of the styles defined by this @language.

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>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a  %NULL terminated</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_style_name"
              c:identifier="gtk_source_language_get_style_name">
        <doc xml:whitespace="preserve">Returns the name of the style with ID @style_id defined by this @language.

%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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the name of the style with ID @style_id defined by this @language or</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="style_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a style ID.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="hidden" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="id" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="name" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="section" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="LanguagePrivate" c:type="GtkSourceLanguagePrivate*"/>
      </field>
    </class>
    <record name="LanguageClass"
            c:type="GtkSourceLanguageClass"
            glib:is-gtype-struct-for="Language">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </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">
      <constructor name="new" c:identifier="gtk_source_language_manager_new">
        <doc xml:whitespace="preserve">Creates a new language manager. If you do not need more than one language
manager or a private language manager instance then use
gtk_source_language_manager_get_default() instead.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">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:whitespace="preserve">Returns the default #GtkSourceLanguageManager instance.

Return value is owned by GtkSourceView library and must not be unref'ed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceLanguageManager.</doc>
          <type name="LanguageManager" c:type="GtkSourceLanguageManager*"/>
        </return-value>
      </function>
      <method name="get_language"
              c:identifier="gtk_source_language_manager_get_language">
        <doc xml:whitespace="preserve">Gets the #GtkSourceLanguage identified by the given @id in the language
manager.

identified by the given @id. Return value is owned by @lm and should not
be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceLanguage, or %NULL if there is no language</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a language id.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_language_ids"
              c:identifier="gtk_source_language_manager_get_language_ids">
        <doc xml:whitespace="preserve">Returns the ids of the available languages.

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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a %NULL-terminated array of string</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_search_path"
              c:identifier="gtk_source_language_manager_get_search_path">
        <doc xml:whitespace="preserve">Gets the list directories where @lm looks for language files.

containg a list of language files directories.
The array is owned by @lm and must not be modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%NULL-terminated array</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="guess_language"
              c:identifier="gtk_source_language_manager_guess_language"
              version="2.4">
        <doc xml:whitespace="preserve">Picks a #GtkSourceLanguage 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:

&lt;informalexample&gt;&lt;programlisting&gt;
GtkSourceLanguage *lang;
lang = gtk_source_language_manager_guess_language (filename, NULL);
gtk_source_buffer_set_language (buffer, lang);
&lt;/programlisting&gt;&lt;/informalexample&gt;

or

&lt;informalexample&gt;&lt;programlisting&gt;
GtkSourceLanguage *lang = NULL;
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;
}

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

g_free (content_type);
&lt;/programlisting&gt;&lt;/informalexample&gt;

etc. Use gtk_source_language_get_mime_types() and gtk_source_language_get_globs()
if you need full control over file -&gt; language mapping.

for given @filename and/or @content_type. Return value is owned by @lm
and should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceLanguage, or %NULL if there is no suitable language</doc>
          <type name="Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a filename in Glib filename encoding, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="content_type"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a content type (as in GIO API), or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_path"
              c:identifier="gtk_source_language_manager_set_search_path">
        <doc xml:whitespace="preserve">Sets the list of directories where the @lm looks for
language files.
If @dirs is %NULL, the search path is reset to default.

&lt;note&gt;
&lt;para&gt;
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.
&lt;/para&gt;
&lt;/note&gt;</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dirs" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve"> a %NULL-terminated array of strings or %NULL.</doc>
            <array c:type="gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="language-ids" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="search-path" writable="1" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="LanguageManagerPrivate"
              c:type="GtkSourceLanguageManagerPrivate*"/>
      </field>
    </class>
    <record name="LanguageManagerClass"
            c:type="GtkSourceLanguageManagerClass"
            glib:is-gtype-struct-for="LanguageManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved3" introspectable="0">
        <callback name="_gtk_source_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved4" introspectable="0">
        <callback name="_gtk_source_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="LanguageManagerPrivate"
            c:type="GtkSourceLanguageManagerPrivate"
            disguised="1">
    </record>
    <record name="LanguagePrivate"
            c:type="GtkSourceLanguagePrivate"
            disguised="1">
    </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">
      <constructor name="new" c:identifier="gtk_source_mark_new" version="2.2">
        <doc xml:whitespace="preserve">Creates a text mark. Add it to a buffer using gtk_text_buffer_add_mark().
If name is NULL, the mark is anonymous; otherwise, the mark can be retrieved
by name using gtk_text_buffer_get_mark().
Normally marks are created using the utility function
gtk_source_buffer_create_mark().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GtkSourceMark that can be added using gtk_text_buffer_add_mark().</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">Name of the #GtkSourceMark, can be NULL when not using a name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:whitespace="preserve">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="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_category"
              c:identifier="gtk_source_mark_get_category"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the mark category.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the category of the #GtkSourceMark.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="next" c:identifier="gtk_source_mark_next" version="2.2">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the next #GtkSourceMark, or %NULL.</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <parameter name="category" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a string specifying the mark category, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prev" c:identifier="gtk_source_mark_prev" version="2.2">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the previous #GtkSourceMark, or %NULL.</doc>
          <type name="Mark" c:type="GtkSourceMark*"/>
        </return-value>
        <parameters>
          <parameter name="category" transfer-ownership="none">
            <doc xml:whitespace="preserve">a string specifying the mark category, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="category"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.TextMark" c:type="GtkTextMark"/>
      </field>
      <field name="priv">
        <type name="MarkPrivate" c:type="GtkSourceMarkPrivate*"/>
      </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">
      <constructor name="new" c:identifier="gtk_source_mark_attributes_new">
        <doc xml:whitespace="preserve">Creates a new source mark attributes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Stores background color in @background.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether background color for @attributes was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="background"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Gets a #GIcon to be used as a base for rendered icon. Note that the icon can
be %NULL if it wasn't set earlier.

not be unreffed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An icon. The icon belongs to @attributes and should</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
      </method>
      <method name="get_icon_name"
              c:identifier="gtk_source_mark_attributes_get_icon_name">
        <doc xml:whitespace="preserve">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.

should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">An icon name. The string belongs to @attributes and</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_pixbuf"
              c:identifier="gtk_source_mark_attributes_get_pixbuf">
        <doc xml:whitespace="preserve">Gets a #GdkPixbuf to be used as a base for rendered icon. Note that the
pixbuf can be %NULL if it wasn't set earlier.

should not be unreffed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A pixbuf. The pixbuf belongs to @attributes and</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </method>
      <method name="get_stock_id"
              c:identifier="gtk_source_mark_attributes_get_stock_id">
        <doc xml:whitespace="preserve">Gets a stock id of an icon used by this attributes. Note that the stock id can
be %NULL if it wasn't set earlier.

shouldn't be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Stock id. Returned string is owned by @attributes and</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_tooltip_markup"
              c:identifier="gtk_source_mark_attributes_get_tooltip_markup">
        <doc xml:whitespace="preserve">Queries for a tooltip by emitting
a GtkSourceMarkAttributes::query-tooltip-markup signal. The tooltip may contain
a markup.

using g_free() when done with it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A tooltip. The returned string should be freed by</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Queries for a tooltip by emitting
a GtkSourceMarkAttributes::query-tooltip-text signal. The tooltip is a plain
text.

using g_free() when done with it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A tooltip. The returned string should be freed by</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Renders an icon of given size. The base of the icon is set by the last call
to one of: gtk_source_mark_attributes_set_pixbuf(),
gtk_source_mark_attributes_set_gicon(),
gtk_source_mark_attributes_set_icon_name() or
gtk_source_mark_attributes_set_stock_id(). @size cannot be lower than 1.

and should not be unreffed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A rendered pixbuf. The pixbuf belongs to @attributes</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Sets background color to the one given in @background.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="background" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkRGBA.</doc>
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gicon"
              c:identifier="gtk_source_mark_attributes_set_gicon">
        <doc xml:whitespace="preserve">Sets an icon to be used as a base for rendered icon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="gicon" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Sets a name of an icon to be used as a base for rendered icon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of an icon to be used.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf"
              c:identifier="gtk_source_mark_attributes_set_pixbuf">
        <doc xml:whitespace="preserve">Sets a pixbuf to be used as a base for rendered icon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkPixbuf to be used.</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stock_id"
              c:identifier="gtk_source_mark_attributes_set_stock_id">
        <doc xml:whitespace="preserve">Sets stock id to be used as a base for rendered icon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a stock id.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="background" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">A color used for background of a line.</doc>
        <type name="Gdk.RGBA"/>
      </property>
      <property name="gicon" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">An icon name that may be a base of a rendered icon.</doc>
        <type name="utf8"/>
      </property>
      <property name="pixbuf" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">A #GdkPixbuf that may be a base of a rendered icon.</doc>
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="stock-id" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">A stock id that may be a base of a rendered icon.</doc>
        <type name="utf8"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="MarkAttributesPrivate"
              c:type="GtkSourceMarkAttributesPrivate*"/>
      </field>
      <glib:signal name="query-tooltip-markup" when="last">
        <doc xml:whitespace="preserve">The code should connect to this signal to provide a tooltip for given
@mark. The tooltip can contain a markup.

g_free() when done with it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A tooltip. The string should be freed with</doc>
          <type name="utf8"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #GtkSourceMark.</doc>
            <type name="Mark"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-tooltip-text" when="last">
        <doc xml:whitespace="preserve">The code should connect to this signal to provide a tooltip for given
@mark. The tooltip should be just a plain text.

g_free() when done with it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A tooltip. The string should be freed with</doc>
          <type name="utf8"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:whitespace="preserve">The #GtkSourceMark.</doc>
            <type name="Mark"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MarkAttributesClass"
            c:type="GtkSourceMarkAttributesClass"
            glib:is-gtype-struct-for="MarkAttributes">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MarkAttributesPrivate"
            c:type="GtkSourceMarkAttributesPrivate"
            disguised="1">
    </record>
    <record name="MarkClass"
            c:type="GtkSourceMarkClass"
            glib:is-gtype-struct-for="Mark">
      <field name="parent_class">
        <type name="Gtk.TextMarkClass" c:type="GtkTextMarkClass"/>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="MarkPrivate" c:type="GtkSourceMarkPrivate" disguised="1">
    </record>
    <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">
      <constructor name="new"
                   c:identifier="gtk_source_print_compositor_new"
                   version="2.2">
        <doc xml:whitespace="preserve">Creates a new print compositor that can be used to print @buffer.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new print compositor object.</doc>
          <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
                   version="2.2">
        <doc xml:whitespace="preserve">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
#GtkSourcePrintCompositor:tab-width, #GtkSourcePrintCompositor:highlight-syntax,
#GtkSourcePrintCompositor:wrap-mode, #GtkSourcePrintCompositor:body-font-name and
#GtkSourcePrintCompositor:print-line-numbers.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new print compositor object.</doc>
          <type name="PrintCompositor" c:type="GtkSourcePrintCompositor*"/>
        </return-value>
        <parameters>
          <parameter name="view" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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 #GtkPrintOperation::draw_page signal
as shown in the following example:

&lt;informalexample&gt;&lt;programlisting&gt;
// 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);
}
&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the name of the font used to print the text body. The returned string
must be freed with g_free().

text body.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the name of the font used to print the</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_bottom_margin"
              c:identifier="gtk_source_print_compositor_get_bottom_margin"
              version="2.2">
        <doc xml:whitespace="preserve">Gets the bottom margin in units of @unit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the bottom margin.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Gets the #GtkSourceBuffer associated with the compositor. The returned
object reference is owned by the compositor object and
should not be unreferenced.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkSourceBuffer associated with the compositor.</doc>
          <type name="Buffer" c:type="GtkSourceBuffer*"/>
        </return-value>
      </method>
      <method name="get_footer_font_name"
              c:identifier="gtk_source_print_compositor_get_footer_font_name"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the name of the font used to print the page footer.
The returned string must be freed with g_free().

the page footer.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the name of the font used to print</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_header_font_name"
              c:identifier="gtk_source_print_compositor_get_header_font_name"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the name of the font used to print the page header.
The returned string must be freed with g_free().

the page header.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the name of the font used to print</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_highlight_syntax"
              c:identifier="gtk_source_print_compositor_get_highlight_syntax"
              version="2.2">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the printed output will be highlighted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_left_margin"
              c:identifier="gtk_source_print_compositor_get_left_margin"
              version="2.2">
        <doc xml:whitespace="preserve">Gets the left margin in units of @unit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the left margin</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the name of the font used to print line numbers on the left margin.
The returned string must be freed with g_free().

line numbers on the left margin.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string containing the name of the font used to print</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_n_pages"
              c:identifier="gtk_source_print_compositor_get_n_pages"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the number of pages in the document or &lt;code&gt;-1&lt;/code&gt; if the
document has not been completely paginated.

document has not been completely paginated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of pages in the document or &lt;code&gt;-1&lt;/code&gt; if the</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_pagination_progress"
              c:identifier="gtk_source_print_compositor_get_pagination_progress"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the current fraction of the document pagination that has been completed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a fraction from 0.0 to 1.0 inclusive.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </method>
      <method name="get_print_footer"
              c:identifier="gtk_source_print_compositor_get_print_footer"
              version="2.2">
        <doc xml:whitespace="preserve">Determines if a footer is set to be printed for each page.  A
footer will be printed if this function returns %TRUE
&lt;emphasis&gt;and&lt;/emphasis&gt; some format strings have been specified
with gtk_source_print_compositor_set_footer_format().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the footer is set to be printed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_print_header"
              c:identifier="gtk_source_print_compositor_get_print_header"
              version="2.2">
        <doc xml:whitespace="preserve">Determines if a header is set to be printed for each page.  A
header will be printed if this function returns %TRUE
&lt;emphasis&gt;and&lt;/emphasis&gt; some format strings have been specified
with gtk_source_print_compositor_set_header_format().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the header is set to be printed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_print_line_numbers"
              c:identifier="gtk_source_print_compositor_get_print_line_numbers"
              version="2.2">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the interval of printed line numbers.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_right_margin"
              c:identifier="gtk_source_print_compositor_get_right_margin"
              version="2.2">
        <doc xml:whitespace="preserve">Gets the right margin in units of @unit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the right margin.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Returns the width of tabulation in characters for printed text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">width of tab.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_top_margin"
              c:identifier="gtk_source_print_compositor_get_top_margin"
              version="2.2">
        <doc xml:whitespace="preserve">Gets the top margin in units of @unit.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the top margin.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Gets the line wrapping mode for the printed text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the line wrap mode.</doc>
          <type name="Gtk.WrapMode" c:type="GtkWrapMode"/>
        </return-value>
      </method>
      <method name="paginate"
              c:identifier="gtk_source_print_compositor_paginate"
              version="2.2">
        <doc xml:whitespace="preserve">Paginate the document associated with the @compositor.

In order to support non-blocking pagination, document is paginated in small chunks.
Each time gtk_source_print_compositor_paginate() is invoked, a chunk of the document
is paginated. To paginate the entire document, gtk_source_print_compositor_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 #GtkPrintOperation::paginate signal,
as shown in the following example:

&lt;informalexample&gt;&lt;programlisting&gt;
// 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;
}
&lt;/programlisting&gt;&lt;/informalexample&gt;

If you don't need to do pagination in chunks, you can simply do it all in the
#GtkPrintOperation::begin-print handler, and set the number of pages from there, like
in the following example:

&lt;informalexample&gt;&lt;programlisting&gt;
// 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);
}
&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the document has been completely paginated, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">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 pango_font_description_from_string()
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="font_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">the name of the default font for the body text.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bottom_margin"
              c:identifier="gtk_source_print_compositor_set_bottom_margin"
              version="2.2">
        <doc xml:whitespace="preserve">Sets the bottom margin used by @compositor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new bottom margin in units of @unit.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">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 pango_font_description_from_string()
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="font_name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the name of the font for the footer text, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_footer_format"
              c:identifier="gtk_source_print_compositor_set_footer_format"
              version="2.2">
        <doc xml:whitespace="preserve">Sets strftime like header format strings, to be printed on the
left, center and right of the bottom of each page. The strings may
include strftime(3) codes which will be expanded at print time.
All strftime() codes are accepted, with the addition of %N for the
page number and %Q for the page count.

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

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

For the footer to be printed, in
addition to specifying format strings, you need to enable footer
printing with gtk_source_print_compositor_set_print_footer().

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="separator" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if you want a separator line to be printed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="left" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a format string to print on the left of the footer.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="center" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a format string to print on the center of the footer.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="right" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a format string to print on the right of the footer.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_font_name"
              c:identifier="gtk_source_print_compositor_set_header_font_name"
              version="2.2">
        <doc xml:whitespace="preserve">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 pango_font_description_from_string()
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="font_name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the name of the font for header text, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_format"
              c:identifier="gtk_source_print_compositor_set_header_format"
              version="2.2">
        <doc xml:whitespace="preserve">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.
All strftime() codes are accepted, with the addition of %N for the
page number and %Q for 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 gtk_source_print_compositor_set_print_header().

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="separator" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if you want a separator line to be printed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="left" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a format string to print on the left of the header.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="center" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a format string to print on the center of the header.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="right" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a format string to print on the right of the header.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_syntax"
              c:identifier="gtk_source_print_compositor_set_highlight_syntax"
              version="2.2">
        <doc xml:whitespace="preserve">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
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="highlight" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Sets the left margin used by @compositor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new left margin in units of @unit.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">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 pango_font_description_from_string()
for a description of the format of the string representation.

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="font_name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the name of the font for line numbers, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_print_footer"
              c:identifier="gtk_source_print_compositor_set_print_footer"
              version="2.2">
        <doc xml:whitespace="preserve">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
gtk_source_print_compositor_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
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="print" transfer-ownership="none">
            <doc xml:whitespace="preserve">%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"
              version="2.2">
        <doc xml:whitespace="preserve">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
gtk_source_print_compositor_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
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="print" transfer-ownership="none">
            <doc xml:whitespace="preserve">%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"
              version="2.2">
        <doc xml:whitespace="preserve">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
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="interval" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Sets the right margin used by @compositor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new right margin in units of @unit.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Sets the width of tabulation in characters for printed text.

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Sets the top margin used by @compositor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="margin" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new top margin in units of @unit</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">Sets the line wrapping mode for the printed text.

This function cannot be called anymore after the first call to the
gtk_source_print_compositor_paginate() function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="wrap_mode" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkWrapMode.</doc>
            <type name="Gtk.WrapMode" c:type="GtkWrapMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="body-font-name"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 pango_font_description_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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="utf8"/>
      </property>
      <property name="buffer"
                version="2.2"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The GtkSourceBuffer object to print.</doc>
        <type name="Buffer"/>
      </property>
      <property name="footer-font-name"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 pango_font_description_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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="utf8"/>
      </property>
      <property name="header-font-name"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 pango_font_description_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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="utf8"/>
      </property>
      <property name="highlight-syntax"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether to print the document with highlighted syntax.

The value of this property cannot be changed anymore after the first
call to the gtk_source_print_compositor_paginate() function.</doc>
        <type name="gboolean"/>
      </property>
      <property name="line-numbers-font-name"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 pango_font_description_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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="utf8"/>
      </property>
      <property name="n-pages" version="2.2" transfer-ownership="none">
        <doc xml:whitespace="preserve">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"/>
      </property>
      <property name="print-footer"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="gboolean"/>
      </property>
      <property name="print-header"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="gboolean"/>
      </property>
      <property name="print-line-numbers"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="guint"/>
      </property>
      <property name="tab-width"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Width of a tab character expressed in spaces.

The value of this property cannot be changed anymore after the first
call to the gtk_source_print_compositor_paginate() function.</doc>
        <type name="guint"/>
      </property>
      <property name="wrap-mode"
                version="2.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">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 gtk_source_print_compositor_paginate() function.</doc>
        <type name="Gtk.WrapMode"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PrintCompositorPrivate"
              c:type="GtkSourcePrintCompositorPrivate*"/>
      </field>
    </class>
    <record name="PrintCompositorClass"
            c:type="GtkSourcePrintCompositorClass"
            glib:is-gtype-struct-for="PrintCompositor">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="PrintCompositorPrivate"
            c:type="GtkSourcePrintCompositorPrivate"
            disguised="1">
    </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"/>
      <member name="before"
              value="1"
              c:identifier="GTK_SOURCE_SMART_HOME_END_BEFORE"
              glib:nick="before"/>
      <member name="after"
              value="2"
              c:identifier="GTK_SOURCE_SMART_HOME_END_AFTER"
              glib:nick="after"/>
      <member name="always"
              value="3"
              c:identifier="GTK_SOURCE_SMART_HOME_END_ALWAYS"
              glib:nick="always"/>
    </enumeration>
    <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">
      <method name="copy" c:identifier="gtk_source_style_copy" version="2.0">
        <doc xml:whitespace="preserve">Creates a copy of @style, that is a new #GtkSourceStyle instance which
has the same attributes set.

when you are done with it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">copy of @style, call g_object_unref()</doc>
          <type name="Style" c:type="GtkSourceStyle*"/>
        </return-value>
      </method>
      <property name="background"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="background-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="bold"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="bold-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="foreground"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="foreground-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="italic"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="italic-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="line-background"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="line-background-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="strikethrough"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="strikethrough-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="underline"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="underline-set"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
    </class>
    <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">
      <method name="get_authors"
              c:identifier="gtk_source_style_scheme_get_authors"
              version="2.0">
        <doc xml:whitespace="preserve">array containing the @scheme authors or %NULL if no author
is specified by the style scheme.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a %NULL-terminated</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_description"
              c:identifier="gtk_source_style_scheme_get_description"
              version="2.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@scheme description (if defined), or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_filename"
              c:identifier="gtk_source_style_scheme_get_filename"
              version="2.0">
        <doc xml:whitespace="preserve">style scheme file or %NULL in the other cases.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@scheme file name if the scheme was created parsing a</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_id"
              c:identifier="gtk_source_style_scheme_get_id"
              version="2.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@scheme id.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_name"
              c:identifier="gtk_source_style_scheme_get_name"
              version="2.0">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@scheme name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_style"
              c:identifier="gtk_source_style_scheme_get_style"
              version="2.0">
        <doc xml:whitespace="preserve">in the @scheme, or %NULL when no style with this name found.
It is owned by @scheme and may not be unref'ed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">style which corresponds to @style_id</doc>
          <type name="Style" c:type="GtkSourceStyle*"/>
        </return-value>
        <parameters>
          <parameter name="style_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">id of the style to retrieve.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="description" transfer-ownership="none">
        <doc xml:whitespace="preserve">Style scheme description, a translatable string to present to user.</doc>
        <type name="utf8"/>
      </property>
      <property name="filename" transfer-ownership="none">
        <doc xml:whitespace="preserve">Style scheme filename or %NULL.</doc>
        <type name="utf8"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Style scheme id, a unique string used to identify the style scheme
in #GtkSourceStyleSchemeManager.</doc>
        <type name="utf8"/>
      </property>
      <property name="name" transfer-ownership="none">
        <doc xml:whitespace="preserve">Style scheme name, a translatable string to present to user.</doc>
        <type name="utf8"/>
      </property>
      <field name="base">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="StyleSchemePrivate" c:type="GtkSourceStyleSchemePrivate*"/>
      </field>
    </class>
    <record name="StyleSchemeClass"
            c:type="GtkSourceStyleSchemeClass"
            glib:is-gtype-struct-for="StyleScheme">
      <field name="base_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </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">
      <constructor name="new"
                   c:identifier="gtk_source_style_scheme_manager_new">
        <doc xml:whitespace="preserve">Creates a new style manager. If you do not need more than one style
manager then use gtk_source_style_scheme_manager_get_default() instead.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">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:whitespace="preserve">Returns the default #GtkSourceStyleSchemeManager instance.

is owned by GtkSourceView library and must not be unref'ed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceStyleSchemeManager. Return value</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:whitespace="preserve">Appends @path to the list of directories where the @manager looks for
style scheme files.
See gtk_source_style_scheme_manager_set_search_path() for details.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">a directory or a filename.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="force_rescan"
              c:identifier="gtk_source_style_scheme_manager_force_rescan">
        <doc xml:whitespace="preserve">Mark any currently cached information about the available style scehems
as invalid. All the available style schemes will be reloaded next time
the @manager is accessed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_scheme"
              c:identifier="gtk_source_style_scheme_manager_get_scheme">
        <doc xml:whitespace="preserve">Looks up style scheme by id.

@manager and must not be unref'ed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceStyleScheme object. Returned value is owned by</doc>
          <type name="StyleScheme" c:type="GtkSourceStyleScheme*"/>
        </return-value>
        <parameters>
          <parameter name="scheme_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">style scheme id to find.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_scheme_ids"
              c:identifier="gtk_source_style_scheme_manager_get_scheme_ids">
        <doc xml:whitespace="preserve">Returns the ids of the available style schemes.

of string 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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a %NULL-terminated array</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="get_search_path"
              c:identifier="gtk_source_style_scheme_manager_get_search_path">
        <doc xml:whitespace="preserve">Returns the current search path for the @manager.
See gtk_source_style_scheme_manager_set_search_path() for details.

of string containing the search path.
The array is owned by the @manager and must not be modified.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a %NULL-terminated array</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <method name="prepend_search_path"
              c:identifier="gtk_source_style_scheme_manager_prepend_search_path">
        <doc xml:whitespace="preserve">Prepends @path to the list of directories where the @manager looks
for style scheme files.
See gtk_source_style_scheme_manager_set_search_path() for details.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:whitespace="preserve">a directory or a filename.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_path"
              c:identifier="gtk_source_style_scheme_manager_set_search_path">
        <doc xml:whitespace="preserve">Sets the list of directories where the @manager looks for
style scheme files.
If @path is %NULL, the search path is reset to default.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve"> a %NULL-terminated array of strings or %NULL.</doc>
            <array c:type="gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="scheme-ids" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="search-path" writable="1" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="StyleSchemeManagerPrivate"
              c:type="GtkSourceStyleSchemeManagerPrivate*"/>
      </field>
    </class>
    <record name="StyleSchemeManagerClass"
            c:type="GtkSourceStyleSchemeManagerClass"
            glib:is-gtype-struct-for="StyleSchemeManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_source_reserved1" introspectable="0">
        <callback name="_gtk_source_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved2" introspectable="0">
        <callback name="_gtk_source_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved3" introspectable="0">
        <callback name="_gtk_source_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_source_reserved4" introspectable="0">
        <callback name="_gtk_source_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="StyleSchemeManagerPrivate"
            c:type="GtkSourceStyleSchemeManagerPrivate"
            disguised="1">
    </record>
    <record name="StyleSchemePrivate"
            c:type="GtkSourceStyleSchemePrivate"
            disguised="1">
    </record>
    <interface name="UndoManager"
               c:symbol-prefix="undo_manager"
               c:type="GtkSourceUndoManager"
               glib:type-name="GtkSourceUndoManager"
               glib:get-type="gtk_source_undo_manager_get_type"
               glib:type-struct="UndoManagerIface">
      <virtual-method name="begin_not_undoable_action"
                      invoker="begin_not_undoable_action"
                      version="2.10">
        <doc xml:whitespace="preserve">Begin a not undoable action on the buffer. All changes between this call
and the call to #gtk_source_undo_manager_end_not_undoable_action cannot
be undone. This function should be re-entrant.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="can_redo" invoker="can_redo" version="2.10">
        <doc xml:whitespace="preserve">Get whether there are redo operations available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if there are redo operations available, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="can_redo_changed"
                      invoker="can_redo_changed"
                      version="2.10">
        <doc xml:whitespace="preserve">Emits the #GtkSourceUndoManager::can-redo-changed signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="can_undo" invoker="can_undo" version="2.10">
        <doc xml:whitespace="preserve">Get whether there are undo operations available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if there are undo operations available, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="can_undo_changed"
                      invoker="can_undo_changed"
                      version="2.10">
        <doc xml:whitespace="preserve">Emits the #GtkSourceUndoManager::can-undo-changed signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="end_not_undoable_action"
                      invoker="end_not_undoable_action"
                      version="2.10">
        <doc xml:whitespace="preserve">Ends a not undoable action on the buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="redo" invoker="redo" version="2.10">
        <doc xml:whitespace="preserve">Perform a single redo. Calling this function when there are no redo operations
available is an error. Use #gtk_source_undo_manager_can_redo to find out
if there are redo operations available.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="undo" invoker="undo" version="2.10">
        <doc xml:whitespace="preserve">Perform a single undo. Calling this function when there are no undo operations
available is an error. Use #gtk_source_undo_manager_can_undo to find out
if there are undo operations available.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="begin_not_undoable_action"
              c:identifier="gtk_source_undo_manager_begin_not_undoable_action"
              version="2.10">
        <doc xml:whitespace="preserve">Begin a not undoable action on the buffer. All changes between this call
and the call to #gtk_source_undo_manager_end_not_undoable_action cannot
be undone. This function should be re-entrant.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="can_redo"
              c:identifier="gtk_source_undo_manager_can_redo"
              version="2.10">
        <doc xml:whitespace="preserve">Get whether there are redo operations available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if there are redo operations available, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="can_redo_changed"
              c:identifier="gtk_source_undo_manager_can_redo_changed"
              version="2.10">
        <doc xml:whitespace="preserve">Emits the #GtkSourceUndoManager::can-redo-changed signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="can_undo"
              c:identifier="gtk_source_undo_manager_can_undo"
              version="2.10">
        <doc xml:whitespace="preserve">Get whether there are undo operations available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if there are undo operations available, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="can_undo_changed"
              c:identifier="gtk_source_undo_manager_can_undo_changed"
              version="2.10">
        <doc xml:whitespace="preserve">Emits the #GtkSourceUndoManager::can-undo-changed signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="end_not_undoable_action"
              c:identifier="gtk_source_undo_manager_end_not_undoable_action"
              version="2.10">
        <doc xml:whitespace="preserve">Ends a not undoable action on the buffer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="redo"
              c:identifier="gtk_source_undo_manager_redo"
              version="2.10">
        <doc xml:whitespace="preserve">Perform a single redo. Calling this function when there are no redo operations
available is an error. Use #gtk_source_undo_manager_can_redo to find out
if there are redo operations available.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="undo"
              c:identifier="gtk_source_undo_manager_undo"
              version="2.10">
        <doc xml:whitespace="preserve">Perform a single undo. Calling this function when there are no undo operations
available is an error. Use #gtk_source_undo_manager_can_undo to find out
if there are undo operations available.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <glib:signal name="can-redo-changed"
                   when="last"
                   action="1"
                   version="2.10">
        <doc xml:whitespace="preserve">Emitted when the ability to redo has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="can-undo-changed"
                   when="last"
                   action="1"
                   version="2.10">
        <doc xml:whitespace="preserve">Emitted when the ability to undo has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="UndoManagerIface"
            c:type="GtkSourceUndoManagerIface"
            glib:is-gtype-struct-for="UndoManager">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="can_undo">
        <callback name="can_undo">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if there are undo operations available, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_redo">
        <callback name="can_redo">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if there are redo operations available, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="undo">
        <callback name="undo">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="redo">
        <callback name="redo">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin_not_undoable_action">
        <callback name="begin_not_undoable_action">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_not_undoable_action">
        <callback name="end_not_undoable_action">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_undo_changed">
        <callback name="can_undo_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_redo_changed">
        <callback name="can_redo_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UndoManager" c:type="GtkSourceUndoManager*"/>
            </parameter>
          </parameters>
        </callback>
      </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">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="gtk_source_view_new">
        <doc xml:whitespace="preserve">Creates a new #GtkSourceView. An empty default buffer will be
created for you. If you want to specify your own buffer, consider
gtk_source_view_new_with_buffer().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">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:whitespace="preserve">Creates a new #GtkSourceView widget displaying the buffer
@buffer. One buffer can be shared among many widgets.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #GtkSourceView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkSourceBuffer.</doc>
            <type name="Buffer" c:type="GtkSourceBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="line_mark_activated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_lines">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="copy" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="step" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_words">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="redo">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="show_completion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="undo">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="get_auto_indent"
              c:identifier="gtk_source_view_get_auto_indent">
        <doc xml:whitespace="preserve">Returns whether auto indentation of text is enabled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if auto indentation is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_completion"
              c:identifier="gtk_source_view_get_completion">
        <doc xml:whitespace="preserve">Gets the #GtkSourceCompletion associated with @view.

the #GtkSourceCompletion associated with @view.</doc>
        <return-value transfer-ownership="none">
          <type name="Completion" c:type="GtkSourceCompletion*"/>
        </return-value>
      </method>
      <method name="get_draw_spaces"
              c:identifier="gtk_source_view_get_draw_spaces">
        <doc xml:whitespace="preserve">Returns the #GtkSourceDrawSpacesFlags specifying if and how spaces
should be displayed for this @view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkSourceDrawSpacesFlags, 0 if no spaces should be drawn.</doc>
          <type name="DrawSpacesFlags" c:type="GtkSourceDrawSpacesFlags"/>
        </return-value>
      </method>
      <method name="get_gutter"
              c:identifier="gtk_source_view_get_gutter"
              version="2.8">
        <doc xml:whitespace="preserve">Returns the #GtkSourceGutter 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 gutter corresponding to
GTK_TEXT_WINDOW_LEFT.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkSourceGutter.</doc>
          <type name="Gutter" c:type="GtkSourceGutter*"/>
        </return-value>
        <parameters>
          <parameter name="window_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Returns whether the current line is highlighted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the current line is highlighted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_indent_on_tab"
              c:identifier="gtk_source_view_get_indent_on_tab"
              version="1.8">
        <doc xml:whitespace="preserve">Returns whether when the tab key is pressed the current selection
should get indented instead of replaced with the \t character.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the selection is indented when tab is pressed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_indent_width"
              c:identifier="gtk_source_view_get_indent_width">
        <doc xml:whitespace="preserve">Returns the number of spaces to use for each step of indent.
See gtk_source_view_set_indent_width() for details.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">indent width.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_insert_spaces_instead_of_tabs"
              c:identifier="gtk_source_view_get_insert_spaces_instead_of_tabs">
        <doc xml:whitespace="preserve">Returns whether when inserting a tabulator character it should
be replaced by a group of space characters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if spaces are inserted instead of tabs.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_mark_attributes"
              c:identifier="gtk_source_view_get_mark_attributes">
        <doc xml:whitespace="preserve">Gets attributes and priority for the @category.

The object belongs to @view, so it must not be unreffed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#GtkSourceMarkAttributes for the @category.</doc>
          <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
        </return-value>
        <parameters>
          <parameter name="category" transfer-ownership="none">
            <doc xml:whitespace="preserve">the category.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Gets the position of the right margin in the given @view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the position of the right margin.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_show_line_marks"
              c:identifier="gtk_source_view_get_show_line_marks"
              version="2.2">
        <doc xml:whitespace="preserve">Returns whether line marks are displayed beside the text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the line marks are displayed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_show_line_numbers"
              c:identifier="gtk_source_view_get_show_line_numbers">
        <doc xml:whitespace="preserve">Returns whether line numbers are displayed beside the text.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the line numbers are displayed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_show_right_margin"
              c:identifier="gtk_source_view_get_show_right_margin">
        <doc xml:whitespace="preserve">Returns whether a right margin is displayed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the right margin is shown.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_smart_home_end"
              c:identifier="gtk_source_view_get_smart_home_end">
        <doc xml:whitespace="preserve">Returns a #GtkSourceSmartHomeEndType end value specifying
how the cursor will move when HOME and END keys are pressed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GtkSourceSmartHomeEndTypeend value.</doc>
          <type name="SmartHomeEndType" c:type="GtkSourceSmartHomeEndType"/>
        </return-value>
      </method>
      <method name="get_tab_width"
              c:identifier="gtk_source_view_get_tab_width">
        <doc xml:whitespace="preserve">Returns the width of tabulation in characters.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">width of tab.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_visual_column"
              c:identifier="gtk_source_view_get_visual_column">
        <doc xml:whitespace="preserve">Determines the visual column at @iter taking into
consideration the indent width of @view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the visual column at @iter.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a position in @view.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auto_indent"
              c:identifier="gtk_source_view_set_auto_indent">
        <doc xml:whitespace="preserve">If %TRUE auto indentation of text is enabled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to enable auto indentation.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_spaces"
              c:identifier="gtk_source_view_set_draw_spaces">
        <doc xml:whitespace="preserve">Set if and how the spaces should be visualized. Specifying @flags as 0 will
disable display of spaces.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GtkSourceDrawSpacesFlags specifing how white spaces should be displayed</doc>
            <type name="DrawSpacesFlags" c:type="GtkSourceDrawSpacesFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_current_line"
              c:identifier="gtk_source_view_set_highlight_current_line">
        <doc xml:whitespace="preserve">If @hl is %TRUE the current line is highlighted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="hl" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="1.8">
        <doc xml:whitespace="preserve">If %TRUE, when the tab key is pressed and there is a selection, the
selected text is indented of one level instead of being replaced with
the \t characters. Shift+Tab unindents the selection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Sets the number of spaces to use for each step of indent.
If @width is -1, the value of the GtkSourceView::tab-width property
will be used.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:whitespace="preserve">indent width in characters.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_insert_spaces_instead_of_tabs"
              c:identifier="gtk_source_view_set_insert_spaces_instead_of_tabs">
        <doc xml:whitespace="preserve">If %TRUE any tabulator character inserted is replaced by a group
of space characters.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Sets attributes and priority for the @category.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="category" transfer-ownership="none">
            <doc xml:whitespace="preserve">the category.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="attributes" transfer-ownership="none">
            <doc xml:whitespace="preserve">mark attributes.</doc>
            <type name="MarkAttributes" c:type="GtkSourceMarkAttributes*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Sets the position of the right margin in the given @view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:whitespace="preserve">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"
              version="2.2">
        <doc xml:whitespace="preserve">If %TRUE line marks will be displayed beside the text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="show" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">If %TRUE line numbers will be displayed beside the text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="show" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">If %TRUE a right margin is displayed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="show" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to show a right margin.</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">
        <doc xml:whitespace="preserve">Set the desired movement of the cursor when HOME and END keys
are pressed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="smart_he" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
        <doc xml:whitespace="preserve">Sets the width of tabulation in characters.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:whitespace="preserve">width of tab in characters.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="auto-indent" writable="1" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="completion" transfer-ownership="none">
        <doc xml:whitespace="preserve">The completion object associated with the view</doc>
        <type name="Completion"/>
      </property>
      <property name="draw-spaces"
                version="2.4"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Set if and how the spaces should be visualized.</doc>
        <type name="DrawSpacesFlags"/>
      </property>
      <property name="highlight-current-line"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="indent-on-tab" writable="1" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="indent-width" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Width of an indentation step expressed in number of spaces.</doc>
        <type name="gint"/>
      </property>
      <property name="insert-spaces-instead-of-tabs"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="right-margin-position"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Position of the right margin.</doc>
        <type name="guint"/>
      </property>
      <property name="show-line-marks" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether to display line mark pixbufs</doc>
        <type name="gboolean"/>
      </property>
      <property name="show-line-numbers"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether to display line numbers</doc>
        <type name="gboolean"/>
      </property>
      <property name="show-right-margin"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether to display the right margin.</doc>
        <type name="gboolean"/>
      </property>
      <property name="smart-home-end"
                version="2.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Set the behavior of the HOME and END keys.</doc>
        <type name="SmartHomeEndType"/>
      </property>
      <property name="tab-width" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Width of an tab character expressed in number of spaces.</doc>
        <type name="guint"/>
      </property>
      <field name="parent">
        <type name="Gtk.TextView" c:type="GtkTextView"/>
      </field>
      <field name="priv">
        <type name="ViewPrivate" c:type="GtkSourceViewPrivate*"/>
      </field>
      <glib:signal name="line-mark-activated" when="last">
        <doc xml:whitespace="preserve">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"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GdkEvent that activated the event</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-lines" when="last" action="1" version="2.10">
        <doc xml:whitespace="preserve">The ::move-lines 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 by @count. For the moment, only
@count of -1 or 1 is valid.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="copy" transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if the line should be copied, %FALSE if it should be moved</doc>
            <type name="gboolean"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:whitespace="preserve">the number of lines to move over.</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-words" when="last" action="1" version="3.0">
        <doc xml:whitespace="preserve">The ::move-words 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"/>
        </return-value>
        <parameters>
          <parameter name="count" transfer-ownership="none">
            <doc xml:whitespace="preserve">the number of words to move over</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="redo" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-completion" when="last" action="1">
        <doc xml:whitespace="preserve">The ::show-completion signal is a keybinding signal which gets
emitted when the user initiates a completion in default mode.

Applications should not connect to it, but may emit it with
#g_signal_emit_by_name if they need to control the default mode
completion activation.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="smart-home-end" when="last" version="3.0">
        <doc xml:whitespace="preserve">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 GtkTextView::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"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GtkTextIter</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:whitespace="preserve">the count</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="undo" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ViewClass"
            c:type="GtkSourceViewClass"
            glib:is-gtype-struct-for="View">
      <field name="parent_class">
        <type name="Gtk.TextViewClass" c:type="GtkTextViewClass"/>
      </field>
      <field name="undo">
        <callback name="undo">
          <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="redo">
        <callback name="redo">
          <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="line_mark_activated">
        <callback name="line_mark_activated">
          <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="GtkTextIter*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.Event" c:type="GdkEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_completion">
        <callback name="show_completion">
          <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">
          <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="copy" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_words">
        <callback name="move_words">
          <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>
    </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"/>
      <member name="marks"
              value="-20"
              c:identifier="GTK_SOURCE_VIEW_GUTTER_POSITION_MARKS"
              glib:nick="marks"/>
    </enumeration>
    <record name="ViewPrivate" c:type="GtkSourceViewPrivate" disguised="1">
    </record>
    <function name="completion_error_quark"
              c:identifier="gtk_source_completion_error_quark"
              moved-to="CompletionError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
