<?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="Ggit" version="1.0"/>
  <include name="Gio" version="2.0"/>
  <include name="GtkSource" version="3.0"/>
  <include name="Peas" version="1.0"/>
  <c:include name="ide.h"/>
  <namespace name="Ide"
             version="1.0"
             shared-library="libide-1.0.so,libegg-private.so.0"
             c:identifier-prefixes="Ide"
             c:symbol-prefixes="ide">
    <alias name="BackForwardItem_autoptr" c:type="IdeBackForwardItem_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BackForwardList_autoptr" c:type="IdeBackForwardList_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BufferChangeMonitor_autoptr"
           c:type="IdeBufferChangeMonitor_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BufferManager_autoptr" c:type="IdeBufferManager_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Buffer_autoptr" c:type="IdeBuffer_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BuildResult_autoptr" c:type="IdeBuildResult_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="BuildSystem_autoptr" c:type="IdeBuildSystem_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Builder_autoptr" c:type="IdeBuilder_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Context_autoptr" c:type="IdeContext_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Deployer_autoptr" c:type="IdeDeployer_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="DeviceManager_autoptr" c:type="IdeDeviceManager_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="DeviceProvider_autoptr" c:type="IdeDeviceProvider_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Device_autoptr" c:type="IdeDevice_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="DiagnosticProvider_autoptr"
           c:type="IdeDiagnosticProvider_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Diagnostic_autoptr" c:type="IdeDiagnostic_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Diagnostician_autoptr" c:type="IdeDiagnostician_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Diagnostics_autoptr" c:type="IdeDiagnostics_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="DirectoryVcs_autoptr" c:type="IdeDirectoryVcs_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="DoapPerson_autoptr" c:type="IdeDoapPerson_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Doap_autoptr" c:type="IdeDoap_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ExtensionAdapter_autoptr"
           c:type="IdeExtensionAdapter_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ExtensionSetAdapter_autoptr"
           c:type="IdeExtensionSetAdapter_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="FileSettings_autoptr" c:type="IdeFileSettings_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="File_autoptr" c:type="IdeFile_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="GitRemoteCallbacks_autoptr"
           c:type="IdeGitRemoteCallbacks_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="GitVcs_autoptr" c:type="IdeGitVcs_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="HighlightEngine_autoptr" c:type="IdeHighlightEngine_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="HighlightIndex_autoptr" c:type="IdeHighlightIndex_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Highlighter_autoptr" c:type="IdeHighlighter_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Indenter_autoptr" c:type="IdeIndenter_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="LocalDevice_autoptr" c:type="IdeLocalDevice_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Object_autoptr" c:type="IdeObject_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="PatternSpec_autoptr" c:type="IdePatternSpec_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Progress_autoptr" c:type="IdeProgress_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ProjectFile_autoptr" c:type="IdeProjectFile_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ProjectFiles_autoptr" c:type="IdeProjectFiles_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ProjectInfo_autoptr" c:type="IdeProjectInfo_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ProjectItem_autoptr" c:type="IdeProjectItem_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ProjectMiner_autoptr" c:type="IdeProjectMiner_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Project_autoptr" c:type="IdeProject_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="RecentProjects_autoptr" c:type="IdeRecentProjects_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Refactory_autoptr" c:type="IdeRefactory_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="ScriptManager_autoptr" c:type="IdeScriptManager_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Script_autoptr" c:type="IdeScript_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SearchContext_autoptr" c:type="IdeSearchContext_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SearchEngine_autoptr" c:type="IdeSearchEngine_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SearchProvider_autoptr" c:type="IdeSearchProvider_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SearchResult_autoptr" c:type="IdeSearchResult_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Service_autoptr" c:type="IdeService_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Settings_autoptr" c:type="IdeSettings_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceLocation_autoptr" c:type="IdeSourceLocation_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceMap_autoptr" c:type="IdeSourceMap_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceRange_autoptr" c:type="IdeSourceRange_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceSnippetChunk_autoptr"
           c:type="IdeSourceSnippetChunk_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceSnippetContext_autoptr"
           c:type="IdeSourceSnippetContext_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceSnippet_autoptr" c:type="IdeSourceSnippet_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceSnippetsManager_autoptr"
           c:type="IdeSourceSnippetsManager_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceSnippets_autoptr" c:type="IdeSourceSnippets_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceViewMode_autoptr" c:type="IdeSourceViewMode_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SourceView_autoptr" c:type="IdeSourceView_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SymbolNode_autoptr" c:type="IdeSymbolNode_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SymbolResolver_autoptr" c:type="IdeSymbolResolver_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="SymbolTree_autoptr" c:type="IdeSymbolTree_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Symbol_autoptr" c:type="IdeSymbol_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="UnsavedFile_autoptr" c:type="IdeUnsavedFile_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="UnsavedFiles_autoptr" c:type="IdeUnsavedFiles_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="VcsUri_autoptr" c:type="IdeVcsUri_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="Vcs_autoptr" c:type="IdeVcs_autoptr">
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <constant name="BUFFER_LINE_FLAGS_DIAGNOSTICS_MASK"
              value="0"
              c:type="IDE_BUFFER_LINE_FLAGS_DIAGNOSTICS_MASK">
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="BackForwardItem"
           c:symbol-prefix="back_forward_item"
           c:type="IdeBackForwardItem"
           parent="Object"
           glib:type-name="IdeBackForwardItem"
           glib:get-type="ide_back_forward_item_get_type"
           glib:type-struct="BackForwardItemClass">
      <constructor name="new" c:identifier="ide_back_forward_item_new">
        <return-value transfer-ownership="full">
          <type name="BackForwardItem" c:type="IdeBackForwardItem*"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="chain" c:identifier="ide_back_forward_item_chain">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardItem" c:type="IdeBackForwardItem*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="BackForwardItem" c:type="IdeBackForwardItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="ide_back_forward_item_get_location">
        <return-value transfer-ownership="full">
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardItem" c:type="IdeBackForwardItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="location"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #IdeBackForwardItem:location property contains the location within
a source file to navigate to.</doc>
        <type name="SourceLocation"/>
      </property>
    </class>
    <record name="BackForwardItemClass"
            c:type="IdeBackForwardItemClass"
            glib:is-gtype-struct-for="BackForwardItem">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="BackForwardList"
           c:symbol-prefix="back_forward_list"
           c:type="IdeBackForwardList"
           parent="Object"
           glib:type-name="IdeBackForwardList"
           glib:get-type="ide_back_forward_list_get_type"
           glib:type-struct="BackForwardListClass">
      <method name="branch" c:identifier="ide_back_forward_list_branch">
        <doc xml:space="preserve">Branches @self into a newly created #IdeBackForwardList.

This can be used independently and then merged back into a global
#IdeBackForwardList. This can be useful in situations where you have
multiple sets of editors.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBackForwardList</doc>
          <type name="BackForwardList" c:type="IdeBackForwardList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_go_backward"
              c:identifier="ide_back_forward_list_get_can_go_backward">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_go_forward"
              c:identifier="ide_back_forward_list_get_can_go_forward">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_item"
              c:identifier="ide_back_forward_list_get_current_item">
        <doc xml:space="preserve">Retrieves the current #IdeBackForwardItem or %NULL if no items have been
added to the #IdeBackForwardList.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeBackForwardItem or %NULL.</doc>
          <type name="BackForwardItem" c:type="IdeBackForwardItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="go_backward"
              c:identifier="ide_back_forward_list_go_backward">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="go_forward"
              c:identifier="ide_back_forward_list_go_forward">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="merge" c:identifier="ide_back_forward_list_merge">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
          <parameter name="branch" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push" c:identifier="ide_back_forward_list_push">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="BackForwardItem" c:type="IdeBackForwardItem*"/>
          </parameter>
        </parameters>
      </method>
      <property name="can-go-backward" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="can-go-forward" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="current-item" transfer-ownership="none">
        <type name="BackForwardItem"/>
      </property>
      <glib:signal name="navigate-to" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="BackForwardItem"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BackForwardListClass"
            c:type="IdeBackForwardListClass"
            glib:is-gtype-struct-for="BackForwardList">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="Buffer"
           c:symbol-prefix="buffer"
           c:type="IdeBuffer"
           parent="GtkSource.Buffer"
           glib:type-name="IdeBuffer"
           glib:get-type="ide_buffer_get_type"
           glib:type-struct="BufferClass">
      <virtual-method name="cursor_moved">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="check_for_volume_change"
              c:identifier="ide_buffer_check_for_volume_change">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_busy" c:identifier="ide_buffer_get_busy">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_changed_on_volume"
              c:identifier="ide_buffer_get_changed_on_volume">
        <doc xml:space="preserve">Gets if the file backing the buffer has changed on the underlying storage.

Use ide_buffer_manager_load_file_async() to reload the buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the file has changed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeBuffer.</doc>
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_content" c:identifier="ide_buffer_get_content">
        <doc xml:space="preserve">Gets the contents of the buffer as GBytes.

By using this function to get the bytes, you allow #IdeBuffer to avoid calculating the buffer
text unnecessarily, potentially saving on allocations.

Additionally, this allows the buffer to update the state in #IdeUnsavedFiles if the content
is out of sync.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GBytes containing the buffer content.</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context" c:identifier="ide_buffer_get_context">
        <doc xml:space="preserve">Gets the #IdeBuffer:context property. This is the #IdeContext that owns the buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeContext.</doc>
          <type name="Context" c:type="IdeContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_diagnostic_at_iter"
              c:identifier="ide_buffer_get_diagnostic_at_iter">
        <doc xml:space="preserve">Gets the first diagnostic that overlaps the position</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeDiagnostic or %NULL.</doc>
          <type name="Diagnostic" c:type="IdeDiagnostic*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file" c:identifier="ide_buffer_get_file">
        <doc xml:space="preserve">Gets the underlying file behind the buffer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeFile.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_highlight_diagnostics"
              c:identifier="ide_buffer_get_highlight_diagnostics">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter_at_source_location"
              c:identifier="ide_buffer_get_iter_at_source_location">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_flags" c:identifier="ide_buffer_get_line_flags">
        <return-value transfer-ownership="none">
          <type name="BufferLineFlags" c:type="IdeBufferLineFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_read_only" c:identifier="ide_buffer_get_read_only">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection_bounds"
              c:identifier="ide_buffer_get_selection_bounds">
        <doc xml:space="preserve">This function acts like gtk_text_buffer_get_selection_bounds() except that it always
places the location of the insert mark at @insert and the location of the selection
mark at @selection.

Calling gtk_text_iter_order() with the results of this function would be equivalent
to calling gtk_text_buffer_get_selection_bounds().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="insert" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="selection" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_style_scheme_name"
              c:identifier="ide_buffer_get_style_scheme_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbol_at_location_async"
              c:identifier="ide_buffer_get_symbol_at_location_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_symbol_at_location_finish"
              c:identifier="ide_buffer_get_symbol_at_location_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to locate a symbol at a location.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeSymbol or %NULL.</doc>
          <type name="Symbol" c:type="IdeSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_symbol_resolver"
              c:identifier="ide_buffer_get_symbol_resolver">
        <doc xml:space="preserve">Gets the symbol resolver for the buffer based on the current language.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSymbolResolver or %NULL.</doc>
          <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="ide_buffer_get_title">
        <doc xml:space="preserve">Gets the #IdeBuffer:title property. This property contains a title for the buffer suitable
for display.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string containing the buffer title.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_word_at_iter"
              c:identifier="ide_buffer_get_word_at_iter">
        <doc xml:space="preserve">Gets the word found under the position denoted by @iter.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly allocated string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hold" c:identifier="ide_buffer_hold">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rehighlight" c:identifier="ide_buffer_rehighlight">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="release" c:identifier="ide_buffer_release">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_file" c:identifier="ide_buffer_set_file">
        <doc xml:space="preserve">Sets the underlying file to use when saving and loading @self to and and from storage.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_diagnostics"
              c:identifier="ide_buffer_set_highlight_diagnostics">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="highlight_diagnostics" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style_scheme_name"
              c:identifier="ide_buffer_set_style_scheme_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
          <parameter name="style_scheme_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="trim_trailing_whitespace"
              c:identifier="ide_buffer_trim_trailing_whitespace">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="busy" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="changed-on-volume" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
      <property name="file" writable="1" transfer-ownership="none">
        <type name="File"/>
      </property>
      <property name="highlight-diagnostics"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="read-only" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="style-scheme-name"
                writable="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GtkSource.Buffer" c:type="GtkSourceBuffer"/>
      </field>
      <glib:signal name="cursor-moved" when="last">
        <doc xml:space="preserve">This signal is emitted when the insertion location has moved. You might
want to attach to this signal to update the location of the insert mark in
the display.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter.</doc>
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="line-flags-changed" when="last">
        <doc xml:space="preserve">This signal is emitted when the calculated line flags have changed. This occurs when
diagnostics and line changes have been recalculated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="loaded" when="last">
        <doc xml:space="preserve">This signal is emitted when the buffer manager has completed loading the file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="saved" when="last">
        <doc xml:space="preserve">This signal is emitted when the buffer manager has completed saving the file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <class name="BufferChangeMonitor"
           c:symbol-prefix="buffer_change_monitor"
           c:type="IdeBufferChangeMonitor"
           parent="Object"
           glib:type-name="IdeBufferChangeMonitor"
           glib:get-type="ide_buffer_change_monitor_get_type"
           glib:type-struct="BufferChangeMonitorClass">
      <virtual-method name="get_change" invoker="get_change">
        <return-value transfer-ownership="none">
          <type name="BufferLineChange" c:type="IdeBufferLineChange"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_buffer">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="emit_changed"
              c:identifier="ide_buffer_change_monitor_emit_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_change"
              c:identifier="ide_buffer_change_monitor_get_change">
        <return-value transfer-ownership="none">
          <type name="BufferLineChange" c:type="IdeBufferLineChange"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Buffer"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="BufferChangeMonitorClass"
            c:type="IdeBufferChangeMonitorClass"
            glib:is-gtype-struct-for="BufferChangeMonitor">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="set_buffer">
        <callback name="set_buffer">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="BufferChangeMonitor"
                    c:type="IdeBufferChangeMonitor*"/>
            </parameter>
            <parameter name="buffer" transfer-ownership="none">
              <type name="Buffer" c:type="IdeBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_change">
        <callback name="get_change">
          <return-value transfer-ownership="none">
            <type name="BufferLineChange" c:type="IdeBufferLineChange"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="BufferChangeMonitor"
                    c:type="IdeBufferChangeMonitor*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="BufferClass"
            c:type="IdeBufferClass"
            glib:is-gtype-struct-for="Buffer">
      <field name="parent_class">
        <type name="GtkSource.BufferClass" c:type="GtkSourceBufferClass"/>
      </field>
      <field name="cursor_moved">
        <callback name="cursor_moved">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Buffer" c:type="IdeBuffer*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="BufferLineChange" c:type="IdeBufferLineChange">
      <member name="none" value="0" c:identifier="IDE_BUFFER_LINE_CHANGE_NONE">
      </member>
      <member name="added"
              value="1"
              c:identifier="IDE_BUFFER_LINE_CHANGE_ADDED">
      </member>
      <member name="changed"
              value="2"
              c:identifier="IDE_BUFFER_LINE_CHANGE_CHANGED">
      </member>
      <member name="deleted"
              value="3"
              c:identifier="IDE_BUFFER_LINE_CHANGE_DELETED">
      </member>
    </enumeration>
    <bitfield name="BufferLineFlags"
              glib:type-name="IdeBufferLineFlags"
              glib:get-type="ide_buffer_line_flags_get_type"
              c:type="IdeBufferLineFlags">
      <member name="none"
              value="0"
              c:identifier="IDE_BUFFER_LINE_FLAGS_NONE"
              glib:nick="none">
      </member>
      <member name="added"
              value="1"
              c:identifier="IDE_BUFFER_LINE_FLAGS_ADDED"
              glib:nick="added">
      </member>
      <member name="changed"
              value="2"
              c:identifier="IDE_BUFFER_LINE_FLAGS_CHANGED"
              glib:nick="changed">
      </member>
      <member name="error"
              value="4"
              c:identifier="IDE_BUFFER_LINE_FLAGS_ERROR"
              glib:nick="error">
      </member>
      <member name="warning"
              value="8"
              c:identifier="IDE_BUFFER_LINE_FLAGS_WARNING"
              glib:nick="warning">
      </member>
      <member name="note"
              value="16"
              c:identifier="IDE_BUFFER_LINE_FLAGS_NOTE"
              glib:nick="note">
      </member>
    </bitfield>
    <class name="BufferManager"
           c:symbol-prefix="buffer_manager"
           c:type="IdeBufferManager"
           parent="Object"
           glib:type-name="IdeBufferManager"
           glib:get-type="ide_buffer_manager_get_type"
           glib:type-struct="BufferManagerClass">
      <implements name="Gio.ListModel"/>
      <method name="create_buffer"
              c:identifier="ide_buffer_manager_create_buffer">
        <doc xml:space="preserve">Creates a new #IdeBuffer that does not yet have a backing file attached to it. Interfaces
should perform a save-as operation to save the file to a real file.

ide_file_get_file() will return %NULL to denote this type of buffer.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #IdeBuffer</doc>
          <type name="Buffer" c:type="IdeBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="find_buffer" c:identifier="ide_buffer_manager_find_buffer">
        <doc xml:space="preserve">Gets the buffer for a given file. If it has not yet been loaded, %NULL is
returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeBuffer or %NULL.</doc>
          <type name="Buffer" c:type="IdeBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeBufferManager.</doc>
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">A #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffers" c:identifier="ide_buffer_manager_get_buffers">
        <doc xml:space="preserve">Returns a newly allocated #GPtrArray of all the buffers managed by the #IdeBufferManager
instance.

Buffers are generally not added to the buffer list until they have been loaded.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A #GPtrArray of buffers.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Buffer"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus_buffer"
              c:identifier="ide_buffer_manager_get_focus_buffer">
        <doc xml:space="preserve">Gets the #IdeBufferManager:focus-buffer property. This the buffer behind
the current selected view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeBuffer or %NULL.</doc>
          <type name="Buffer" c:type="IdeBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_file_size"
              c:identifier="ide_buffer_manager_get_max_file_size">
        <doc xml:space="preserve">Gets the #IdeBufferManager:max-file-size property. This contains the maximum file size in bytes
that a file may be to be loaded by the #IdeBufferManager.

If zero, no size limits will be enforced.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #gsize in bytes or zero.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeBufferManager.</doc>
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_buffers"
              c:identifier="ide_buffer_manager_get_n_buffers">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_word_completion"
              c:identifier="ide_buffer_manager_get_word_completion">
        <doc xml:space="preserve">Gets the #GtkSourceCompletionWords completion provider that will complete
words using the loaded documents.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkSourceCompletionWords</doc>
          <type name="GtkSource.CompletionWords"
                c:type="GtkSourceCompletionWords*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeBufferManager.</doc>
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_file" c:identifier="ide_buffer_manager_has_file">
        <doc xml:space="preserve">Checks to see if the buffer manager has the file loaded.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @file is loaded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeBufferManager.</doc>
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_async"
              c:identifier="ide_buffer_manager_load_file_async">
        <doc xml:space="preserve">Asynchronously requests that the file represented by @file is loaded. If the file is already
loaded, the previously loaded version of the file will be returned, asynchronously.

Before loading the file, #IdeBufferManager will check the file size to help protect itself
from the user accidentally loading very large files. You can change the maximum size of file
that will be loaded with the #IdeBufferManager:max-file-size property.

See ide_buffer_manager_load_file_finish() for how to complete this asynchronous request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="force_reload" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="progress"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve">A location for an #IdeProgress or %NULL.</doc>
            <type name="Progress" c:type="IdeProgress**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_finish"
              c:identifier="ide_buffer_manager_load_file_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to load a file via ide_buffer_manager_load_file_async().
If the buffer was already loaded, this function will return a reference to the previous buffer
with it's reference count incremented by one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBuffer if successf; otherwise %NULL and @error is set.</doc>
          <type name="Buffer" c:type="IdeBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_all_async"
              c:identifier="ide_buffer_manager_save_all_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_all_finish"
              c:identifier="ide_buffer_manager_save_all_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_file_async"
              c:identifier="ide_buffer_manager_save_file_async">
        <doc xml:space="preserve">This function asynchronously requests that a buffer be saved to the storage represented by
@file. @buffer should be a previously loaded buffer owned by @self, such as one loaded with
ide_buffer_manager_load_file_async().

Call ide_buffer_manager_save_file_finish() to complete this asynchronous request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="progress" transfer-ownership="none">
            <type name="Progress" c:type="IdeProgress**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_file_finish"
              c:identifier="ide_buffer_manager_save_file_finish"
              throws="1">
        <doc xml:space="preserve">This function completes an asynchronous request to save a buffer to storage using
ide_buffer_manager_save_file_async(). Upon failure, %FALSE is returned and @error is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful %FALSE upon failure and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_focus_buffer"
              c:identifier="ide_buffer_manager_set_focus_buffer">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_file_size"
              c:identifier="ide_buffer_manager_set_max_file_size">
        <doc xml:space="preserve">Sets the maximum file size in bytes, that will be loaded by the #IdeBufferManager.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeBufferManager.</doc>
            <type name="BufferManager" c:type="IdeBufferManager*"/>
          </instance-parameter>
          <parameter name="max_file_size" transfer-ownership="none">
            <doc xml:space="preserve">The maximum file size in bytes, or zero for no limit.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <property name="auto-save" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="auto-save-timeout"
                writable="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="focus-buffer" writable="1" transfer-ownership="none">
        <type name="Buffer"/>
      </property>
      <glib:signal name="buffer-focus-enter" when="last">
        <doc xml:space="preserve">This signal is emitted when a view for @buffer has received focus. You might connect to this
signal when you want to perform an operation while a buffer is in focus.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeBuffer.</doc>
            <type name="Buffer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="buffer-focus-leave" when="last">
        <doc xml:space="preserve">This signal is emitted when the focus has left the view containing @buffer. You might connect
to this signal to stop any work you were performing while the buffer was focused.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeBuffer.</doc>
            <type name="Buffer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="buffer-loaded" when="last">
        <doc xml:space="preserve">This signal is emitted when a buffer has been successfully loaded. You might connect to this
signal to be notified when a buffer has completed loading.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeBuffer.</doc>
            <type name="Buffer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="buffer-saved" when="last">
        <doc xml:space="preserve">This signal is emitted when a buffer has finished saving to storage. You might connect to
this signal if you want to know when the modifications have successfully been written to
storage.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeBuffer.</doc>
            <type name="Buffer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="create-buffer" when="last">
        <doc xml:space="preserve">This signal is emitted when there is a request to create a new buffer
object. This allows subclasses of #IdeBuffer to be instantiated by the
buffer manager.

The first handler of this signal is responsible for returning an
#IdeBuffer or %NULL, for which one will be created.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeBuffer or %NULL.</doc>
          <type name="Buffer"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeFile</doc>
            <type name="File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="load-buffer" when="last">
        <doc xml:space="preserve">This signal is emitted when a request has been made to load a buffer from storage. You might
connect to this signal to be notified when loading of a buffer has begun.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeBuffer.</doc>
            <type name="Buffer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="save-buffer" when="last">
        <doc xml:space="preserve">This signal is emitted when a request has been made to save a buffer. Connect to this signal
if you'd like to perform mutation of the buffer before it is persisted to storage.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeBuffer.</doc>
            <type name="Buffer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BufferManagerClass"
            c:type="IdeBufferManagerClass"
            glib:is-gtype-struct-for="BufferManager">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="BuildResult"
           c:symbol-prefix="build_result"
           c:type="IdeBuildResult"
           parent="Object"
           glib:type-name="IdeBuildResult"
           glib:get-type="ide_build_result_get_type"
           glib:type-struct="BuildResultClass">
      <method name="get_stderr_stream"
              c:identifier="ide_build_result_get_stderr_stream">
        <doc xml:space="preserve">Fetches a merged stdedrr stream for all child processes of this build result.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GInputStream.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stdout_stream"
              c:identifier="ide_build_result_get_stdout_stream">
        <doc xml:space="preserve">Fetches a merged stdout stream for all child processes of this build result.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GInputStream or %NULL.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="log_stderr"
              c:identifier="ide_build_result_log_stderr"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="log_stdout"
              c:identifier="ide_build_result_log_stdout"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="log_subprocess"
              c:identifier="ide_build_result_log_subprocess">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult*"/>
          </instance-parameter>
          <parameter name="subprocess" transfer-ownership="none">
            <type name="Gio.Subprocess" c:type="GSubprocess*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="BuildResultClass"
            c:type="IdeBuildResultClass"
            glib:is-gtype-struct-for="BuildResult">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <interface name="BuildSystem"
               c:symbol-prefix="build_system"
               c:type="IdeBuildSystem"
               glib:type-name="IdeBuildSystem"
               glib:get-type="ide_build_system_get_type"
               glib:type-struct="BuildSystemInterface">
      <prerequisite name="Object"/>
      <function name="new_async" c:identifier="ide_build_system_new_async">
        <doc xml:space="preserve">Asynchronously creates a new #IdeBuildSystem instance using the registered
#GIOExtensionPoint system. Each extension point will be tried asynchronously
by priority until one has been found that supports @project_file.

If no build system could be found, then ide_build_system_new_finish() will
return %NULL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">#IdeBuildSystem</doc>
            <type name="Context" c:type="IdeContext*"/>
          </parameter>
          <parameter name="project_file" transfer-ownership="none">
            <doc xml:space="preserve">A #GFile containing the directory or project file.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">A callback to execute upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">User data for @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_finish"
                c:identifier="ide_build_system_new_finish"
                throws="1">
        <doc xml:space="preserve">Complete an asynchronous call to ide_build_system_new_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBuildSystem if successful; otherwise
  %NULL and @error is set.</doc>
          <type name="BuildSystem" c:type="IdeBuildSystem*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="get_build_flags_async"
                      invoker="get_build_flags_async">
        <doc xml:space="preserve">Asynchronously requests the build flags for a file. For autotools and C based projects, this
would be similar to the $CFLAGS variable and is suitable for generating warnings and errors
with clang.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_build_flags_finish"
                      invoker="get_build_flags_finish"
                      throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to get the build flags for a file.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An array of strings
  containing the build flags, or %NULL upon failure and @error is set.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_builder" invoker="get_builder" throws="1">
        <doc xml:space="preserve">This function should return an #IdeBuilder that can be used to perform a
build of the project using the configuration specified. @device may be
a non-local device, for which cross-compilation may be necessary.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBuilder or %NULL and @error is set.</doc>
          <type name="Builder" c:type="IdeBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve">The #IdeBuildSystem to perform the build.</doc>
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">The configuration options for the build.</doc>
            <type name="GLib.KeyFile" c:type="GKeyFile*"/>
          </parameter>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">The #IdeDevice the result should be able to run on.</doc>
            <type name="Device" c:type="IdeDevice*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_priority" invoker="get_priority">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_build_flags_async"
              c:identifier="ide_build_system_get_build_flags_async">
        <doc xml:space="preserve">Asynchronously requests the build flags for a file. For autotools and C based projects, this
would be similar to the $CFLAGS variable and is suitable for generating warnings and errors
with clang.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_build_flags_finish"
              c:identifier="ide_build_system_get_build_flags_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to get the build flags for a file.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An array of strings
  containing the build flags, or %NULL upon failure and @error is set.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_builder"
              c:identifier="ide_build_system_get_builder"
              throws="1">
        <doc xml:space="preserve">This function should return an #IdeBuilder that can be used to perform a
build of the project using the configuration specified. @device may be
a non-local device, for which cross-compilation may be necessary.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBuilder or %NULL and @error is set.</doc>
          <type name="Builder" c:type="IdeBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="system" transfer-ownership="none">
            <doc xml:space="preserve">The #IdeBuildSystem to perform the build.</doc>
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">The configuration options for the build.</doc>
            <type name="GLib.KeyFile" c:type="GKeyFile*"/>
          </parameter>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">The #IdeDevice the result should be able to run on.</doc>
            <type name="Device" c:type="IdeDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_priority" c:identifier="ide_build_system_get_priority">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BuildSystem" c:type="IdeBuildSystem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
      <property name="project-file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
    </interface>
    <record name="BuildSystemInterface"
            c:type="IdeBuildSystemInterface"
            glib:is-gtype-struct-for="BuildSystem">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_priority">
        <callback name="get_priority">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="system" transfer-ownership="none">
              <type name="BuildSystem" c:type="IdeBuildSystem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_builder">
        <callback name="get_builder" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">An #IdeBuilder or %NULL and @error is set.</doc>
            <type name="Builder" c:type="IdeBuilder*"/>
          </return-value>
          <parameters>
            <parameter name="system" transfer-ownership="none">
              <doc xml:space="preserve">The #IdeBuildSystem to perform the build.</doc>
              <type name="BuildSystem" c:type="IdeBuildSystem*"/>
            </parameter>
            <parameter name="config" transfer-ownership="none">
              <doc xml:space="preserve">The configuration options for the build.</doc>
              <type name="GLib.KeyFile" c:type="GKeyFile*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <doc xml:space="preserve">The #IdeDevice the result should be able to run on.</doc>
              <type name="Device" c:type="IdeDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_build_flags_async">
        <callback name="get_build_flags_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="BuildSystem" c:type="IdeBuildSystem*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="File" c:type="IdeFile*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_build_flags_finish">
        <callback name="get_build_flags_finish" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">An array of strings
  containing the build flags, or %NULL upon failure and @error is set.</doc>
            <array c:type="gchar**">
              <type name="utf8"/>
            </array>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="BuildSystem" c:type="IdeBuildSystem*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Builder"
           c:symbol-prefix="builder"
           c:type="IdeBuilder"
           parent="Object"
           abstract="1"
           glib:type-name="IdeBuilder"
           glib:get-type="ide_builder_get_type"
           glib:type-struct="BuilderClass">
      <virtual-method name="build_async" invoker="build_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="Builder" c:type="IdeBuilder*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="BuilderBuildFlags" c:type="IdeBuilderBuildFlags"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="4">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="build_finish" invoker="build_finish" throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to build the project.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBuildResult or %NULL upon failure.</doc>
          <type name="BuildResult" c:type="IdeBuildResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="Builder" c:type="IdeBuilder*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="build_async" c:identifier="ide_builder_build_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="Builder" c:type="IdeBuilder*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="BuilderBuildFlags" c:type="IdeBuilderBuildFlags"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="BuildResult" c:type="IdeBuildResult**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="build_finish"
              c:identifier="ide_builder_build_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to build the project.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeBuildResult or %NULL upon failure.</doc>
          <type name="BuildResult" c:type="IdeBuildResult*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="Builder" c:type="IdeBuilder*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <bitfield name="BuilderBuildFlags" c:type="IdeBuilderBuildFlags">
      <member name="none"
              value="0"
              c:identifier="IDE_BUILDER_BUILD_FLAGS_NONE">
      </member>
      <member name="force_rebuild"
              value="1"
              c:identifier="IDE_BUILDER_BUILD_FLAGS_FORCE_REBUILD">
      </member>
    </bitfield>
    <record name="BuilderClass"
            c:type="IdeBuilderClass"
            glib:is-gtype-struct-for="Builder">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="build_async">
        <callback name="build_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="Builder" c:type="IdeBuilder*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <type name="BuilderBuildFlags" c:type="IdeBuilderBuildFlags"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="BuildResult" c:type="IdeBuildResult**"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="5">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="5">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="build_finish">
        <callback name="build_finish" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">An #IdeBuildResult or %NULL upon failure.</doc>
            <type name="BuildResult" c:type="IdeBuildResult*"/>
          </return-value>
          <parameters>
            <parameter name="builder" transfer-ownership="none">
              <type name="Builder" c:type="IdeBuilder*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="CompletionProvider"
               c:symbol-prefix="completion_provider"
               c:type="IdeCompletionProvider"
               glib:type-name="IdeCompletionProvider"
               glib:get-type="ide_completion_provider_get_type"
               glib:type-struct="CompletionProviderInterface">
      <prerequisite name="GtkSource.CompletionProvider"/>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
    </interface>
    <record name="CompletionProviderInterface"
            c:type="IdeCompletionProviderInterface"
            glib:is-gtype-struct-for="CompletionProvider">
      <field name="parent_interface">
        <type name="GtkSource.CompletionProviderIface"
              c:type="GtkSourceCompletionProviderIface"/>
      </field>
    </record>
    <class name="Context"
           c:symbol-prefix="context"
           c:type="IdeContext"
           parent="GObject.Object"
           glib:type-name="IdeContext"
           glib:get-type="ide_context_get_type"
           glib:type-struct="ContextClass">
      <implements name="Gio.AsyncInitable"/>
      <constructor name="new_finish"
                   c:identifier="ide_context_new_finish"
                   throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeContext or %NULL upon failure and
  @error is set.</doc>
          <type name="Context" c:type="IdeContext*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new_async" c:identifier="ide_context_new_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="project_file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_back_forward_list"
              c:identifier="ide_context_get_back_forward_list">
        <doc xml:space="preserve">Retrieves the global back forward list for the #IdeContext.

Consumers of this should branch the #IdeBackForwardList and merge them
when there document stack is closed.

See ide_back_forward_list_branch() and ide_back_forward_list_merge() for
more information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeBackForwardList.</doc>
          <type name="BackForwardList" c:type="IdeBackForwardList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_manager"
              c:identifier="ide_context_get_buffer_manager">
        <doc xml:space="preserve">Gets the #IdeContext:buffer-manager property. The buffer manager is responsible for loading
and saving buffers (files) within the #IdeContext. It provides a convenient place for scripts
to hook into the load and save process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeBufferManager.</doc>
          <type name="BufferManager" c:type="IdeBufferManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_build_system"
              c:identifier="ide_context_get_build_system">
        <doc xml:space="preserve">Fetches the "build-system" property of @context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeBuildSystem.</doc>
          <type name="BuildSystem" c:type="IdeBuildSystem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_device_manager"
              c:identifier="ide_context_get_device_manager">
        <doc xml:space="preserve">Retrieves the "device-manager" property. The device manager is responsible
for connecting and disconnecting to physical or virtual devices within
LibIDE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeDeviceManager.</doc>
          <type name="DeviceManager" c:type="IdeDeviceManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_project" c:identifier="ide_context_get_project">
        <doc xml:space="preserve">Retrieves the #IdeProject for the context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeContext.</doc>
          <type name="Project" c:type="IdeProject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_project_file"
              c:identifier="ide_context_get_project_file">
        <doc xml:space="preserve">Retrieves a #GFile containing the project file that was used to load
the context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_recent_manager"
              c:identifier="ide_context_get_recent_manager">
        <doc xml:space="preserve">Gets the IdeContext:recent-manager property. The recent manager is a GtkRecentManager instance
that should be used for the workbench.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkRecentManager.</doc>
          <type name="Gtk.RecentManager" c:type="GtkRecentManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root_build_dir"
              c:identifier="ide_context_get_root_build_dir">
        <doc xml:space="preserve">Retrieves the "root-build-dir" for the context. This is the root directory
that will contain builds made for various devices.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string containing the "root-build-dir" property.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_script_manager"
              c:identifier="ide_context_get_script_manager">
        <doc xml:space="preserve">Retrieves the script manager for the context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeScriptManager.</doc>
          <type name="ScriptManager" c:type="IdeScriptManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_engine"
              c:identifier="ide_context_get_search_engine">
        <doc xml:space="preserve">Retrieves the search engine for the context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSearchEngine.</doc>
          <type name="SearchEngine" c:type="IdeSearchEngine*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_service_typed"
              c:identifier="ide_context_get_service_typed">
        <doc xml:space="preserve">Retrieves a service matching @service_type. If no match was found, a type
implementing the requested service type will be returned. If no matching
service type could be found, then an instance of the service will be
created, started, and returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeService or %NULL.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="service_type" transfer-ownership="none">
            <doc xml:space="preserve">A #GType of the service desired.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_settings" c:identifier="ide_context_get_settings">
        <doc xml:space="preserve">Gets an #IdeSettings representing the given #GSettingsSchema.

relative_path will be used to apply multiple layers of settings. Project settings will be
applied to first, followed by global settings.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeSettings.</doc>
          <type name="Settings" c:type="IdeSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="schema_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="relative_path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_snippets_manager"
              c:identifier="ide_context_get_snippets_manager">
        <doc xml:space="preserve">Gets the #IdeContext:snippets-manager property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSourceSnippetsManager.</doc>
          <type name="SourceSnippetsManager"
                c:type="IdeSourceSnippetsManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_unsaved_files"
              c:identifier="ide_context_get_unsaved_files">
        <doc xml:space="preserve">Returns the unsaved files for the #IdeContext. These are the contents of
open buffers in the IDE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeUnsavedFiles.</doc>
          <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vcs" c:identifier="ide_context_get_vcs">
        <doc xml:space="preserve">Retrieves the #IdeVcs used to load the project. If no version control system
could be found, this will return an #IdeDirectoryVcs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeVcs.</doc>
          <type name="Vcs" c:type="IdeVcs*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hold" c:identifier="ide_context_hold">
        <doc xml:space="preserve">Puts a hold on the #IdeContext, preventing the context from being unloaded
until a call to ide_context_release().

If ide_context_unload_async() is called while a hold is in progress, the
unload will be delayed until ide_context_release() has been called the
same number of times as ide_context_hold().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #IdeContext</doc>
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="release" c:identifier="ide_context_release">
        <doc xml:space="preserve">Releases a hold on the context previously created with ide_context_hold().

If a pending unload of the context has been requested, it will be dispatched
once the hold count reaches zero.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #IdeContext</doc>
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="restore_async" c:identifier="ide_context_restore_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_finish"
              c:identifier="ide_context_restore_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_root_build_dir"
              c:identifier="ide_context_set_root_build_dir">
        <doc xml:space="preserve">Sets the "root-build-dir" property. This is the root directory that will
be used when building projects for projects that support building out of
tree.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="root_build_dir" transfer-ownership="none">
            <doc xml:space="preserve">the path to the root build directory.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unload_async" c:identifier="ide_context_unload_async">
        <doc xml:space="preserve">This function attempts to unload various components in the #IdeContext. This
should be called before you dispose the context. Unsaved buffers will be
persisted to the drafts directory.  More operations may be added in the
future.

If there is a hold on the #IdeContext, created by ide_context_hold(), then
the unload request will be delayed until the appropriate number of calls to
ide_context_release() have been called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="unload_finish"
              c:identifier="ide_context_unload_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="back-forward-list" transfer-ownership="none">
        <type name="BackForwardList"/>
      </property>
      <property name="buffer-manager" transfer-ownership="none">
        <type name="BufferManager"/>
      </property>
      <property name="build-system" transfer-ownership="none">
        <type name="BuildSystem"/>
      </property>
      <property name="device-manager" transfer-ownership="none">
        <type name="DeviceManager"/>
      </property>
      <property name="project" transfer-ownership="none">
        <type name="Project"/>
      </property>
      <property name="project-file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="root-build-dir" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="script-manager" transfer-ownership="none">
        <type name="ScriptManager"/>
      </property>
      <property name="search-engine" transfer-ownership="none">
        <type name="SearchEngine"/>
      </property>
      <property name="snippets-manager" writable="1" transfer-ownership="none">
        <type name="SourceSnippetsManager"/>
      </property>
      <property name="unsaved-files" transfer-ownership="none">
        <type name="UnsavedFiles"/>
      </property>
      <property name="vcs" transfer-ownership="none">
        <type name="Vcs"/>
      </property>
      <glib:signal name="loaded" when="last">
        <doc xml:space="preserve">This signal is emitted when loading of the context has completed.
Plugins and services might want to get notified of this to perform
work that requires subsystems that may not be loaded during context
startup.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ContextClass"
            c:type="IdeContextClass"
            glib:is-gtype-struct-for="Context">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="Debugger"
               c:symbol-prefix="debugger"
               c:type="IdeDebugger"
               glib:type-name="IdeDebugger"
               glib:get-type="ide_debugger_get_type"
               glib:type-struct="DebuggerInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="DebuggerInterface"
            c:type="IdeDebuggerInterface"
            glib:is-gtype-struct-for="Debugger">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <class name="Deployer"
           c:symbol-prefix="deployer"
           c:type="IdeDeployer"
           parent="Object"
           abstract="1"
           glib:type-name="IdeDeployer"
           glib:get-type="ide_deployer_get_type"
           glib:type-struct="DeployerClass">
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="DeployerClass"
            c:type="IdeDeployerClass"
            glib:is-gtype-struct-for="Deployer">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="Device"
           c:symbol-prefix="device"
           c:type="IdeDevice"
           parent="Object"
           abstract="1"
           glib:type-name="IdeDevice"
           glib:get-type="ide_device_get_type"
           glib:type-struct="DeviceClass">
      <virtual-method name="get_config" invoker="get_config">
        <doc xml:space="preserve">Retrieves any custom configuration that is required to build for the
device. Such values might include additional options to autoconf
or paths to cross-compilers.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GKeyFile or %NULL.</doc>
          <type name="GLib.KeyFile" c:type="GKeyFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeDevice.</doc>
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_system_type" invoker="get_system_type">
        <doc xml:space="preserve">This is the description of the system we are building for. Commonly, this
is referred to as a "system_type". A combination of the machine architecture
such as x86_64, the operating system, and the libc.

"x86_64-linux-gnu" might be one such system.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string containing the system type.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_config" c:identifier="ide_device_get_config">
        <doc xml:space="preserve">Retrieves any custom configuration that is required to build for the
device. Such values might include additional options to autoconf
or paths to cross-compilers.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GKeyFile or %NULL.</doc>
          <type name="GLib.KeyFile" c:type="GKeyFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeDevice.</doc>
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="ide_device_get_display_name">
        <doc xml:space="preserve">This function returns the name of the device. If no name has been set, then
%NULL is returned.

In some cases, this value wont be available until additional information
has been probed from the device.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A string containing the display name for the device.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ide_device_get_id">
        <doc xml:space="preserve">Retrieves the "id" property of the #IdeDevice. This is generally not a
user friendly name as it is often a guid.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A unique identifier for the device.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_system_type" c:identifier="ide_device_get_system_type">
        <doc xml:space="preserve">This is the description of the system we are building for. Commonly, this
is referred to as a "system_type". A combination of the machine architecture
such as x86_64, the operating system, and the libc.

"x86_64-linux-gnu" might be one such system.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string containing the system type.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_display_name"
              c:identifier="ide_device_set_display_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
          <parameter name="display_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="ide_device_set_id">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="display-name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="system-type" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="DeviceClass"
            c:type="IdeDeviceClass"
            glib:is-gtype-struct-for="Device">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="get_config">
        <callback name="get_config">
          <return-value transfer-ownership="none" nullable="1">
            <doc xml:space="preserve">A #GKeyFile or %NULL.</doc>
            <type name="GLib.KeyFile" c:type="GKeyFile*"/>
          </return-value>
          <parameters>
            <parameter name="device" transfer-ownership="none">
              <doc xml:space="preserve">A #IdeDevice.</doc>
              <type name="Device" c:type="IdeDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_system_type">
        <callback name="get_system_type">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">A string containing the system type.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="device" transfer-ownership="none">
              <type name="Device" c:type="IdeDevice*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="DeviceManager"
           c:symbol-prefix="device_manager"
           c:type="IdeDeviceManager"
           parent="Object"
           glib:type-name="IdeDeviceManager"
           glib:get-type="ide_device_manager_get_type"
           glib:type-struct="DeviceManagerClass">
      <implements name="Gio.ListModel"/>
      <method name="add_provider"
              c:identifier="ide_device_manager_add_provider">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DeviceManager" c:type="IdeDeviceManager*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_device" c:identifier="ide_device_manager_get_device">
        <doc xml:space="preserve">Fetches the first device that matches the device identifier @device_id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeDevice or %NULL.</doc>
          <type name="Device" c:type="IdeDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DeviceManager" c:type="IdeDeviceManager*"/>
          </instance-parameter>
          <parameter name="device_id" transfer-ownership="none">
            <doc xml:space="preserve">The device identifier string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices" c:identifier="ide_device_manager_get_devices">
        <doc xml:space="preserve">Retrieves all of the devices that are registered with the #IdeDeviceManager.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">An array of devices
  registered with the #IdeManager.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DeviceManager" c:type="IdeDeviceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settled" c:identifier="ide_device_manager_get_settled">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DeviceManager" c:type="IdeDeviceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_provider"
              c:identifier="ide_device_manager_remove_provider">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DeviceManager" c:type="IdeDeviceManager*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </parameter>
        </parameters>
      </method>
      <property name="settled" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="device-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="DeviceProvider"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="DeviceProvider"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="DeviceManagerClass"
            c:type="IdeDeviceManagerClass"
            glib:is-gtype-struct-for="DeviceManager">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <interface name="DeviceProvider"
               c:symbol-prefix="device_provider"
               c:type="IdeDeviceProvider"
               glib:type-name="IdeDeviceProvider"
               glib:get-type="ide_device_provider_get_type"
               glib:type-struct="DeviceProviderInterface">
      <prerequisite name="Object"/>
      <virtual-method name="get_devices" invoker="get_devices">
        <doc xml:space="preserve">Retrieves a list of devices currently managed by @provider.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A #GPtrArray of
 #IdeDevice instances.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_settled" invoker="get_settled">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="emit_device_added"
              c:identifier="ide_device_provider_emit_device_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_device_removed"
              c:identifier="ide_device_provider_emit_device_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="Device" c:type="IdeDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_devices"
              c:identifier="ide_device_provider_get_devices">
        <doc xml:space="preserve">Retrieves a list of devices currently managed by @provider.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A #GPtrArray of
 #IdeDevice instances.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Device"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settled"
              c:identifier="ide_device_provider_get_settled">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
      <property name="settled" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="device-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="device-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Device"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="DeviceProviderInterface"
            c:type="IdeDeviceProviderInterface"
            glib:is-gtype-struct-for="DeviceProvider">
      <field name="parent_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_settled">
        <callback name="get_settled">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_devices">
        <callback name="get_devices">
          <return-value transfer-ownership="container">
            <doc xml:space="preserve">A #GPtrArray of
 #IdeDevice instances.</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="Device"/>
            </array>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="DeviceProvider" c:type="IdeDeviceProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="Diagnostic"
            c:type="IdeDiagnostic"
            glib:type-name="IdeDiagnostic"
            glib:get-type="ide_diagnostic_get_type"
            c:symbol-prefix="diagnostic">
      <method name="get_fixit" c:identifier="ide_diagnostic_get_fixit">
        <doc xml:space="preserve">Gets the fixit denoted by @index. This value should be less than the value
returned from ide_diagnostic_get_num_fixits().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeFixit.</doc>
          <type name="Fixit" c:type="IdeFixit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeDiagnostic.</doc>
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve">The index of the fixit.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_location" c:identifier="ide_diagnostic_get_location">
        <doc xml:space="preserve">Gets the location of a diagnostic.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Gets the location of a diagnostic.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeDiagnostic.</doc>
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_fixits"
              c:identifier="ide_diagnostic_get_num_fixits">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_ranges"
              c:identifier="ide_diagnostic_get_num_ranges">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_range" c:identifier="ide_diagnostic_get_range">
        <doc xml:space="preserve">Retrieves the range found at @index. It is a programming error to call this
function with a value greater or equal to ide_diagnostic_get_num_ranges().</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSourceRange</doc>
          <type name="SourceRange" c:type="IdeSourceRange*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_severity" c:identifier="ide_diagnostic_get_severity">
        <return-value transfer-ownership="none">
          <type name="DiagnosticSeverity" c:type="IdeDiagnosticSeverity"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="ide_diagnostic_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_for_display"
              c:identifier="ide_diagnostic_get_text_for_display">
        <doc xml:space="preserve">This creates a new string that is formatted using the diagnostics line number, column, severity,
and message text in the format "line:column: severity: message".

This can be convenient when wanting to quickly display a diagnostic such as in a tooltip.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string containing the text formatted for display.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_diagnostic_ref">
        <return-value transfer-ownership="full">
          <type name="Diagnostic" c:type="IdeDiagnostic*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_diagnostic_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostic" c:type="IdeDiagnostic*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <interface name="DiagnosticProvider"
               c:symbol-prefix="diagnostic_provider"
               c:type="IdeDiagnosticProvider"
               glib:type-name="IdeDiagnosticProvider"
               glib:get-type="ide_diagnostic_provider_get_type"
               glib:type-struct="DiagnosticProviderInterface">
      <prerequisite name="Object"/>
      <virtual-method name="diagnose_async" invoker="diagnose_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DiagnosticProvider" c:type="IdeDiagnosticProvider*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="diagnose_finish"
                      invoker="diagnose_finish"
                      throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to ide_diagnostic_provider_diagnose_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">#IdeDiagnostics or %NULL and @error is set.</doc>
          <type name="Diagnostics" c:type="IdeDiagnostics*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DiagnosticProvider" c:type="IdeDiagnosticProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="diagnose_async"
              c:identifier="ide_diagnostic_provider_diagnose_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DiagnosticProvider" c:type="IdeDiagnosticProvider*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="diagnose_finish"
              c:identifier="ide_diagnostic_provider_diagnose_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to ide_diagnostic_provider_diagnose_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">#IdeDiagnostics or %NULL and @error is set.</doc>
          <type name="Diagnostics" c:type="IdeDiagnostics*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DiagnosticProvider" c:type="IdeDiagnosticProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
    </interface>
    <record name="DiagnosticProviderInterface"
            c:type="IdeDiagnosticProviderInterface"
            glib:is-gtype-struct-for="DiagnosticProvider">
      <field name="parent_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="diagnose_async">
        <callback name="diagnose_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DiagnosticProvider" c:type="IdeDiagnosticProvider*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="File" c:type="IdeFile*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="diagnose_finish">
        <callback name="diagnose_finish" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">#IdeDiagnostics or %NULL and @error is set.</doc>
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="DiagnosticProvider" c:type="IdeDiagnosticProvider*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="DiagnosticSeverity"
                 glib:type-name="IdeDiagnosticSeverity"
                 glib:get-type="ide_diagnostic_severity_get_type"
                 c:type="IdeDiagnosticSeverity">
      <member name="ignored"
              value="0"
              c:identifier="IDE_DIAGNOSTIC_IGNORED"
              glib:nick="ignored">
      </member>
      <member name="note"
              value="1"
              c:identifier="IDE_DIAGNOSTIC_NOTE"
              glib:nick="note">
      </member>
      <member name="deprecated"
              value="2"
              c:identifier="IDE_DIAGNOSTIC_DEPRECATED"
              glib:nick="deprecated">
      </member>
      <member name="warning"
              value="3"
              c:identifier="IDE_DIAGNOSTIC_WARNING"
              glib:nick="warning">
      </member>
      <member name="error"
              value="4"
              c:identifier="IDE_DIAGNOSTIC_ERROR"
              glib:nick="error">
      </member>
      <member name="fatal"
              value="5"
              c:identifier="IDE_DIAGNOSTIC_FATAL"
              glib:nick="fatal">
      </member>
      <function name="to_string"
                c:identifier="ide_diagnostic_severity_to_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="severity" transfer-ownership="none">
            <type name="DiagnosticSeverity" c:type="IdeDiagnosticSeverity"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="Diagnostician"
           c:symbol-prefix="diagnostician"
           c:type="IdeDiagnostician"
           parent="Object"
           glib:type-name="IdeDiagnostician"
           glib:get-type="ide_diagnostician_get_type"
           glib:type-struct="DiagnosticianClass">
      <method name="diagnose_async"
              c:identifier="ide_diagnostician_diagnose_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="diagnostician" transfer-ownership="none">
            <type name="Diagnostician" c:type="IdeDiagnostician*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="diagnose_finish"
              c:identifier="ide_diagnostician_diagnose_finish"
              throws="1">
        <return-value transfer-ownership="full">
          <type name="Diagnostics" c:type="IdeDiagnostics*"/>
        </return-value>
        <parameters>
          <instance-parameter name="diagnostician" transfer-ownership="none">
            <type name="Diagnostician" c:type="IdeDiagnostician*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="ide_diagnostician_get_language">
        <doc xml:space="preserve">Gets the #IdeDiagnostician:language property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkSourceLanguage.</doc>
          <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostician" c:type="IdeDiagnostician*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_language"
              c:identifier="ide_diagnostician_set_language">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostician" c:type="IdeDiagnostician*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <property name="language" writable="1" transfer-ownership="none">
        <type name="GtkSource.Language"/>
      </property>
    </class>
    <record name="DiagnosticianClass"
            c:type="IdeDiagnosticianClass"
            glib:is-gtype-struct-for="Diagnostician">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <record name="Diagnostics"
            c:type="IdeDiagnostics"
            glib:type-name="IdeDiagnostics"
            glib:get-type="ide_diagnostics_get_type"
            c:symbol-prefix="diagnostics">
      <method name="get_size" c:identifier="ide_diagnostics_get_size">
        <doc xml:space="preserve">Retrieves the number of diagnostics that can be accessed via
ide_diagnostics_index().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of diagnostics in @self.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="index" c:identifier="ide_diagnostics_index">
        <doc xml:space="preserve">Retrieves the diagnostic at @index.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeDiagnostic.</doc>
          <type name="Diagnostic" c:type="IdeDiagnostic*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge" c:identifier="ide_diagnostics_merge">
        <doc xml:space="preserve">Copies the contents of @other into @self.

This is performed by taking a reference to the immutable #IdeDiagnostic
instances.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_diagnostics_ref">
        <return-value transfer-ownership="full">
          <type name="Diagnostics" c:type="IdeDiagnostics*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_diagnostics_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Diagnostics" c:type="IdeDiagnostics*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="DirectoryVcs"
           c:symbol-prefix="directory_vcs"
           c:type="IdeDirectoryVcs"
           parent="Vcs"
           glib:type-name="IdeDirectoryVcs"
           glib:get-type="ide_directory_vcs_get_type"
           glib:type-struct="DirectoryVcsClass">
      <implements name="Gio.AsyncInitable"/>
    </class>
    <record name="DirectoryVcsClass"
            c:type="IdeDirectoryVcsClass"
            glib:is-gtype-struct-for="DirectoryVcs">
      <field name="parent_class">
        <type name="VcsClass" c:type="IdeVcsClass"/>
      </field>
    </record>
    <class name="Doap"
           c:symbol-prefix="doap"
           c:type="IdeDoap"
           parent="GObject.Object"
           glib:type-name="IdeDoap"
           glib:get-type="ide_doap_get_type"
           glib:type-struct="DoapClass">
      <constructor name="new" c:identifier="ide_doap_new">
        <return-value transfer-ownership="full">
          <type name="Doap" c:type="IdeDoap*"/>
        </return-value>
      </constructor>
      <method name="get_bug_database" c:identifier="ide_doap_get_bug_database">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_category" c:identifier="ide_doap_get_category">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description" c:identifier="ide_doap_get_description">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_download_page"
              c:identifier="ide_doap_get_download_page">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_homepage" c:identifier="ide_doap_get_homepage">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_languages" c:identifier="ide_doap_get_languages">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GStrv.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_maintainers" c:identifier="ide_doap_get_maintainers">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of #IdeDoapPerson.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DoapPerson"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_doap_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shortdesc" c:identifier="ide_doap_get_shortdesc">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_from_file"
              c:identifier="ide_doap_load_from_file"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Doap" c:type="IdeDoap*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="bug-database" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="category" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="description" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="download-page" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="homepage" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="languages" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="shortdesc" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="DoapClass"
            c:type="IdeDoapClass"
            glib:is-gtype-struct-for="Doap">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="DoapError"
                 glib:type-name="IdeDoapError"
                 glib:get-type="ide_doap_error_get_type"
                 c:type="IdeDoapError"
                 glib:error-domain="ide_doap_error">
      <member name="format"
              value="1"
              c:identifier="IDE_DOAP_ERROR_INVALID_FORMAT"
              glib:nick="format">
      </member>
      <function name="quark" c:identifier="ide_doap_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="DoapPerson"
           c:symbol-prefix="doap_person"
           c:type="IdeDoapPerson"
           parent="GObject.Object"
           glib:type-name="IdeDoapPerson"
           glib:get-type="ide_doap_person_get_type"
           glib:type-struct="DoapPersonClass">
      <constructor name="new" c:identifier="ide_doap_person_new">
        <return-value transfer-ownership="full">
          <type name="DoapPerson" c:type="IdeDoapPerson*"/>
        </return-value>
      </constructor>
      <method name="get_email" c:identifier="ide_doap_person_get_email">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DoapPerson" c:type="IdeDoapPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_doap_person_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DoapPerson" c:type="IdeDoapPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_email" c:identifier="ide_doap_person_set_email">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DoapPerson" c:type="IdeDoapPerson*"/>
          </instance-parameter>
          <parameter name="email" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="ide_doap_person_set_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="DoapPerson" c:type="IdeDoapPerson*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="email" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="DoapPersonClass"
            c:type="IdeDoapPersonClass"
            glib:is-gtype-struct-for="DoapPerson">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <interface name="Executable"
               c:symbol-prefix="executable"
               c:type="IdeExecutable"
               glib:type-name="IdeExecutable"
               glib:get-type="ide_executable_get_type"
               glib:type-struct="ExecutableInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="ExecutableInterface"
            c:type="IdeExecutableInterface"
            glib:is-gtype-struct-for="Executable">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <interface name="Executer"
               c:symbol-prefix="executer"
               c:type="IdeExecuter"
               glib:type-name="IdeExecuter"
               glib:get-type="ide_executer_get_type"
               glib:type-struct="ExecuterInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="ExecuterInterface"
            c:type="IdeExecuterInterface"
            glib:is-gtype-struct-for="Executer">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <class name="ExtensionAdapter"
           c:symbol-prefix="extension_adapter"
           c:type="IdeExtensionAdapter"
           parent="Object"
           glib:type-name="IdeExtensionAdapter"
           glib:get-type="ide_extension_adapter_get_type"
           glib:type-struct="ExtensionAdapterClass">
      <constructor name="new" c:identifier="ide_extension_adapter_new">
        <doc xml:space="preserve">Creates a new #IdeExtensionAdapter.

The #IdeExtensionAdapter object can be used to wrap an extension that might need to change
at runtime based on various changing parameters. For example, it can watch the loading and
unloading of plugins and reload the #IdeExtensionAdapter:extension property.

Additionally, it can match a specific plugin based on the @value provided.

This uses #IdeExtensionPoint to create the extension implementation, which means that
extension points that are disabled (such as from the plugins GSettings) will be ignored.
As such, if one plugin that is higher priority than another, but is disabled, will be
ignored and the secondary plugin will be used.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #IdeExtensionAdapter.</doc>
          <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeContext.</doc>
            <type name="Context" c:type="IdeContext*"/>
          </parameter>
          <parameter name="engine"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #PeasEngine or %NULL.</doc>
            <type name="Peas.Engine" c:type="PeasEngine*"/>
          </parameter>
          <parameter name="interface_type" transfer-ownership="none">
            <doc xml:space="preserve">The #GType of the interface to be implemented.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The key for matching extensions from plugin info external data.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The value to use when matching keys.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_engine"
              c:identifier="ide_extension_adapter_get_engine">
        <doc xml:space="preserve">Gets the #IdeExtensionAdapter:engine property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #PeasEngine.</doc>
          <type name="Peas.Engine" c:type="PeasEngine*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_extension"
              c:identifier="ide_extension_adapter_get_extension">
        <doc xml:space="preserve">Gets the extension object managed by the adapter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GObject or %NULL.</doc>
          <type name="GObject.Object" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_interface_type"
              c:identifier="ide_extension_adapter_get_interface_type">
        <return-value transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key" c:identifier="ide_extension_adapter_get_key">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="ide_extension_adapter_get_value">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_key" c:identifier="ide_extension_adapter_set_key">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="ide_extension_adapter_set_value">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionAdapter" c:type="IdeExtensionAdapter*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="engine"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Peas.Engine"/>
      </property>
      <property name="extension" transfer-ownership="none">
        <type name="GObject.Object"/>
      </property>
      <property name="interface-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </property>
      <property name="key" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="value" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ExtensionAdapterClass"
            c:type="IdeExtensionAdapterClass"
            glib:is-gtype-struct-for="ExtensionAdapter">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="ExtensionSetAdapter"
           c:symbol-prefix="extension_set_adapter"
           c:type="IdeExtensionSetAdapter"
           parent="Object"
           glib:type-name="IdeExtensionSetAdapter"
           glib:get-type="ide_extension_set_adapter_get_type"
           glib:type-struct="ExtensionSetAdapterClass">
      <constructor name="new" c:identifier="ide_extension_set_adapter_new">
        <return-value transfer-ownership="full">
          <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </parameter>
          <parameter name="engine" transfer-ownership="none">
            <type name="Peas.Engine" c:type="PeasEngine*"/>
          </parameter>
          <parameter name="interface_type" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="foreach" c:identifier="ide_extension_set_adapter_foreach">
        <doc xml:space="preserve">Calls @foreach_func for every extension loaded by the extension set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeExtensionSetAdapter</doc>
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
          <parameter name="foreach_func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve">A callback</doc>
            <type name="ExtensionSetAdapterForeachFunc"
                  c:type="IdeExtensionSetAdapterForeachFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">user data for @foreach_func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_engine"
              c:identifier="ide_extension_set_adapter_get_engine">
        <doc xml:space="preserve">Gets the #IdeExtensionSetAdapter:engine property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #PeasEngine.</doc>
          <type name="Peas.Engine" c:type="PeasEngine*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_interface_type"
              c:identifier="ide_extension_set_adapter_get_interface_type">
        <return-value transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key" c:identifier="ide_extension_set_adapter_get_key">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_extensions"
              c:identifier="ide_extension_set_adapter_get_n_extensions">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="ide_extension_set_adapter_get_value">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_key" c:identifier="ide_extension_set_adapter_set_key">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="ide_extension_set_adapter_set_value">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="engine"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Peas.Engine"/>
      </property>
      <property name="interface-type"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </property>
      <property name="key" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="value" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="extension-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Peas.PluginInfo"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="extension-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Peas.PluginInfo"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ExtensionSetAdapterClass"
            c:type="IdeExtensionSetAdapterClass"
            glib:is-gtype-struct-for="ExtensionSetAdapter">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <callback name="ExtensionSetAdapterForeachFunc"
              c:type="IdeExtensionSetAdapterForeachFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="set" transfer-ownership="none">
          <type name="ExtensionSetAdapter" c:type="IdeExtensionSetAdapter*"/>
        </parameter>
        <parameter name="plugin_info" transfer-ownership="none">
          <type name="Peas.PluginInfo" c:type="PeasPluginInfo*"/>
        </parameter>
        <parameter name="extension" transfer-ownership="none">
          <type name="Peas.Extension" c:type="PeasExtension*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <constant name="FILE_SETTINGS_EXTENSION_POINT"
              value="org.gnome.libide.extensions.file-settings"
              c:type="IDE_FILE_SETTINGS_EXTENSION_POINT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="File"
           c:symbol-prefix="file"
           c:type="IdeFile"
           parent="Object"
           glib:type-name="IdeFile"
           glib:get-type="ide_file_get_type"
           glib:type-struct="FileClass">
      <method name="equal" c:identifier="ide_file_equal">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_other_async" c:identifier="ide_file_find_other_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_other_finish"
              c:identifier="ide_file_find_other_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to ide_file_find_other_async(). This function
will try to find a matching file for languages where this exists. Such cases
include C and C++ where a .c or .cpp file may have a .h or .hh header. Additional
suffixes are implemented including (.c, .cc, .cpp, .cxx, .h, .hh, .hpp, and .hxx).

Returns an #IdeFile if successful, otherwise %NULL and @error is set.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeFIle or %NULL.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file" c:identifier="ide_file_get_file">
        <doc xml:space="preserve">Retrieves the underlying #GFile represented by @self.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_temporary" c:identifier="ide_file_get_is_temporary">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language" c:identifier="ide_file_get_language">
        <doc xml:space="preserve">Retrieves the #GtkSourceLanguage that was discovered for the file.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkSourceLanguage or %NULL.</doc>
          <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="ide_file_get_path">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_project_path" c:identifier="ide_file_get_project_path">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_temporary_id" c:identifier="ide_file_get_temporary_id">
        <doc xml:space="preserve">Gets the #IdeFile:temporary-id property for the file.

Temporary files have unique identifiers associated with them so that we can
display names such as "unsaved file 1" and know that it will not collide with
another temporary file.

Files that are not temporary, will return zero.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A positive integer greater than zero if the file is a temporary file.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeFile.</doc>
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="ide_file_hash">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_settings_async"
              c:identifier="ide_file_load_settings_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_settings_finish"
              c:identifier="ide_file_load_settings_finish"
              throws="1">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeFileSettings or %NULL upon failure and
  @error is set.</doc>
          <type name="FileSettings" c:type="IdeFileSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="is-temporary" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="language" transfer-ownership="none">
        <type name="GtkSource.Language"/>
      </property>
      <property name="path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="temporary-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="FileClass"
            c:type="IdeFileClass"
            glib:is-gtype-struct-for="File">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="FileSettings"
           c:symbol-prefix="file_settings"
           c:type="IdeFileSettings"
           parent="Object"
           glib:type-name="IdeFileSettings"
           glib:get-type="ide_file_settings_get_type"
           glib:type-struct="FileSettingsClass">
      <constructor name="new" c:identifier="ide_file_settings_new">
        <return-value transfer-ownership="full">
          <type name="FileSettings" c:type="IdeFileSettings*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="File" c:type="IdeFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_file" c:identifier="ide_file_settings_get_file">
        <doc xml:space="preserve">Retrieves the underlying file that @self refers to.

This may be used by #IdeFileSettings implementations to discover additional
information about the settings. For example, a modeline parser might load
some portion of the file looking for modelines. An editorconfig
implementation might look for ".editorconfig" files.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeFile.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeFileSettings.</doc>
            <type name="FileSettings" c:type="IdeFileSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settled" c:identifier="ide_file_settings_get_settled">
        <doc xml:space="preserve">Gets the #IdeFileSettings:settled property.

This property is %TRUE when all of the children file settings have completed loading.

Some file setting implementations require that various I/O be performed on disk in
the background. This property will change to %TRUE when all of the settings have
been loaded.

Normally, this is not a problem, since the editor will respond to changes and update them
accordingly. However, if you are writing a tool that prints the file settings
(such as ide-list-file-settings), you probably want to wait until the values have
settled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if all the settings have loaded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeFileSettings.</doc>
            <type name="FileSettings" c:type="IdeFileSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="encoding" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="encoding-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="File"/>
      </property>
      <property name="indent-style" writable="1" transfer-ownership="none">
        <type name="IndentStyle"/>
      </property>
      <property name="indent-style-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="indent-width" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="indent-width-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="insert-trailing-newline"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="insert-trailing-newline-set"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="newline-type" writable="1" transfer-ownership="none">
        <type name="GtkSource.NewlineType"/>
      </property>
      <property name="newline-type-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="right-margin-position"
                writable="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="right-margin-position-set"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="settled" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-right-margin"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-right-margin-set"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="tab-width" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="tab-width-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="trim-trailing-whitespace"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="trim-trailing-whitespace-set"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="FileSettingsClass"
            c:type="IdeFileSettingsClass"
            glib:is-gtype-struct-for="FileSettings">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <record name="Fixit"
            c:type="IdeFixit"
            glib:type-name="IdeFixit"
            glib:get-type="ide_fixit_get_type"
            c:symbol-prefix="fixit">
      <method name="apply" c:identifier="ide_fixit_apply">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Fixit" c:type="IdeFixit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_range" c:identifier="ide_fixit_get_range">
        <doc xml:space="preserve">Gets the range for the replacement text. The range is non inclusive of the
end location. [a,b)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSourceRange.</doc>
          <type name="SourceRange" c:type="IdeSourceRange*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeFixit.</doc>
            <type name="Fixit" c:type="IdeFixit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="ide_fixit_get_text">
        <doc xml:space="preserve">Gets the text to replace the source range with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A string with the replacement text.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeFixit.</doc>
            <type name="Fixit" c:type="IdeFixit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_fixit_ref">
        <return-value transfer-ownership="full">
          <type name="Fixit" c:type="IdeFixit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Fixit" c:type="IdeFixit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_fixit_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Fixit" c:type="IdeFixit*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="GitRemoteCallbacks"
           c:symbol-prefix="git_remote_callbacks"
           c:type="IdeGitRemoteCallbacks"
           parent="Ggit.RemoteCallbacks"
           glib:type-name="IdeGitRemoteCallbacks"
           glib:get-type="ide_git_remote_callbacks_get_type"
           glib:type-struct="GitRemoteCallbacksClass">
      <constructor name="new" c:identifier="ide_git_remote_callbacks_new">
        <return-value transfer-ownership="full">
          <type name="Ggit.RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
        </return-value>
      </constructor>
      <method name="get_fraction"
              c:identifier="ide_git_remote_callbacks_get_fraction">
        <doc xml:space="preserve">Gets the fraction of the current operation. This should typically be bound using
g_object_bind_property() to GtkProgressBar:fraction or similar progress widget.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The operation completion percentage, as a fraction between 0 and 1.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GitRemoteCallbacks" c:type="IdeGitRemoteCallbacks*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_progress"
              c:identifier="ide_git_remote_callbacks_get_progress">
        <doc xml:space="preserve">Gets the #IdeProgress for the operation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeProgress.</doc>
          <type name="Progress" c:type="IdeProgress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GitRemoteCallbacks" c:type="IdeGitRemoteCallbacks*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="fraction" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="GitRemoteCallbacksClass"
            c:type="IdeGitRemoteCallbacksClass"
            glib:is-gtype-struct-for="GitRemoteCallbacks">
      <field name="parent_class">
        <type name="Ggit.RemoteCallbacksClass"
              c:type="GgitRemoteCallbacksClass"/>
      </field>
    </record>
    <class name="GitVcs"
           c:symbol-prefix="git_vcs"
           c:type="IdeGitVcs"
           parent="Vcs"
           glib:type-name="IdeGitVcs"
           glib:get-type="ide_git_vcs_get_type"
           glib:type-struct="GitVcsClass">
      <implements name="Gio.AsyncInitable"/>
      <method name="get_repository" c:identifier="ide_git_vcs_get_repository">
        <doc xml:space="preserve">Retrieves the underlying #GgitRepository used by @vcs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GgitRepository.</doc>
          <type name="Ggit.Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vcs" transfer-ownership="none">
            <type name="GitVcs" c:type="IdeGitVcs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="repository" transfer-ownership="none">
        <doc xml:space="preserve">This property contains the underlying #GgitRepository that can be used to lookup git
information. Consumers should be careful about using this directly. It is not thread-safe
to use this object, nor is it safe to perform many blocking calls from the main thread.

You might want to get the #GgitRepository:location property and create your own instance
of the repository for threaded operations.</doc>
        <type name="Ggit.Repository"/>
      </property>
      <glib:signal name="reloaded" when="last">
        <doc xml:space="preserve">This signal is emitted when the git index has been reloaded. Various consumers may want to
reload their git objects upon this notification. Such an example would be the line diffs
that are rendered in the source view gutter.

The @repository instance is to aide consumers in locating the repository and should not
be used directly except in very specific situations. The gutter change renderer uses this
instance in a threaded manner.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve">A #GgitRepository</doc>
            <type name="Ggit.Repository"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="GitVcsClass"
            c:type="IdeGitVcsClass"
            glib:is-gtype-struct-for="GitVcs">
      <field name="parent_class">
        <type name="VcsClass" c:type="IdeVcsClass"/>
      </field>
    </record>
    <callback name="HighlightCallback" c:type="IdeHighlightCallback">
      <return-value transfer-ownership="none">
        <type name="HighlightResult" c:type="IdeHighlightResult"/>
      </return-value>
      <parameters>
        <parameter name="begin" transfer-ownership="none">
          <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
        </parameter>
        <parameter name="end" transfer-ownership="none">
          <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
        </parameter>
        <parameter name="style_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="HighlightEngine"
           c:symbol-prefix="highlight_engine"
           c:type="IdeHighlightEngine"
           parent="Object"
           glib:type-name="IdeHighlightEngine"
           glib:get-type="ide_highlight_engine_get_type"
           glib:type-struct="HighlightEngineClass">
      <constructor name="new" c:identifier="ide_highlight_engine_new">
        <return-value transfer-ownership="full">
          <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer" c:identifier="ide_highlight_engine_get_buffer">
        <doc xml:space="preserve">Gets the IdeHighlightEngine:buffer property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeBuffer.</doc>
          <type name="Buffer" c:type="IdeBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeHighlightEngine.</doc>
            <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_highlighter"
              c:identifier="ide_highlight_engine_get_highlighter">
        <doc xml:space="preserve">Gets the IdeHighlightEngine:highlighter property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeHighlighter.</doc>
          <type name="Highlighter" c:type="IdeHighlighter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeHighlightEngine.</doc>
            <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style" c:identifier="ide_highlight_engine_get_style">
        <doc xml:space="preserve">A #GtkTextTag for @style_name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GtkTextTag.</doc>
          <type name="Gtk.TextTag" c:type="GtkTextTag*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #IdeHighlightEngine</doc>
            <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
          </instance-parameter>
          <parameter name="style_name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the style to retrieve</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="invalidate" c:identifier="ide_highlight_engine_invalidate">
        <doc xml:space="preserve">This function will extend the invalidated range of the buffer to include
the range of @begin to @end.

The highlighter will be queued to interactively update the invalidated
region.

Updating the invalidated region of the buffer may take some time, as it is
important that the highlighter does not block for more than 1-2 milliseconds
to avoid dropping frames.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeHighlightEngine.</doc>
            <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
          </instance-parameter>
          <parameter name="begin" transfer-ownership="none">
            <doc xml:space="preserve">the beginning of the range to invalidate</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve">the end of the range to invalidate</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rebuild" c:identifier="ide_highlight_engine_rebuild">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="buffer"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Buffer"/>
      </property>
      <property name="highlighter" transfer-ownership="none">
        <type name="Highlighter"/>
      </property>
    </class>
    <record name="HighlightEngineClass"
            c:type="IdeHighlightEngineClass"
            glib:is-gtype-struct-for="HighlightEngine">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <record name="HighlightIndex"
            c:type="IdeHighlightIndex"
            glib:type-name="IdeHighlightIndex"
            glib:get-type="ide_highlight_index_get_type"
            c:symbol-prefix="highlight_index">
      <constructor name="new" c:identifier="ide_highlight_index_new">
        <return-value transfer-ownership="full">
          <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
        </return-value>
      </constructor>
      <method name="dump" c:identifier="ide_highlight_index_dump">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="ide_highlight_index_insert">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
          </instance-parameter>
          <parameter name="word" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="ide_highlight_index_lookup">
        <doc xml:space="preserve">Gets the pointer tag that was registered for @word, or %NULL.  This can be
any arbitrary value. Some highlight engines might use it to point at
internal structures or strings they know about to optimize later work.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">Highlighter specific tag.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeHighlightIndex.</doc>
            <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
          </instance-parameter>
          <parameter name="word" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_highlight_index_ref">
        <return-value transfer-ownership="full">
          <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_highlight_index_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="HighlightIndex" c:type="IdeHighlightIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="HighlightResult"
                 glib:type-name="IdeHighlightResult"
                 glib:get-type="ide_highlight_result_get_type"
                 c:type="IdeHighlightResult">
      <member name="stop"
              value="0"
              c:identifier="IDE_HIGHLIGHT_STOP"
              glib:nick="stop">
      </member>
      <member name="continue"
              value="1"
              c:identifier="IDE_HIGHLIGHT_CONTINUE"
              glib:nick="continue">
      </member>
    </enumeration>
    <interface name="Highlighter"
               c:symbol-prefix="highlighter"
               c:type="IdeHighlighter"
               glib:type-name="IdeHighlighter"
               glib:get-type="ide_highlighter_get_type"
               glib:type-struct="HighlighterInterface">
      <prerequisite name="Object"/>
      <virtual-method name="set_engine">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Highlighter" c:type="IdeHighlighter*"/>
          </instance-parameter>
          <parameter name="engine" transfer-ownership="none">
            <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update" invoker="update">
        <doc xml:space="preserve">Incrementally processes more of the buffer for highlighting.  If @callback
returns %IDE_HIGHLIGHT_STOP, then this vfunc should stop processing and
return, having set @location to the current position of processing.

If processing the entire range was successful, then @location should be set
to @range_end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeHighlighter.</doc>
            <type name="Highlighter" c:type="IdeHighlighter*"/>
          </instance-parameter>
          <parameter name="callback" transfer-ownership="none" scope="call">
            <doc xml:space="preserve">A callback to apply a given style.</doc>
            <type name="HighlightCallback" c:type="IdeHighlightCallback"/>
          </parameter>
          <parameter name="range_begin" transfer-ownership="none">
            <doc xml:space="preserve">The beginning of the range to update.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="range_end" transfer-ownership="none">
            <doc xml:space="preserve">The end of the range to update.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="location"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">How far the highlighter got in the update.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="update" c:identifier="ide_highlighter_update">
        <doc xml:space="preserve">Incrementally processes more of the buffer for highlighting.  If @callback
returns %IDE_HIGHLIGHT_STOP, then this vfunc should stop processing and
return, having set @location to the current position of processing.

If processing the entire range was successful, then @location should be set
to @range_end.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeHighlighter.</doc>
            <type name="Highlighter" c:type="IdeHighlighter*"/>
          </instance-parameter>
          <parameter name="callback" transfer-ownership="none" scope="call">
            <doc xml:space="preserve">A callback to apply a given style.</doc>
            <type name="HighlightCallback" c:type="IdeHighlightCallback"/>
          </parameter>
          <parameter name="range_begin" transfer-ownership="none">
            <doc xml:space="preserve">The beginning of the range to update.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="range_end" transfer-ownership="none">
            <doc xml:space="preserve">The end of the range to update.</doc>
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="location"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">How far the highlighter got in the update.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
    </interface>
    <record name="HighlighterInterface"
            c:type="IdeHighlighterInterface"
            glib:is-gtype-struct-for="Highlighter">
      <field name="parent_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="update">
        <callback name="update">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">A #IdeHighlighter.</doc>
              <type name="Highlighter" c:type="IdeHighlighter*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none" scope="call">
              <doc xml:space="preserve">A callback to apply a given style.</doc>
              <type name="HighlightCallback" c:type="IdeHighlightCallback"/>
            </parameter>
            <parameter name="range_begin" transfer-ownership="none">
              <doc xml:space="preserve">The beginning of the range to update.</doc>
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="range_end" transfer-ownership="none">
              <doc xml:space="preserve">The end of the range to update.</doc>
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="location"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve">How far the highlighter got in the update.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_engine">
        <callback name="set_engine">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Highlighter" c:type="IdeHighlighter*"/>
            </parameter>
            <parameter name="engine" transfer-ownership="none">
              <type name="HighlightEngine" c:type="IdeHighlightEngine*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="IndentStyle"
                 glib:type-name="IdeIndentStyle"
                 glib:get-type="ide_indent_style_get_type"
                 c:type="IdeIndentStyle">
      <member name="spaces"
              value="1"
              c:identifier="IDE_INDENT_STYLE_SPACES"
              glib:nick="spaces">
      </member>
      <member name="tabs"
              value="2"
              c:identifier="IDE_INDENT_STYLE_TABS"
              glib:nick="tabs">
      </member>
    </enumeration>
    <interface name="Indenter"
               c:symbol-prefix="indenter"
               c:type="IdeIndenter"
               glib:type-name="IdeIndenter"
               glib:get-type="ide_indenter_get_type"
               glib:type-struct="IndenterInterface">
      <prerequisite name="Object"/>
      <virtual-method name="format" invoker="format">
        <doc xml:space="preserve">This function performs an indentation for the key press activated by @event.
The implementation is free to move the @begin and @end iters to swallow
adjacent content. The result, a string, is the contents that will replace
the content inbetween @begin and @end.

@cursor_offset may be set to jump the cursor starting from @end. Negative
values are allowed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string containing the replacement text, or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Indenter" c:type="IdeIndenter*"/>
          </instance-parameter>
          <parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextView</doc>
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
          <parameter name="begin" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter for the beginning region of text to replace.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter for the end region of text to replace.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="cursor_offset" transfer-ownership="none">
            <doc xml:space="preserve">The offset in characters from @end to place the cursor.
  Negative values are okay.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">The #GdkEventKey that triggered the event.</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_trigger" invoker="is_trigger">
        <doc xml:space="preserve">Determines if @event should trigger an indentation request. If %TRUE is
returned then ide_indenter_format() will be called.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @event should trigger an indentation request.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeIndenter</doc>
            <type name="Indenter" c:type="IdeIndenter*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkEventKey</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="format" c:identifier="ide_indenter_format">
        <doc xml:space="preserve">This function performs an indentation for the key press activated by @event.
The implementation is free to move the @begin and @end iters to swallow
adjacent content. The result, a string, is the contents that will replace
the content inbetween @begin and @end.

@cursor_offset may be set to jump the cursor starting from @end. Negative
values are allowed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A string containing the replacement text, or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Indenter" c:type="IdeIndenter*"/>
          </instance-parameter>
          <parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextView</doc>
            <type name="Gtk.TextView" c:type="GtkTextView*"/>
          </parameter>
          <parameter name="begin" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter for the beginning region of text to replace.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkTextIter for the end region of text to replace.</doc>
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="cursor_offset" transfer-ownership="none">
            <doc xml:space="preserve">The offset in characters from @end to place the cursor.
  Negative values are okay.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">The #GdkEventKey that triggered the event.</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_trigger" c:identifier="ide_indenter_is_trigger">
        <doc xml:space="preserve">Determines if @event should trigger an indentation request. If %TRUE is
returned then ide_indenter_format() will be called.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @event should trigger an indentation request.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeIndenter</doc>
            <type name="Indenter" c:type="IdeIndenter*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">a #GdkEventKey</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
    </interface>
    <record name="IndenterInterface"
            c:type="IdeIndenterInterface"
            glib:is-gtype-struct-for="Indenter">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="format">
        <callback name="format">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">A string containing the replacement text, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Indenter" c:type="IdeIndenter*"/>
            </parameter>
            <parameter name="text_view" transfer-ownership="none">
              <doc xml:space="preserve">A #GtkTextView</doc>
              <type name="Gtk.TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="begin" transfer-ownership="none">
              <doc xml:space="preserve">A #GtkTextIter for the beginning region of text to replace.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <doc xml:space="preserve">A #GtkTextIter for the end region of text to replace.</doc>
              <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="cursor_offset" transfer-ownership="none">
              <doc xml:space="preserve">The offset in characters from @end to place the cursor.
  Negative values are okay.</doc>
              <type name="gint" c:type="gint*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:space="preserve">The #GdkEventKey that triggered the event.</doc>
              <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_trigger">
        <callback name="is_trigger">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if @event should trigger an indentation request.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">an #IdeIndenter</doc>
              <type name="Indenter" c:type="IdeIndenter*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:space="preserve">a #GdkEventKey</doc>
              <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="Language" c:type="IdeLanguage" disguised="1">
    </record>
    <class name="LocalDevice"
           c:symbol-prefix="local_device"
           c:type="IdeLocalDevice"
           parent="Device"
           glib:type-name="IdeLocalDevice"
           glib:get-type="ide_local_device_get_type"
           glib:type-struct="LocalDeviceClass">
      <field name="parent_instance">
        <type name="Device" c:type="IdeDevice"/>
      </field>
    </class>
    <record name="LocalDeviceClass"
            c:type="IdeLocalDeviceClass"
            glib:is-gtype-struct-for="LocalDevice">
      <field name="parent">
        <type name="DeviceClass" c:type="IdeDeviceClass"/>
      </field>
    </record>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="IdeObject"
           parent="GObject.Object"
           glib:type-name="IdeObject"
           glib:get-type="ide_object_get_type"
           glib:type-struct="ObjectClass">
      <constructor name="new_finish"
                   c:identifier="ide_object_new_finish"
                   throws="1">
        <return-value transfer-ownership="full">
          <type name="Object" c:type="IdeObject*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new_async"
                c:identifier="ide_object_new_async"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="extension_point" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="first_property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_extension_async"
                c:identifier="ide_object_new_for_extension_async"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="interface_gtype" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="sort_priority_func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve">A #GCompareDataFunc or %NULL.</doc>
            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
          </parameter>
          <parameter name="sort_proirity_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="first_property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="destroy">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Object" c:type="IdeObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_context" c:identifier="ide_object_get_context">
        <doc xml:space="preserve">Fetches the #IdeObject:context property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeContext.</doc>
          <type name="Context" c:type="IdeContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Object" c:type="IdeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hold" c:identifier="ide_object_hold">
        <doc xml:space="preserve">This function will acquire a reference to the IdeContext that the object
is a part of. This is useful if you are going to be doing a long running
task (such as something in a thread) and want to ensure the context cannot
be unloaded during your operation.

You should call ide_object_release() an equivalent number of times to
ensure the context may be freed afterwards.

You should check the return value of this function to ensure that the
context is not already in shutdown.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a hold was successfully created.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #IdeObject</doc>
            <type name="Object" c:type="IdeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="release" c:identifier="ide_object_release">
        <doc xml:space="preserve">Releases a successful hold on the context previously created with ide_object_hold().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the #IdeObject.</doc>
            <type name="Object" c:type="IdeObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="destroy" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ObjectClass"
            c:type="IdeObjectClass"
            glib:is-gtype-struct-for="Object">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="destroy">
        <callback name="destroy">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Object" c:type="IdeObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="PatternSpec"
            c:type="IdePatternSpec"
            glib:type-name="IdePatternSpec"
            glib:get-type="ide_pattern_spec_get_type"
            c:symbol-prefix="pattern_spec">
      <constructor name="new" c:identifier="ide_pattern_spec_new">
        <return-value transfer-ownership="full">
          <type name="PatternSpec" c:type="IdePatternSpec*"/>
        </return-value>
        <parameters>
          <parameter name="keywords" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_text" c:identifier="ide_pattern_spec_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="IdePatternSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="ide_pattern_spec_match">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="IdePatternSpec*"/>
          </instance-parameter>
          <parameter name="haystack" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_pattern_spec_ref">
        <return-value transfer-ownership="full">
          <type name="PatternSpec" c:type="IdePatternSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="IdePatternSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_pattern_spec_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PatternSpec" c:type="IdePatternSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <interface name="Process"
               c:symbol-prefix="process"
               c:type="IdeProcess"
               glib:type-name="IdeProcess"
               glib:get-type="ide_process_get_type"
               glib:type-struct="ProcessInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="ProcessInterface"
            c:type="IdeProcessInterface"
            glib:is-gtype-struct-for="Process">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <class name="Progress"
           c:symbol-prefix="progress"
           c:type="IdeProgress"
           parent="GObject.Object"
           glib:type-name="IdeProgress"
           glib:get-type="ide_progress_get_type"
           glib:type-struct="ProgressClass">
      <constructor name="new" c:identifier="ide_progress_new">
        <return-value transfer-ownership="full">
          <type name="Progress" c:type="IdeProgress*"/>
        </return-value>
      </constructor>
      <function name="file_progress_callback"
                c:identifier="ide_progress_file_progress_callback">
        <doc xml:space="preserve">This function is a #GFileProgressCallback helper that will update the
#IdeProgress:fraction property. @user_data must be an #IdeProgress.

Remember to make sure to unref the #IdeProgress instance with
g_object_unref() during the #GDestroyNotify.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="current_num_bytes" transfer-ownership="none">
            <type name="gint64" c:type="goffset"/>
          </parameter>
          <parameter name="total_num_bytes" transfer-ownership="none">
            <type name="gint64" c:type="goffset"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_fraction" c:identifier="ide_progress_get_fraction">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Progress" c:type="IdeProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message" c:identifier="ide_progress_get_message">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Progress" c:type="IdeProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_fraction" c:identifier="ide_progress_set_fraction">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Progress" c:type="IdeProgress*"/>
          </instance-parameter>
          <parameter name="fraction" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_message" c:identifier="ide_progress_set_message">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Progress" c:type="IdeProgress*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="completed" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fraction" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="message" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ProgressClass"
            c:type="IdeProgressClass"
            glib:is-gtype-struct-for="Progress">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Project"
           c:symbol-prefix="project"
           c:type="IdeProject"
           parent="Object"
           glib:type-name="IdeProject"
           glib:get-type="ide_project_get_type"
           glib:type-struct="ProjectClass">
      <method name="add_file" c:identifier="ide_project_add_file">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file_for_path"
              c:identifier="ide_project_get_file_for_path">
        <doc xml:space="preserve">Retrieves an #IdeFile for the path specified. #IdeFile provides access to
language specific features via ide_file_get_language().

You must hold the reader lock while calling this function. See
ide_project_reader_lock() and ide_project_reader_unlock() for more
information.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeFile or %NULL if no matching
  file could be found.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">A relative path from the project root.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_files" c:identifier="ide_project_get_files">
        <doc xml:space="preserve">Gets the #IdeProjectFiles instance within the project tree.
If it has not yet been loaded, %NULL is returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeProjectFiles or %NULL.</doc>
          <type name="ProjectFiles" c:type="IdeProjectFiles*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeProject.</doc>
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ide_project_get_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_project_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_project_file"
              c:identifier="ide_project_get_project_file">
        <doc xml:space="preserve">Gets a new #IdeFile representing @gfile.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeFile.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeProject.</doc>
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="gfile" transfer-ownership="none">
            <doc xml:space="preserve">A #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_root" c:identifier="ide_project_get_root">
        <doc xml:space="preserve">Retrieves the root item of the project tree.

You must be holding the reader lock while calling and using the result of
this function. Other thread may be accessing or modifying the tree without
your knowledge. See ide_project_reader_lock() and ide_project_reader_unlock()
for more information.

If you need to modify the tree, you must hold a writer lock that has been
acquired with ide_project_writer_lock() and released with
ide_project_writer_unlock() when you are no longer modifiying the tree.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeProjectItem.</doc>
          <type name="ProjectItem" c:type="IdeProjectItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reader_lock" c:identifier="ide_project_reader_lock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reader_unlock" c:identifier="ide_project_reader_unlock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rename_file_async"
              c:identifier="ide_project_rename_file_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="orig_file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="new_file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="rename_file_finish"
              c:identifier="ide_project_rename_file_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="trash_file_async"
              c:identifier="ide_project_trash_file_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="trash_file_finish"
              c:identifier="ide_project_trash_file_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="writer_lock" c:identifier="ide_project_writer_lock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="writer_unlock" c:identifier="ide_project_writer_unlock">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Project" c:type="IdeProject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="id" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="root"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="ProjectItem"/>
      </property>
    </class>
    <record name="ProjectClass"
            c:type="IdeProjectClass"
            glib:is-gtype-struct-for="Project">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="ProjectFile"
           c:symbol-prefix="project_file"
           c:type="IdeProjectFile"
           parent="ProjectItem"
           glib:type-name="IdeProjectFile"
           glib:get-type="ide_project_file_get_type"
           glib:type-struct="ProjectFileClass">
      <method name="get_file" c:identifier="ide_project_file_get_file">
        <doc xml:space="preserve">Retrieves the underlying #GFile represented by @file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Retrieves the #GFile represented by @file.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_info"
              c:identifier="ide_project_file_get_file_info">
        <doc xml:space="preserve">Retrieves a #GFileInfo containing the basic information about @file. This
includes the name, display name, and file type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFileInfo</doc>
          <type name="Gio.FileInfo" c:type="GFileInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_directory"
              c:identifier="ide_project_file_get_is_directory">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_project_file_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="ide_project_file_get_path">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="file" writable="1" transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="file-info" writable="1" transfer-ownership="none">
        <type name="Gio.FileInfo"/>
      </property>
      <property name="is-directory" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="path" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="ProjectItem" c:type="IdeProjectItem"/>
      </field>
    </class>
    <record name="ProjectFileClass"
            c:type="IdeProjectFileClass"
            glib:is-gtype-struct-for="ProjectFile">
      <field name="parent">
        <type name="ProjectItemClass" c:type="IdeProjectItemClass"/>
      </field>
    </record>
    <class name="ProjectFiles"
           c:symbol-prefix="project_files"
           c:type="IdeProjectFiles"
           parent="ProjectItem"
           glib:type-name="IdeProjectFiles"
           glib:get-type="ide_project_files_get_type"
           glib:type-struct="ProjectFilesClass">
      <method name="add_file" c:identifier="ide_project_files_add_file">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFiles" c:type="IdeProjectFiles*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="ProjectFile" c:type="IdeProjectFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_file" c:identifier="ide_project_files_find_file">
        <doc xml:space="preserve">Tries to locate an #IdeProjectFile matching the given file.
If @file is the working directory, @self is returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeProjectItem or %NULL.</doc>
          <type name="ProjectItem" c:type="IdeProjectItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeProjectFiles.</doc>
            <type name="ProjectFiles" c:type="IdeProjectFiles*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">A #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file_for_path"
              c:identifier="ide_project_files_get_file_for_path">
        <doc xml:space="preserve">Retrieves an #IdeFile for the path. If no such path exists within the
project, %NULL is returned.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeFile or %NULL.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectFiles" c:type="IdeProjectFiles*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="ProjectItem" c:type="IdeProjectItem"/>
      </field>
    </class>
    <record name="ProjectFilesClass"
            c:type="IdeProjectFilesClass"
            glib:is-gtype-struct-for="ProjectFiles">
      <field name="parent_class">
        <type name="ProjectItemClass" c:type="IdeProjectItemClass"/>
      </field>
    </record>
    <class name="ProjectInfo"
           c:symbol-prefix="project_info"
           c:type="IdeProjectInfo"
           parent="GObject.Object"
           glib:type-name="IdeProjectInfo"
           glib:get-type="ide_project_info_get_type"
           glib:type-struct="ProjectInfoClass">
      <method name="compare" c:identifier="ide_project_info_compare">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info1" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="info2" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="ide_project_info_get_description">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_directory"
              c:identifier="ide_project_info_get_directory">
        <doc xml:space="preserve">Gets the #IdeProjectInfo:directory property.
This is the directory containing the project (if known).</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeProjectInfo.</doc>
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_doap" c:identifier="ide_project_info_get_doap">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeDoap or %NULL.</doc>
          <type name="Doap" c:type="IdeDoap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file" c:identifier="ide_project_info_get_file">
        <doc xml:space="preserve">Gets the #IdeProjectInfo:file property.
This is the project file (such as configure.ac) of the project.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeProjectInfo.</doc>
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_recent"
              c:identifier="ide_project_info_get_is_recent">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_languages"
              c:identifier="ide_project_info_get_languages">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An array of language names.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_last_modified_at"
              c:identifier="ide_project_info_get_last_modified_at">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GDateTime or %NULL.</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_project_info_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority" c:identifier="ide_project_info_get_priority">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="ide_project_info_set_description">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_directory"
              c:identifier="ide_project_info_set_directory">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file" c:identifier="ide_project_info_set_file">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_recent"
              c:identifier="ide_project_info_set_is_recent">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="is_recent" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_languages"
              c:identifier="ide_project_info_set_languages">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="languages" transfer-ownership="none">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="ide_project_info_set_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_priority" c:identifier="ide_project_info_set_priority">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="description" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="directory" writable="1" transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="doap" writable="1" transfer-ownership="none">
        <type name="Doap"/>
      </property>
      <property name="file" writable="1" transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="is-recent" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="languages" writable="1" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="last-modified-at" writable="1" transfer-ownership="none">
        <type name="GLib.DateTime"/>
      </property>
      <property name="name" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="priority" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="ProjectInfoClass"
            c:type="IdeProjectInfoClass"
            glib:is-gtype-struct-for="ProjectInfo">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ProjectItem"
           c:symbol-prefix="project_item"
           c:type="IdeProjectItem"
           parent="Object"
           glib:type-name="IdeProjectItem"
           glib:get-type="ide_project_item_get_type"
           glib:type-struct="ProjectItemClass">
      <method name="append" c:identifier="ide_project_item_append">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <type name="ProjectItem" c:type="IdeProjectItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="ProjectItem" c:type="IdeProjectItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_children" c:identifier="ide_project_item_get_children">
        <doc xml:space="preserve">A scalable list containing the children of the item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GSequence.</doc>
          <type name="GLib.Sequence" c:type="GSequence*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <type name="ProjectItem" c:type="IdeProjectItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="ide_project_item_get_parent">
        <doc xml:space="preserve">Retrieves the parent #IdeProjectItem of @item, or %NULL if @item is the root
of the project tree.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeProjectItem or %NULL if the item
  is the root of the tree.</doc>
          <type name="ProjectItem" c:type="IdeProjectItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <type name="ProjectItem" c:type="IdeProjectItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="ide_project_item_remove">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <type name="ProjectItem" c:type="IdeProjectItem*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="ProjectItem" c:type="IdeProjectItem*"/>
          </parameter>
        </parameters>
      </method>
      <property name="parent" writable="1" transfer-ownership="none">
        <type name="ProjectItem"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="ProjectItemClass"
            c:type="IdeProjectItemClass"
            glib:is-gtype-struct-for="ProjectItem">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <interface name="ProjectMiner"
               c:symbol-prefix="project_miner"
               c:type="IdeProjectMiner"
               glib:type-name="IdeProjectMiner"
               glib:get-type="ide_project_miner_get_type"
               glib:type-struct="ProjectMinerInterface">
      <virtual-method name="discovered">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
          </instance-parameter>
          <parameter name="project_info" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="mine_async" invoker="mine_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="mine_finish" invoker="mine_finish" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="emit_discovered"
              c:identifier="ide_project_miner_emit_discovered">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
          </instance-parameter>
          <parameter name="project_info" transfer-ownership="none">
            <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="mine_async" c:identifier="ide_project_miner_mine_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="mine_finish"
              c:identifier="ide_project_miner_mine_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="discovered" when="last">
        <doc xml:space="preserve">This signal is emitted when a new project has been discovered by the miner.
The signal will always be emitted from the primary thread (Gtk+) as long as
ide_project_miner_emit_discovered() was used to emit the signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="project_info" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeProjectInfo</doc>
            <type name="ProjectInfo"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="ProjectMinerInterface"
            c:type="IdeProjectMinerInterface"
            glib:is-gtype-struct-for="ProjectMiner">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="discovered">
        <callback name="discovered">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
            </parameter>
            <parameter name="project_info" transfer-ownership="none">
              <type name="ProjectInfo" c:type="IdeProjectInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="mine_async">
        <callback name="mine_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="3">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="mine_finish">
        <callback name="mine_finish" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ProjectMiner" c:type="IdeProjectMiner*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="RECENT_PROJECTS_BOOKMARK_FILENAME"
              value="recent-projects.xbel"
              c:type="IDE_RECENT_PROJECTS_BOOKMARK_FILENAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RECENT_PROJECTS_GROUP"
              value="X-GNOME-Builder-Project"
              c:type="IDE_RECENT_PROJECTS_GROUP">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="RECENT_PROJECTS_LANGUAGE_GROUP_PREFIX"
              value="X-GNOME-Builder-Language:"
              c:type="IDE_RECENT_PROJECTS_LANGUAGE_GROUP_PREFIX">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="RecentProjects"
           c:symbol-prefix="recent_projects"
           c:type="IdeRecentProjects"
           parent="GObject.Object"
           glib:type-name="IdeRecentProjects"
           glib:get-type="ide_recent_projects_get_type"
           glib:type-struct="RecentProjectsClass">
      <implements name="Gio.ListModel"/>
      <constructor name="new" c:identifier="ide_recent_projects_new">
        <return-value transfer-ownership="full">
          <type name="RecentProjects" c:type="IdeRecentProjects*"/>
        </return-value>
      </constructor>
      <method name="discover_async"
              c:identifier="ide_recent_projects_discover_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RecentProjects" c:type="IdeRecentProjects*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="discover_finish"
              c:identifier="ide_recent_projects_discover_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RecentProjects" c:type="IdeRecentProjects*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_busy" c:identifier="ide_recent_projects_get_busy">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RecentProjects" c:type="IdeRecentProjects*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_projects"
              c:identifier="ide_recent_projects_get_projects">
        <doc xml:space="preserve">Gets a #GPtrArray containing the #IdeProjectInfo that have been discovered.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A #GPtrArray of #IdeProjectInfo.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="ProjectInfo"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RecentProjects" c:type="IdeRecentProjects*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="ide_recent_projects_remove">
        <doc xml:space="preserve">Removes the provided projects from the recent projects file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeRecentProjects</doc>
            <type name="RecentProjects" c:type="IdeRecentProjects*"/>
          </instance-parameter>
          <parameter name="project_infos" transfer-ownership="none">
            <doc xml:space="preserve">A #GList of #IdeProjectInfo.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="ProjectInfo"/>
            </type>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="RecentProjectsClass"
            c:type="IdeRecentProjectsClass"
            glib:is-gtype-struct-for="RecentProjects">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Refactory"
           c:symbol-prefix="refactory"
           c:type="IdeRefactory"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="IdeRefactory"
           glib:get-type="ide_refactory_get_type"
           glib:type-struct="RefactoryClass">
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="RefactoryClass"
            c:type="IdeRefactoryClass"
            glib:is-gtype-struct-for="Refactory">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <record name="RefactoryInterface"
            c:type="IdeRefactoryInterface"
            disguised="1">
    </record>
    <constant name="SCRIPT_EXTENSION_POINT"
              value="org.gnome.libide.extensions.script"
              c:type="IDE_SCRIPT_EXTENSION_POINT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Script"
           c:symbol-prefix="script"
           c:type="IdeScript"
           parent="Object"
           abstract="1"
           glib:type-name="IdeScript"
           glib:get-type="ide_script_get_type"
           glib:type-struct="ScriptClass">
      <implements name="Gio.AsyncInitable"/>
      <virtual-method name="load" invoker="load">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Script" c:type="IdeScript*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unload" invoker="unload">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Script" c:type="IdeScript*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_file" c:identifier="ide_script_get_file">
        <doc xml:space="preserve">Returns a #GFile pointing to the location of the script on disk.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Script" c:type="IdeScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load" c:identifier="ide_script_load">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Script" c:type="IdeScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unload" c:identifier="ide_script_unload">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Script" c:type="IdeScript*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
      <glib:signal name="load" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unload" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ScriptClass"
            c:type="IdeScriptClass"
            glib:is-gtype-struct-for="Script">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="load">
        <callback name="load">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Script" c:type="IdeScript*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unload">
        <callback name="unload">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Script" c:type="IdeScript*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="ScriptManager"
           c:symbol-prefix="script_manager"
           c:type="IdeScriptManager"
           parent="Object"
           glib:type-name="IdeScriptManager"
           glib:get-type="ide_script_manager_get_type"
           glib:type-struct="ScriptManagerClass">
      <method name="get_scripts_directory"
              c:identifier="ide_script_manager_get_scripts_directory">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ScriptManager" c:type="IdeScriptManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_async" c:identifier="ide_script_manager_load_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ScriptManager" c:type="IdeScriptManager*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_finish"
              c:identifier="ide_script_manager_load_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ScriptManager" c:type="IdeScriptManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="scripts-directory"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="ScriptManagerClass"
            c:type="IdeScriptManagerClass"
            glib:is-gtype-struct-for="ScriptManager">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="SearchContext"
           c:symbol-prefix="search_context"
           c:type="IdeSearchContext"
           parent="Object"
           glib:type-name="IdeSearchContext"
           glib:get-type="ide_search_context_get_type"
           glib:type-struct="SearchContextClass">
      <method name="add_result" c:identifier="ide_search_context_add_result">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cancel" c:identifier="ide_search_context_cancel">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="execute" c:identifier="ide_search_context_execute">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
          <parameter name="search_terms" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_results" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_results"
              c:identifier="ide_search_context_get_max_results">
        <return-value transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_providers"
              c:identifier="ide_search_context_get_providers">
        <doc xml:space="preserve">Retrieve the list of providers for the search context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
  #IdeSearchProvider.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="SearchProvider"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="provider_completed"
              c:identifier="ide_search_context_provider_completed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_result"
              c:identifier="ide_search_context_remove_result">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_provider_count"
              c:identifier="ide_search_context_set_provider_count">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </instance-parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="completed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="count-set" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SearchProvider"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="result-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SearchProvider"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="SearchResult"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="result-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SearchProvider"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="SearchResult"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SearchContextClass"
            c:type="IdeSearchContextClass"
            glib:is-gtype-struct-for="SearchContext">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <class name="SearchEngine"
           c:symbol-prefix="search_engine"
           c:type="IdeSearchEngine"
           parent="Object"
           glib:type-name="IdeSearchEngine"
           glib:get-type="ide_search_engine_get_type"
           glib:type-struct="SearchEngineClass">
      <method name="search" c:identifier="ide_search_engine_search">
        <doc xml:space="preserve">Begins a query against the requested search providers.

If @providers is %NULL, all registered providers will be used.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeSearchContext or %NULL if no
  providers could be loaded.</doc>
          <type name="SearchContext" c:type="IdeSearchContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SearchEngine" c:type="IdeSearchEngine*"/>
          </instance-parameter>
          <parameter name="search_terms" transfer-ownership="none">
            <doc xml:space="preserve">The search terms.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="SearchEngineClass"
            c:type="IdeSearchEngineClass"
            glib:is-gtype-struct-for="SearchEngine">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <interface name="SearchProvider"
               c:symbol-prefix="search_provider"
               c:type="IdeSearchProvider"
               glib:type-name="IdeSearchProvider"
               glib:get-type="ide_search_provider_get_type"
               glib:type-struct="SearchProviderInterface">
      <prerequisite name="Object"/>
      <virtual-method name="activate" invoker="activate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
          <parameter name="row" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_row" invoker="create_row">
        <doc xml:space="preserve">Create a row to display the search result.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeSearchProvider.</doc>
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeSearchResult.</doc>
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_prefix" invoker="get_prefix">
        <return-value transfer-ownership="none">
          <type name="gunichar" c:type="gunichar"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_priority" invoker="get_priority">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_verb" invoker="get_verb">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate" invoker="populate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </parameter>
          <parameter name="search_terms" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_results" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate" c:identifier="ide_search_provider_activate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
          <parameter name="row" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_row" c:identifier="ide_search_provider_create_row">
        <doc xml:space="preserve">Create a row to display the search result.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GtkWidget.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeSearchProvider.</doc>
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeSearchResult.</doc>
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_prefix" c:identifier="ide_search_provider_get_prefix">
        <return-value transfer-ownership="none">
          <type name="gunichar" c:type="gunichar"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_priority"
              c:identifier="ide_search_provider_get_priority">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_verb" c:identifier="ide_search_provider_get_verb">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="populate" c:identifier="ide_search_provider_populate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="SearchContext" c:type="IdeSearchContext*"/>
          </parameter>
          <parameter name="search_terms" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="max_results" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
    </interface>
    <record name="SearchProviderInterface"
            c:type="IdeSearchProviderInterface"
            glib:is-gtype-struct-for="SearchProvider">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_prefix">
        <callback name="get_prefix">
          <return-value transfer-ownership="none">
            <type name="gunichar" c:type="gunichar"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="SearchProvider" c:type="IdeSearchProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_priority">
        <callback name="get_priority">
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="SearchProvider" c:type="IdeSearchProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_verb">
        <callback name="get_verb">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="SearchProvider" c:type="IdeSearchProvider*"/>
            </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="SearchProvider" c:type="IdeSearchProvider*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="SearchContext" c:type="IdeSearchContext*"/>
            </parameter>
            <parameter name="search_terms" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="max_results" transfer-ownership="none">
              <type name="gsize" c:type="gsize"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_row">
        <callback name="create_row">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">A #GtkWidget.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">A #IdeSearchProvider.</doc>
              <type name="SearchProvider" c:type="IdeSearchProvider*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve">A #IdeSearchResult.</doc>
              <type name="SearchResult" c:type="IdeSearchResult*"/>
            </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="provider" transfer-ownership="none">
              <type name="SearchProvider" c:type="IdeSearchProvider*"/>
            </parameter>
            <parameter name="row" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="SearchResult" c:type="IdeSearchResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="SearchResult"
           c:symbol-prefix="search_result"
           c:type="IdeSearchResult"
           parent="Object"
           glib:type-name="IdeSearchResult"
           glib:get-type="ide_search_result_get_type"
           glib:type-struct="SearchResultClass">
      <constructor name="new" c:identifier="ide_search_result_new">
        <return-value transfer-ownership="full">
          <type name="SearchResult" c:type="IdeSearchResult*"/>
        </return-value>
        <parameters>
          <parameter name="provider" transfer-ownership="none">
            <type name="SearchProvider" c:type="IdeSearchProvider*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="subtitle" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="score" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="activate" invoker="activate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="activate" c:identifier="ide_search_result_activate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="ide_search_result_compare">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <type name="SearchResult" c:type="const IdeSearchResult*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <type name="SearchResult" c:type="const IdeSearchResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_provider"
              c:identifier="ide_search_result_get_provider">
        <doc xml:space="preserve">Gets the provider that created the search result.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSearchProvider.</doc>
          <type name="SearchProvider" c:type="IdeSearchProvider*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeSearchResult.</doc>
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_score" c:identifier="ide_search_result_get_score">
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle"
              c:identifier="ide_search_result_get_subtitle">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="ide_search_result_get_title">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="SearchResult" c:type="IdeSearchResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="provider" writable="1" transfer-ownership="none">
        <type name="SearchProvider"/>
      </property>
      <property name="score"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="subtitle"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="SearchResultClass"
            c:type="IdeSearchResultClass"
            glib:is-gtype-struct-for="SearchResult">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="activate">
        <callback name="activate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="result" transfer-ownership="none">
              <type name="SearchResult" c:type="IdeSearchResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Service"
               c:symbol-prefix="service"
               c:type="IdeService"
               glib:type-name="IdeService"
               glib:get-type="ide_service_get_type"
               glib:type-struct="ServiceInterface">
      <prerequisite name="Object"/>
      <virtual-method name="get_name" invoker="get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="service" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="loaded">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="start" invoker="start">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stop" invoker="stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="service" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_name" c:identifier="ide_service_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="ide_service_start">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="ide_service_stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Service" c:type="IdeService*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
      <glib:signal name="loaded" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="start" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="stop" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="ServiceInterface"
            c:type="IdeServiceInterface"
            glib:is-gtype-struct-for="Service">
      <field name="parent_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_name">
        <callback name="get_name">
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IdeService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="loaded">
        <callback name="loaded">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IdeService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start">
        <callback name="start">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IdeService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stop">
        <callback name="stop">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="service" transfer-ownership="none">
              <type name="Service" c:type="IdeService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Settings"
           c:symbol-prefix="settings"
           c:type="IdeSettings"
           parent="Object"
           glib:type-name="IdeSettings"
           glib:get-type="ide_settings_get_type"
           glib:type-struct="SettingsClass">
      <method name="bind" c:identifier="ide_settings_bind">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="Gio.SettingsBindFlags" c:type="GSettingsBindFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="bind_with_mapping"
              c:identifier="ide_settings_bind_with_mapping">
        <doc xml:space="preserve">Like ide_settings_bind() but allows transforming to and from settings storage using
@get_mapping and @set_mapping transformation functions.

Call ide_settings_unbind() to unbind the mapping.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSettings</doc>
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">The settings key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">the object to bind to</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve">the property of @object to bind to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">flags for the binding</doc>
            <type name="Gio.SettingsBindFlags" c:type="GSettingsBindFlags"/>
          </parameter>
          <parameter name="get_mapping"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve">variant to value mapping</doc>
            <type name="Gio.SettingsBindGetMapping"
                  c:type="GSettingsBindGetMapping"/>
          </parameter>
          <parameter name="set_mapping"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="6"
                     destroy="7">
            <doc xml:space="preserve">value to variant mapping</doc>
            <type name="Gio.SettingsBindSetMapping"
                  c:type="GSettingsBindSetMapping"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">user data for @get_mapping and @set_mapping</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">destroy function to cleanup @user_data.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean" c:identifier="ide_settings_get_boolean">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_value"
              c:identifier="ide_settings_get_default_value">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_double" c:identifier="ide_settings_get_double">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ignore_project_settings"
              c:identifier="ide_settings_get_ignore_project_settings">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_int" c:identifier="ide_settings_get_int">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_relative_path"
              c:identifier="ide_settings_get_relative_path">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_schema_id" c:identifier="ide_settings_get_schema_id">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string" c:identifier="ide_settings_get_string">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uint" c:identifier="ide_settings_get_uint">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_user_value" c:identifier="ide_settings_get_user_value">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="ide_settings_get_value">
        <return-value transfer-ownership="full">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean" c:identifier="ide_settings_set_boolean">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_double" c:identifier="ide_settings_set_double">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int" c:identifier="ide_settings_set_int">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string" c:identifier="ide_settings_set_string">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uint" c:identifier="ide_settings_set_uint">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="ide_settings_set_value">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unbind" c:identifier="ide_settings_unbind">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Settings" c:type="IdeSettings*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="ignore-project-settings"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="relative-path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="schema-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="changed" when="last" detailed="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SettingsClass"
            c:type="IdeSettingsClass"
            glib:is-gtype-struct-for="Settings">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <record name="SourceLocation"
            c:type="IdeSourceLocation"
            glib:type-name="IdeSourceLocation"
            glib:get-type="ide_source_location_get_type"
            c:symbol-prefix="source_location">
      <constructor name="new" c:identifier="ide_source_location_new">
        <doc xml:space="preserve">Creates a new #IdeSourceLocation, using the file, line, column, and character
offset provided.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly allocated #IdeSourceLocation.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">an #IdeFile</doc>
            <type name="File" c:type="IdeFile*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve">the line number starting from zero</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="line_offset" transfer-ownership="none">
            <doc xml:space="preserve">the character offset within the line</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve">the character offset in the file</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_file" c:identifier="ide_source_location_get_file">
        <doc xml:space="preserve">The file represented by this source location.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeFile.</doc>
          <type name="File" c:type="IdeFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line" c:identifier="ide_source_location_get_line">
        <doc xml:space="preserve">Retrieves the target line number starting from 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #guint containing the target line.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line_offset"
              c:identifier="ide_source_location_get_line_offset">
        <doc xml:space="preserve">Retrieves the character offset within the line.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #guint containing the offset within the line.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_offset" c:identifier="ide_source_location_get_offset">
        <doc xml:space="preserve">Retrieves the character offset within the file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #guint containing the character offset within the file.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_source_location_ref">
        <doc xml:space="preserve">Increments the reference count of @self by one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">self</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_source_location_unref">
        <doc xml:space="preserve">Decrements the reference count of @self by one. If the reference count
reaches zero, then the structure is freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="SourceMap"
           c:symbol-prefix="source_map"
           c:type="IdeSourceMap"
           parent="GtkSource.Map"
           glib:type-name="IdeSourceMap"
           glib:get-type="ide_source_map_get_type"
           glib:type-struct="SourceMapClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <glib:signal name="hide-map" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-map" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SourceMapClass"
            c:type="IdeSourceMapClass"
            glib:is-gtype-struct-for="SourceMap">
      <field name="parent_class">
        <type name="GtkSource.MapClass" c:type="GtkSourceMapClass"/>
      </field>
    </record>
    <record name="SourceRange"
            c:type="IdeSourceRange"
            glib:type-name="IdeSourceRange"
            glib:get-type="ide_source_range_get_type"
            c:symbol-prefix="source_range">
      <method name="get_begin" c:identifier="ide_source_range_get_begin">
        <doc xml:space="preserve">Gets the beginning of the source range.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSourceLocation.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceRange" c:type="IdeSourceRange*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_end" c:identifier="ide_source_range_get_end">
        <doc xml:space="preserve">Gets the end of the source range.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSourceLocation.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceRange" c:type="IdeSourceRange*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_source_range_ref">
        <doc xml:space="preserve">Increments the reference count of @self by one. When you are done with
@self, release it by calling ide_source_range_unref().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">@self</doc>
          <type name="SourceRange" c:type="IdeSourceRange*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceRange</doc>
            <type name="SourceRange" c:type="IdeSourceRange*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_source_range_unref">
        <doc xml:space="preserve">Decrements the reference count of @self by one.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="full">
            <doc xml:space="preserve">An #IdeSourceRange</doc>
            <type name="SourceRange" c:type="IdeSourceRange*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="SourceSnippet"
           c:symbol-prefix="source_snippet"
           c:type="IdeSourceSnippet"
           parent="GObject.Object"
           glib:type-name="IdeSourceSnippet"
           glib:get-type="ide_source_snippet_get_type"
           glib:type-struct="SourceSnippetClass">
      <constructor name="new" c:identifier="ide_source_snippet_new">
        <return-value transfer-ownership="full">
          <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
        </return-value>
        <parameters>
          <parameter name="trigger" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="language" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_chunk" c:identifier="ide_source_snippet_add_chunk">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="ide_source_snippet_copy">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeSourceSnippet.</doc>
          <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_chunk_range"
              c:identifier="ide_source_snippet_get_chunk_range">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </parameter>
          <parameter name="begin" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_context" c:identifier="ide_source_snippet_get_context">
        <return-value transfer-ownership="none">
          <type name="SourceSnippetContext" c:type="IdeSourceSnippetContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="ide_source_snippet_get_description">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="ide_source_snippet_get_language">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mark_begin"
              c:identifier="ide_source_snippet_get_mark_begin">
        <return-value transfer-ownership="none">
          <type name="Gtk.TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mark_end"
              c:identifier="ide_source_snippet_get_mark_end">
        <return-value transfer-ownership="none">
          <type name="Gtk.TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_chunks"
              c:identifier="ide_source_snippet_get_n_chunks">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_chunk"
              c:identifier="ide_source_snippet_get_nth_chunk">
        <return-value transfer-ownership="none">
          <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_snippet_text"
              c:identifier="ide_source_snippet_get_snippet_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tab_stop"
              c:identifier="ide_source_snippet_get_tab_stop">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_trigger" c:identifier="ide_source_snippet_get_trigger">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="ide_source_snippet_set_description">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_language"
              c:identifier="ide_source_snippet_set_language">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_snippet_text"
              c:identifier="ide_source_snippet_set_snippet_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="snippet_text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_trigger" c:identifier="ide_source_snippet_set_trigger">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </instance-parameter>
          <parameter name="trigger" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="buffer" transfer-ownership="none">
        <type name="Gtk.TextBuffer"/>
      </property>
      <property name="description" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="language" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="mark-begin" transfer-ownership="none">
        <type name="Gtk.TextMark"/>
      </property>
      <property name="mark-end" transfer-ownership="none">
        <type name="Gtk.TextMark"/>
      </property>
      <property name="snippet-text" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tab-stop" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="trigger" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <class name="SourceSnippetChunk"
           c:symbol-prefix="source_snippet_chunk"
           c:type="IdeSourceSnippetChunk"
           parent="GObject.Object"
           glib:type-name="IdeSourceSnippetChunk"
           glib:get-type="ide_source_snippet_chunk_get_type"
           glib:type-struct="SourceSnippetChunkClass">
      <constructor name="new" c:identifier="ide_source_snippet_chunk_new">
        <return-value transfer-ownership="full">
          <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ide_source_snippet_chunk_copy">
        <doc xml:space="preserve">Copies the source snippet.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeSourceSnippetChunk.</doc>
          <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context"
              c:identifier="ide_source_snippet_chunk_get_context">
        <doc xml:space="preserve">Gets the context for the snippet insertion.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #IdeSourceSnippetContext.</doc>
          <type name="SourceSnippetContext" c:type="IdeSourceSnippetContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_spec" c:identifier="ide_source_snippet_chunk_get_spec">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tab_stop"
              c:identifier="ide_source_snippet_chunk_get_tab_stop">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="ide_source_snippet_chunk_get_text">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_set"
              c:identifier="ide_source_snippet_chunk_get_text_set">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_context"
              c:identifier="ide_source_snippet_chunk_set_context">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_spec" c:identifier="ide_source_snippet_chunk_set_spec">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tab_stop"
              c:identifier="ide_source_snippet_chunk_set_tab_stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="tab_stop" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text" c:identifier="ide_source_snippet_chunk_set_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text_set"
              c:identifier="ide_source_snippet_chunk_set_text_set">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="chunk" transfer-ownership="none">
            <type name="SourceSnippetChunk" c:type="IdeSourceSnippetChunk*"/>
          </instance-parameter>
          <parameter name="text_set" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="context" writable="1" transfer-ownership="none">
        <type name="SourceSnippetContext"/>
      </property>
      <property name="spec" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tab-stop" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="text" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="text-set" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="SourceSnippetChunkClass"
            c:type="IdeSourceSnippetChunkClass"
            glib:is-gtype-struct-for="SourceSnippetChunk">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="SourceSnippetClass"
            c:type="IdeSourceSnippetClass"
            glib:is-gtype-struct-for="SourceSnippet">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SourceSnippetContext"
           c:symbol-prefix="source_snippet_context"
           c:type="IdeSourceSnippetContext"
           parent="GObject.Object"
           glib:type-name="IdeSourceSnippetContext"
           glib:get-type="ide_source_snippet_context_get_type"
           glib:type-struct="SourceSnippetContextClass">
      <constructor name="new" c:identifier="ide_source_snippet_context_new">
        <return-value transfer-ownership="full">
          <type name="SourceSnippetContext" c:type="IdeSourceSnippetContext*"/>
        </return-value>
      </constructor>
      <method name="add_variable"
              c:identifier="ide_source_snippet_context_add_variable">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_variables"
              c:identifier="ide_source_snippet_context_clear_variables">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dump" c:identifier="ide_source_snippet_context_dump">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_changed"
              c:identifier="ide_source_snippet_context_emit_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="expand" c:identifier="ide_source_snippet_context_expand">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_variable"
              c:identifier="ide_source_snippet_context_get_variable">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line_prefix"
              c:identifier="ide_source_snippet_context_set_line_prefix">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="line_prefix" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tab_width"
              c:identifier="ide_source_snippet_context_set_tab_width">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="tab_size" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_spaces"
              c:identifier="ide_source_snippet_context_set_use_spaces">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </instance-parameter>
          <parameter name="use_spaces" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SourceSnippetContextClass"
            c:type="IdeSourceSnippetContextClass"
            glib:is-gtype-struct-for="SourceSnippetContext">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SourceSnippets"
           c:symbol-prefix="source_snippets"
           c:type="IdeSourceSnippets"
           parent="GObject.Object"
           glib:type-name="IdeSourceSnippets"
           glib:get-type="ide_source_snippets_get_type"
           glib:type-struct="SourceSnippetsClass">
      <constructor name="new" c:identifier="ide_source_snippets_new">
        <return-value transfer-ownership="full">
          <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
        </return-value>
      </constructor>
      <method name="add" c:identifier="ide_source_snippets_add">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippets" transfer-ownership="none">
            <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
          </instance-parameter>
          <parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="ide_source_snippets_clear">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippets" transfer-ownership="none">
            <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="count" c:identifier="ide_source_snippets_count">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="ide_source_snippets_foreach">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippets" transfer-ownership="none">
            <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="foreach_func"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve">A callback to execute for each snippet.</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge" c:identifier="ide_source_snippets_merge">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="snippets" transfer-ownership="none">
            <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="SourceSnippetsClass"
            c:type="IdeSourceSnippetsClass"
            glib:is-gtype-struct-for="SourceSnippets">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SourceSnippetsManager"
           c:symbol-prefix="source_snippets_manager"
           c:type="IdeSourceSnippetsManager"
           parent="GObject.Object"
           glib:type-name="IdeSourceSnippetsManager"
           glib:get-type="ide_source_snippets_manager_get_type"
           glib:type-struct="SourceSnippetsManagerClass">
      <method name="get_for_language"
              c:identifier="ide_source_snippets_manager_get_for_language">
        <doc xml:space="preserve">Gets the snippets for a given source language.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSourceSnippets or %NULL.</doc>
          <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="SourceSnippetsManager"
                  c:type="IdeSourceSnippetsManager*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <type name="GtkSource.Language" c:type="GtkSourceLanguage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_for_language_id"
              c:identifier="ide_source_snippets_manager_get_for_language_id">
        <doc xml:space="preserve">Gets the snippets for a given source language.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSourceSnippets or %NULL.</doc>
          <type name="SourceSnippets" c:type="IdeSourceSnippets*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="SourceSnippetsManager"
                  c:type="IdeSourceSnippetsManager*"/>
          </instance-parameter>
          <parameter name="language_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_async"
              c:identifier="ide_source_snippets_manager_load_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceSnippetsManager"
                  c:type="IdeSourceSnippetsManager*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_finish"
              c:identifier="ide_source_snippets_manager_load_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceSnippetsManager"
                  c:type="IdeSourceSnippetsManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="SourceSnippetsManagerClass"
            c:type="IdeSourceSnippetsManagerClass"
            glib:is-gtype-struct-for="SourceSnippetsManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SourceView"
           c:symbol-prefix="source_view"
           c:type="IdeSourceView"
           parent="GtkSource.View"
           glib:type-name="IdeSourceView"
           glib:get-type="ide_source_view_get_type"
           glib:type-struct="SourceViewClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <virtual-method name="action">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="param" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="append_to_count">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="digit" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="auto_indent">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="begin_macro">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="capture_modifier">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear_count">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear_modifier">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear_search" invoker="clear_search">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="clear_snippets" invoker="clear_snippets">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cycle_completion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="decrease_font_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="delete_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end_macro">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="focus_location">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="goto_definition">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_completion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="increase_font_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="indent_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="level" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_at_cursor_and_indent">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_modifier">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="use_count" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="jump" invoker="jump">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_error">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_search">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
          </parameter>
          <parameter name="extend_selection" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="select_match" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="exclusive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="apply_count" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="at_word_boundaries" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="movement">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="movement" transfer-ownership="none">
            <type name="SourceViewMovement" c:type="IdeSourceViewMovement"/>
          </parameter>
          <parameter name="extend_selection" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="exclusive" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="apply_count" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="paste_clipboard_extended">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="smart_lines" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="after_cursor" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="place_cursor_at_original" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pop_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pop_snippet">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="push_selection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="push_snippet">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="SourceSnippetContext"
                  c:type="IdeSourceSnippetContext*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="rebuild_highlight">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="replay_macro">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="use_count" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="request_documentation">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="reset_font_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="restore_insert_mark">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="save_insert_mark">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_theatric">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="theatric" transfer-ownership="none">
            <type name="SourceViewTheatric" c:type="IdeSourceViewTheatric"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_mode">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="SourceViewModeType" c:type="IdeSourceViewModeType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_overwrite">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="overwrite" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_search_text">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="search_text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="from_selection" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sort">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="ignore_case" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="reverse" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="swap_selection_bounds">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="clear_search" c:identifier="ide_source_view_clear_search">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clear_snippets"
              c:identifier="ide_source_view_clear_snippets">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_back_forward_list"
              c:identifier="ide_source_view_get_back_forward_list">
        <doc xml:space="preserve">Gets the #IdeSourceView:back-forward-list property. This is the list that is used to manage
navigation history between multiple #IdeSourceView.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeBackForwardList or %NULL.</doc>
          <type name="BackForwardList" c:type="IdeBackForwardList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_count" c:identifier="ide_source_view_get_count">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enable_word_completion"
              c:identifier="ide_source_view_get_enable_word_completion">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_settings"
              c:identifier="ide_source_view_get_file_settings">
        <doc xml:space="preserve">Gets the #IdeSourceView:file-settings property. This contains various
settings for how the file should be rendered in the view, and preferences
such as spaces vs tabs.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeFileSettings or %NULL.</doc>
          <type name="FileSettings" c:type="IdeFileSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeSourceView.</doc>
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font_desc"
              c:identifier="ide_source_view_get_font_desc">
        <return-value transfer-ownership="none">
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_highlight_current_line"
              c:identifier="ide_source_view_get_highlight_current_line">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_insert_matching_brace"
              c:identifier="ide_source_view_get_insert_matching_brace">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode_display_name"
              c:identifier="ide_source_view_get_mode_display_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode_name"
              c:identifier="ide_source_view_get_mode_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_overwrite"
              c:identifier="ide_source_view_get_overwrite">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_overwrite_braces"
              c:identifier="ide_source_view_get_overwrite_braces">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rubberband_search"
              c:identifier="ide_source_view_get_rubberband_search">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scroll_offset"
              c:identifier="ide_source_view_get_scroll_offset">
        <doc xml:space="preserve">Gets the #IdeSourceView:scroll-offset property. This property contains the number of lines
that should be kept above or below the line containing the insertion cursor relative to the
top and bottom of the visible text window.</doc>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_context"
              c:identifier="ide_source_view_get_search_context">
        <doc xml:space="preserve">Returns the #GtkSourceSearchContext for the source view if there is one.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">A #GtkSourceSearchContext or %NULL.</doc>
          <type name="GtkSource.SearchContext"
                c:type="GtkSourceSearchContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceView.</doc>
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_grid_lines"
              c:identifier="ide_source_view_get_show_grid_lines">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_line_changes"
              c:identifier="ide_source_view_get_show_line_changes">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_line_diagnostics"
              c:identifier="ide_source_view_get_show_line_diagnostics">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_search_bubbles"
              c:identifier="ide_source_view_get_show_search_bubbles">
        <doc xml:space="preserve">Gets the #IdeSourceView:show-search-bubbles property.

If this is set to %TRUE, a bubble will be drawn around search results to
make them stand out.

The default is %FALSE.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceView.</doc>
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_search_shadow"
              c:identifier="ide_source_view_get_show_search_shadow">
        <doc xml:space="preserve">Gets the #IdeSourceView:show-search-shadow property.

If this property is %TRUE, then when searching, a shadow will be drawn over
the portion of the visible region that does not contain a match. This can
be used to help bring focus to the matches.

The default is %FALSE.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceView.</doc>
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_snippet_completion"
              c:identifier="ide_source_view_get_snippet_completion">
        <doc xml:space="preserve">Gets the #IdeSourceView:snippet-completion property.

If enabled, snippet expansion can be performed via the auto completion drop down.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_rect"
              c:identifier="ide_source_view_get_visible_rect">
        <doc xml:space="preserve">Gets the visible region in buffer coordinates that is the visible area of the buffer. This
is similar to gtk_text_view_get_visible_area() except that it takes into account the
#IdeSourceView:scroll-offset property to ensure there is space above and below the
visible_rect.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceView.</doc>
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="visible_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve">A #GdkRectangle.</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_visual_position"
              c:identifier="ide_source_view_get_visual_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="line_offset" transfer-ownership="none">
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="jump" c:identifier="ide_source_view_jump">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_mark_onscreen"
              c:identifier="ide_source_view_move_mark_onscreen">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <type name="Gtk.TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="place_cursor_onscreen"
              c:identifier="ide_source_view_place_cursor_onscreen">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pop_snippet" c:identifier="ide_source_view_pop_snippet">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push_snippet" c:identifier="ide_source_view_push_snippet">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="snippet" transfer-ownership="none">
            <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rollback_search"
              c:identifier="ide_source_view_rollback_search">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="scroll_mark_onscreen"
              c:identifier="ide_source_view_scroll_mark_onscreen">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <type name="Gtk.TextMark" c:type="GtkTextMark*"/>
          </parameter>
          <parameter name="use_align" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="alignx" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="aligny" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_iter"
              c:identifier="ide_source_view_scroll_to_iter">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="within_margin" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="use_align" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="xalign" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="yalign" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="animate_scroll" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_mark"
              c:identifier="ide_source_view_scroll_to_mark">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <type name="Gtk.TextMark" c:type="GtkTextMark*"/>
          </parameter>
          <parameter name="within_margin" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="use_align" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="xalign" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="yalign" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="animate_scroll" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_back_forward_list"
              c:identifier="ide_source_view_set_back_forward_list">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="back_forward_list" transfer-ownership="none">
            <type name="BackForwardList" c:type="IdeBackForwardList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_count" c:identifier="ide_source_view_set_count">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enable_word_completion"
              c:identifier="ide_source_view_set_enable_word_completion">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="enable_word_copletion" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_desc"
              c:identifier="ide_source_view_set_font_desc">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="font_desc" transfer-ownership="none">
            <type name="Pango.FontDescription"
                  c:type="const PangoFontDescription*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font_name"
              c:identifier="ide_source_view_set_font_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="font_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_highlight_current_line"
              c:identifier="ide_source_view_set_highlight_current_line">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="highlight_current_line" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_insert_matching_brace"
              c:identifier="ide_source_view_set_insert_matching_brace">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="insert_matching_brace" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_overwrite_braces"
              c:identifier="ide_source_view_set_overwrite_braces">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="overwrite_braces" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rubberband_search"
              c:identifier="ide_source_view_set_rubberband_search">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="rubberband_search" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scroll_offset"
              c:identifier="ide_source_view_set_scroll_offset">
        <doc xml:space="preserve">Sets the #IdeSourceView:scroll-offset property. See ide_source_view_get_scroll_offset() for
more information. Set to 0 to unset this property.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="scroll_offset" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_grid_lines"
              c:identifier="ide_source_view_set_show_grid_lines">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="show_grid_lines" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_line_changes"
              c:identifier="ide_source_view_set_show_line_changes">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="show_line_changes" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_line_diagnostics"
              c:identifier="ide_source_view_set_show_line_diagnostics">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="show_line_changes" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_search_bubbles"
              c:identifier="ide_source_view_set_show_search_bubbles">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="show_search_bubbles" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_search_shadow"
              c:identifier="ide_source_view_set_show_search_shadow">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="show_search_bubbles" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_snippet_completion"
              c:identifier="ide_source_view_set_snippet_completion">
        <doc xml:space="preserve">Sets the #IdeSourceView:snippet-completion property. By setting this property to %TRUE,
snippets will be loaded for the currently activated source code language. See #IdeSourceSnippet
for more information on what can be provided via a snippet.

See also: ide_source_view_get_snippet_completion()</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceView" c:type="IdeSourceView*"/>
          </instance-parameter>
          <parameter name="snippet_completion" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="back-forward-list"
                writable="1"
                transfer-ownership="none">
        <type name="BackForwardList"/>
      </property>
      <property name="count" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="enable-word-completion"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="file-settings" transfer-ownership="none">
        <type name="FileSettings"/>
      </property>
      <property name="font-desc" writable="1" transfer-ownership="none">
        <type name="Pango.FontDescription"/>
      </property>
      <property name="font-name"
                readable="0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="indent-style"
                readable="0"
                writable="1"
                transfer-ownership="none">
        <type name="IndentStyle"/>
      </property>
      <property name="indenter" transfer-ownership="none">
        <type name="Indenter"/>
      </property>
      <property name="insert-matching-brace"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mode-display-name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="overwrite-braces" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rubberband-search"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scroll-offset" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="search-context" transfer-ownership="none">
        <type name="GtkSource.SearchContext"/>
      </property>
      <property name="show-grid-lines" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-line-changes"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-line-diagnostics"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If the diagnostics gutter should be visible.

This also requires that IdeBuffer:highlight-diagnostics is set to %TRUE
to generate diagnostics.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-search-bubbles"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-search-shadow"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="snippet-completion"
                writable="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GtkSource.View" c:type="GtkSourceView"/>
      </field>
      <glib:signal name="action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="append-to-count" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="auto-indent" when="last" action="1">
        <doc xml:space="preserve">Requests that the auto-indenter perform an indent request using the last
inserted character. For example, if on the first character of a line, the
last inserted character would be a newline and therefore "\n".

If on the first character of the buffer, this signal will do nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="begin-macro" when="last" action="1">
        <doc xml:space="preserve">This signal will begin recording input to the #IdeSourceView. This includes the current
#IdeSourceViewMode, #IdeSourceView:count and #IdeSourceView:modifier which will be used
to replay the sequence starting from the correct state.

Pair this with an emission of #IdeSourceView::end-macro to complete the sequence.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="begin-user-action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="capture-modifier" when="last" action="1">
        <doc xml:space="preserve">This signal will block the main loop in a similar fashion to how
gtk_dialog_run() performs until a key-press has occurred that can be
captured for use in movements.

Pressing Escape or unfocusing the widget will break from this loop.

Use of this signal is not recommended except in very specific cases.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-count" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-modifier" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-search" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-snippets" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cycle-completion" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="decrease-font-size" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="delete-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="end-macro" when="last" action="1">
        <doc xml:space="preserve">You should call #IdeSourceView::begin-macro before emitting this signal.

Complete a macro recording sequence. This may be called more times than is necessary,
since #IdeSourceView will only keep the most recent macro recording. This can be
helpful when implementing recording sequences such as in Vim.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="end-user-action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="focus-location" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceLocation"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="goto-definition" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-completion" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="increase-font-size" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="indent-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-at-cursor-and-indent" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-modifier" when="last" action="1">
        <doc xml:space="preserve">Inserts the current modifier character at the insert mark in the buffer.
If @use_count is %TRUE, then the character will be inserted
#IdeSourceView:count times.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="use_count" transfer-ownership="none">
            <doc xml:space="preserve">If the count property should be used to repeat.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="jump" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-error" when="last" action="1">
        <doc xml:space="preserve">Moves to the next search result either forwards or backwards.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve">The direction to move.</doc>
            <type name="Gtk.DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-search" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.DirectionType"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="movement" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceViewMovement"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="paste-clipboard-extended" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pop-selection" when="last" action="1">
        <doc xml:space="preserve">Reselects a previousl selected range of text that was saved using
IdeSourceView::push-selection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="pop-snippet" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceSnippet"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="push-selection" when="last" action="1">
        <doc xml:space="preserve">Saves the current selection away to be restored by a call to
IdeSourceView::pop-selection. You must pop the selection to keep
the selection stack in consistent order.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="push-snippet" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceSnippet"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="SourceSnippetContext"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Gtk.TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="rebuild-highlight" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="replay-macro" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="request-documentation" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="reset-font-size" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="restore-insert-mark" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="save-insert-mark" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="selection-theatric" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceViewTheatric"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-mode" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="SourceViewModeType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-overwrite" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-search-text" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sort" when="last" action="1">
        <doc xml:space="preserve">This signal is meant to be activated from keybindings to sort the currently selected lines.
The lines are sorted using qsort() and either strcmp() or strcasecmp().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ignore_case" transfer-ownership="none">
            <doc xml:space="preserve">If character case should be ignored.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="reverse" transfer-ownership="none">
            <doc xml:space="preserve">If the lines should be sorted in reverse order</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="swap-selection-bounds" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SourceViewClass"
            c:type="IdeSourceViewClass"
            glib:is-gtype-struct-for="SourceView">
      <field name="parent_class">
        <type name="GtkSource.ViewClass" c:type="GtkSourceViewClass"/>
      </field>
      <field name="action">
        <callback name="action">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="prefix" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="action_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="param" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="append_to_count">
        <callback name="append_to_count">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="digit" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="auto_indent">
        <callback name="auto_indent">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin_macro">
        <callback name="begin_macro">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="capture_modifier">
        <callback name="capture_modifier">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear_count">
        <callback name="clear_count">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear_modifier">
        <callback name="clear_modifier">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear_search">
        <callback name="clear_search">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear_selection">
        <callback name="clear_selection">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clear_snippets">
        <callback name="clear_snippets">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cycle_completion">
        <callback name="cycle_completion">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="delete_selection">
        <callback name="delete_selection">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_macro">
        <callback name="end_macro">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus_location">
        <callback name="focus_location">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="goto_definition">
        <callback name="goto_definition">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_completion">
        <callback name="hide_completion">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="indent_selection">
        <callback name="indent_selection">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="level" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_at_cursor_and_indent">
        <callback name="insert_at_cursor_and_indent">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="str" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_modifier">
        <callback name="insert_modifier">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="use_count" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="jump">
        <callback name="jump">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="movement">
        <callback name="movement">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="movement" transfer-ownership="none">
              <type name="SourceViewMovement" c:type="IdeSourceViewMovement"/>
            </parameter>
            <parameter name="extend_selection" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="exclusive" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="apply_count" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_error">
        <callback name="move_error">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="dir" transfer-ownership="none">
              <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_search">
        <callback name="move_search">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="dir" transfer-ownership="none">
              <type name="Gtk.DirectionType" c:type="GtkDirectionType"/>
            </parameter>
            <parameter name="extend_selection" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="select_match" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="exclusive" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="apply_count" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="at_word_boundaries" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="paste_clipboard_extended">
        <callback name="paste_clipboard_extended">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="smart_lines" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="after_cursor" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="place_cursor_at_original"
                       transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="push_selection">
        <callback name="push_selection">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pop_selection">
        <callback name="pop_selection">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pop_snippet">
        <callback name="pop_snippet">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="snippet" transfer-ownership="none">
              <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="push_snippet">
        <callback name="push_snippet">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="snippet" transfer-ownership="none">
              <type name="SourceSnippet" c:type="IdeSourceSnippet*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="SourceSnippetContext"
                    c:type="IdeSourceSnippetContext*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <type name="Gtk.TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="rebuild_highlight">
        <callback name="rebuild_highlight">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="replay_macro">
        <callback name="replay_macro">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="use_count" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="request_documentation">
        <callback name="request_documentation">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="restore_insert_mark">
        <callback name="restore_insert_mark">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="save_insert_mark">
        <callback name="save_insert_mark">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_theatric">
        <callback name="selection_theatric">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="theatric" transfer-ownership="none">
              <type name="SourceViewTheatric" c:type="IdeSourceViewTheatric"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_mode">
        <callback name="set_mode">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="mode" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <type name="SourceViewModeType" c:type="IdeSourceViewModeType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_overwrite">
        <callback name="set_overwrite">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="overwrite" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_search_text">
        <callback name="set_search_text">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="search_text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="from_selection" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="sort">
        <callback name="sort">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
            <parameter name="ignore_case" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="reverse" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="swap_selection_bounds">
        <callback name="swap_selection_bounds">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="increase_font_size">
        <callback name="increase_font_size">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="decrease_font_size">
        <callback name="decrease_font_size">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset_font_size">
        <callback name="reset_font_size">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SourceView" c:type="IdeSourceView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="SourceViewMode"
           c:symbol-prefix="source_view_mode"
           c:type="IdeSourceViewMode"
           parent="Gtk.Widget"
           glib:type-name="IdeSourceViewMode"
           glib:get-type="ide_source_view_mode_get_type"
           glib:type-struct="SourceViewModeClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <method name="get_block_cursor"
              c:identifier="ide_source_view_mode_get_block_cursor">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_mode"
              c:identifier="ide_source_view_mode_get_default_mode">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="ide_source_view_mode_get_display_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keep_mark_on_char"
              c:identifier="ide_source_view_mode_get_keep_mark_on_char">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode_type"
              c:identifier="ide_source_view_mode_get_mode_type">
        <return-value transfer-ownership="none">
          <type name="SourceViewModeType" c:type="IdeSourceViewModeType"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_source_view_mode_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_repeat_insert_with_count"
              c:identifier="ide_source_view_mode_get_repeat_insert_with_count">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_suppress_unbound"
              c:identifier="ide_source_view_mode_get_suppress_unbound">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SourceViewMode" c:type="IdeSourceViewMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="append-to-count" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="auto-indent" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="backspace" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="begin-macro" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="begin-user-action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="capture-modifier" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="change-case" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GtkSource.ChangeCaseType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="change-number" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="clear-count" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-modifier" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-search" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="clear-snippets" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="copy-clipboard" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cut-clipboard" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cycle-completion" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="decrease-font-size" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="delete-from-cursor" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.DeleteType"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="delete-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="end-macro" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="end-user-action" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="goto-definition" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hide-completion" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="increase-font-size" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="indent-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-at-cursor" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-at-cursor-and-indent" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-modifier" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="join-lines" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="move-cursor" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.MovementStep"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-error" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-lines" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-search" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.DirectionType"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-to-matching-bracket" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-viewport" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gtk.ScrollStep"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-words" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="movement" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceViewMovement"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="paste-clipboard" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="paste-clipboard-extended" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pop-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="preedit-changed" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="push-selection" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="rebuild-highlight" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="redo" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="replay-macro" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="request-documentation" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="reset-font-size" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="restore-insert-mark" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="save-insert-mark" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="select-all" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="selection-theatric" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceViewTheatric"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-anchor" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-mode" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="SourceViewModeType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-overwrite" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-search-text" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-completion" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="sort" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="swap-selection-bounds" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="toggle-cursor-visible" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="toggle-overwrite" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="undo" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SourceViewModeClass"
            c:type="IdeSourceViewModeClass"
            glib:is-gtype-struct-for="SourceViewMode">
      <field name="parent_class">
        <type name="Gtk.WidgetClass" c:type="GtkWidgetClass"/>
      </field>
    </record>
    <enumeration name="SourceViewModeType"
                 glib:type-name="IdeSourceViewModeType"
                 glib:get-type="ide_source_view_mode_type_get_type"
                 c:type="IdeSourceViewModeType">
      <doc xml:space="preserve">The type of keyboard mode.</doc>
      <member name="transient"
              value="0"
              c:identifier="IDE_SOURCE_VIEW_MODE_TYPE_TRANSIENT"
              glib:nick="transient">
      </member>
      <member name="permanent"
              value="1"
              c:identifier="IDE_SOURCE_VIEW_MODE_TYPE_PERMANENT"
              glib:nick="permanent">
      </member>
      <member name="modal"
              value="2"
              c:identifier="IDE_SOURCE_VIEW_MODE_TYPE_MODAL"
              glib:nick="modal">
      </member>
    </enumeration>
    <enumeration name="SourceViewMovement"
                 glib:type-name="IdeSourceViewMovement"
                 glib:get-type="ide_source_view_movement_get_type"
                 c:type="IdeSourceViewMovement">
      <doc xml:space="preserve">The type of movement.

Some of these movements may be modified by using the modify-repeat action.
First adjust the repeat and then perform the "movement" action.</doc>
      <member name="previous_offset"
              value="0"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_OFFSET"
              glib:nick="previous-offset">
        <doc xml:space="preserve">move to previous character in the file.
  This includes line breaks.</doc>
      </member>
      <member name="next_offset"
              value="1"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_OFFSET"
              glib:nick="next-offset">
        <doc xml:space="preserve">move to next character in the file.
  This includes line breaks.</doc>
      </member>
      <member name="nth_char"
              value="2"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NTH_CHAR"
              glib:nick="nth-char">
        <doc xml:space="preserve">move to nth character in line. Use a repeat to
  specify the target character within the line.</doc>
      </member>
      <member name="previous_char"
              value="3"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_CHAR"
              glib:nick="previous-char">
        <doc xml:space="preserve">move to previous character in line.</doc>
      </member>
      <member name="next_char"
              value="4"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_CHAR"
              glib:nick="next-char">
        <doc xml:space="preserve">move to next character in line.</doc>
      </member>
      <member name="first_char"
              value="5"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_FIRST_CHAR"
              glib:nick="first-char">
        <doc xml:space="preserve">move to line offset of zero.</doc>
      </member>
      <member name="first_nonspace_char"
              value="6"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_FIRST_NONSPACE_CHAR"
              glib:nick="first-nonspace-char">
        <doc xml:space="preserve">move to first non-whitespace character in line.</doc>
      </member>
      <member name="middle_char"
              value="7"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_MIDDLE_CHAR"
              glib:nick="middle-char">
        <doc xml:space="preserve">move to the middle character in the line.</doc>
      </member>
      <member name="last_char"
              value="8"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_LAST_CHAR"
              glib:nick="last-char">
        <doc xml:space="preserve">move to the last character in the line. this can be
  inclusve or exclusive. inclusive is equivalent to %IDE_SOURCE_VIEW_MOVEMENT_LINE_END.</doc>
      </member>
      <member name="next_word_start"
              value="9"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_START"
              glib:nick="next-word-start">
        <doc xml:space="preserve">move to beginning of next word.</doc>
      </member>
      <member name="next_full_word_start"
              value="10"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_FULL_WORD_START"
              glib:nick="next-full-word-start">
      </member>
      <member name="previous_word_start"
              value="11"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_START"
              glib:nick="previous-word-start">
        <doc xml:space="preserve">move to beginning of previous word.</doc>
      </member>
      <member name="previous_full_word_start"
              value="12"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_FULL_WORD_START"
              glib:nick="previous-full-word-start">
      </member>
      <member name="previous_word_end"
              value="13"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_END"
              glib:nick="previous-word-end">
        <doc xml:space="preserve">move to end of previous word.</doc>
      </member>
      <member name="previous_full_word_end"
              value="14"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_FULL_WORD_END"
              glib:nick="previous-full-word-end">
      </member>
      <member name="next_word_end"
              value="15"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_END"
              glib:nick="next-word-end">
        <doc xml:space="preserve">move to end of next word.</doc>
      </member>
      <member name="next_full_word_end"
              value="16"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_FULL_WORD_END"
              glib:nick="next-full-word-end">
      </member>
      <member name="sentence_start"
              value="17"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SENTENCE_START"
              glib:nick="sentence-start">
        <doc xml:space="preserve">move to beginning of sentance.</doc>
      </member>
      <member name="sentence_end"
              value="18"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SENTENCE_END"
              glib:nick="sentence-end">
        <doc xml:space="preserve">move to end of sentance.</doc>
      </member>
      <member name="paragraph_start"
              value="19"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PARAGRAPH_START"
              glib:nick="paragraph-start">
        <doc xml:space="preserve">move to start of paragraph.</doc>
      </member>
      <member name="paragraph_end"
              value="20"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PARAGRAPH_END"
              glib:nick="paragraph-end">
        <doc xml:space="preserve">move to end of paragraph.</doc>
      </member>
      <member name="previous_line"
              value="21"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_LINE"
              glib:nick="previous-line">
        <doc xml:space="preserve">move to previous line, keeping line offset if possible.</doc>
      </member>
      <member name="next_line"
              value="22"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_LINE"
              glib:nick="next-line">
        <doc xml:space="preserve">move to next line, keeping line offset if possible.</doc>
      </member>
      <member name="first_line"
              value="23"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_FIRST_LINE"
              glib:nick="first-line">
        <doc xml:space="preserve">move to first line in file, line offset of zero.</doc>
      </member>
      <member name="nth_line"
              value="24"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NTH_LINE"
              glib:nick="nth-line">
        <doc xml:space="preserve">move to nth line, line offset of zero. use repeat to
  select the given line number.</doc>
      </member>
      <member name="last_line"
              value="25"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_LAST_LINE"
              glib:nick="last-line">
        <doc xml:space="preserve">move to last line in file, with line offset of zero.</doc>
      </member>
      <member name="line_percentage"
              value="26"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_LINE_PERCENTAGE"
              glib:nick="line-percentage">
        <doc xml:space="preserve">move to line based on percentage. Use repeat to
  specify the percentage, 0 to 100.</doc>
      </member>
      <member name="line_chars"
              value="27"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_LINE_CHARS"
              glib:nick="line-chars">
        <doc xml:space="preserve">special selection to select all line characters up to the
  cursor position. special care will be taken if the line is blank to select only the blank
  space if any. otherwise, the line break will be selected.</doc>
      </member>
      <member name="line_end"
              value="28"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_LINE_END"
              glib:nick="line-end">
        <doc xml:space="preserve">This will move you to the location of the newline at the
  end of the current line. It does not support exclusive will not select the newline, while
  inclusive will select the newline.</doc>
      </member>
      <member name="half_page_up"
              value="29"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_UP"
              glib:nick="half-page-up">
        <doc xml:space="preserve">move half a page up.</doc>
      </member>
      <member name="half_page_down"
              value="30"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_DOWN"
              glib:nick="half-page-down">
        <doc xml:space="preserve">move half a page down.</doc>
      </member>
      <member name="page_up"
              value="31"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PAGE_UP"
              glib:nick="page-up">
        <doc xml:space="preserve">move a full page up.</doc>
      </member>
      <member name="page_down"
              value="32"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PAGE_DOWN"
              glib:nick="page-down">
        <doc xml:space="preserve">move a full page down.</doc>
      </member>
      <member name="screen_up"
              value="33"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCREEN_UP"
              glib:nick="screen-up">
        <doc xml:space="preserve">move to viewport up by visible line, adjusting cursor
  to stay on screen if necessary.</doc>
      </member>
      <member name="screen_down"
              value="34"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCREEN_DOWN"
              glib:nick="screen-down">
        <doc xml:space="preserve">move to viewport down by visible line, adjusting cursor
  to stay on screen if necessary.</doc>
      </member>
      <member name="screen_top"
              value="35"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCREEN_TOP"
              glib:nick="screen-top">
        <doc xml:space="preserve">move to the top of the screen.</doc>
      </member>
      <member name="screen_middle"
              value="36"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCREEN_MIDDLE"
              glib:nick="screen-middle">
        <doc xml:space="preserve">move to the middle of the screen.</doc>
      </member>
      <member name="screen_bottom"
              value="37"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCREEN_BOTTOM"
              glib:nick="screen-bottom">
        <doc xml:space="preserve">move to the bottom of the screen.</doc>
      </member>
      <member name="match_special"
              value="38"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_MATCH_SPECIAL"
              glib:nick="match-special">
        <doc xml:space="preserve">move to match of brace, bracket, comment.</doc>
      </member>
      <member name="scroll_screen_top"
              value="39"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_TOP"
              glib:nick="scroll-screen-top">
        <doc xml:space="preserve">scroll until insert cursor is at screen top.</doc>
      </member>
      <member name="scroll_screen_center"
              value="40"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_CENTER"
              glib:nick="scroll-screen-center">
        <doc xml:space="preserve">scroll until insert cursor is at screen center.</doc>
      </member>
      <member name="scroll_screen_bottom"
              value="41"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_BOTTOM"
              glib:nick="scroll-screen-bottom">
        <doc xml:space="preserve">scroll until insert cursor is at screen bottom.</doc>
      </member>
      <member name="previous_unmatched_brace"
              value="42"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_UNMATCHED_BRACE"
              glib:nick="previous-unmatched-brace">
      </member>
      <member name="next_unmatched_brace"
              value="43"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_UNMATCHED_BRACE"
              glib:nick="next-unmatched-brace">
      </member>
      <member name="previous_unmatched_paren"
              value="44"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_UNMATCHED_PAREN"
              glib:nick="previous-unmatched-paren">
      </member>
      <member name="next_unmatched_paren"
              value="45"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_UNMATCHED_PAREN"
              glib:nick="next-unmatched-paren">
      </member>
      <member name="next_match_modifier"
              value="46"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_NEXT_MATCH_MODIFIER"
              glib:nick="next-match-modifier">
      </member>
      <member name="previous_match_modifier"
              value="47"
              c:identifier="IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_MATCH_MODIFIER"
              glib:nick="previous-match-modifier">
      </member>
    </enumeration>
    <enumeration name="SourceViewTheatric"
                 glib:type-name="IdeSourceViewTheatric"
                 glib:get-type="ide_source_view_theatric_get_type"
                 c:type="IdeSourceViewTheatric">
      <doc xml:space="preserve">The style of theatric.</doc>
      <member name="expand"
              value="0"
              c:identifier="IDE_SOURCE_VIEW_THEATRIC_EXPAND"
              glib:nick="expand">
        <doc xml:space="preserve">expand from selection location.</doc>
      </member>
      <member name="shrink"
              value="1"
              c:identifier="IDE_SOURCE_VIEW_THEATRIC_SHRINK"
              glib:nick="shrink">
        <doc xml:space="preserve">shrink from selection location.</doc>
      </member>
    </enumeration>
    <record name="Symbol"
            c:type="IdeSymbol"
            glib:type-name="IdeSymbol"
            glib:get-type="ide_symbol_get_type"
            c:symbol-prefix="symbol">
      <method name="get_canonical_location"
              c:identifier="ide_symbol_get_canonical_location">
        <doc xml:space="preserve">Gets the location of the symbols "implementation". In C/C++ languages, you can have multiple
declarations by only a single implementation.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSourceLocation or %NULL.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_declaration_location"
              c:identifier="ide_symbol_get_declaration_location">
        <doc xml:space="preserve">The location of a symbol equates to the declaration of the symbol. In C and C++, this would
mean the header location (or forward declaration in a C file before the implementation).

If the symbol provider did not register this information, %NULL will be returned.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSourceLocation or %NULL.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_definition_location"
              c:identifier="ide_symbol_get_definition_location">
        <doc xml:space="preserve">Like ide_symbol_get_declaration_location() but gets the first declaration (only one can be
the definition).</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">An #IdeSourceLocation or %NULL.</doc>
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="ide_symbol_get_flags">
        <return-value transfer-ownership="none">
          <type name="SymbolFlags" c:type="IdeSymbolFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind" c:identifier="ide_symbol_get_kind">
        <return-value transfer-ownership="none">
          <type name="SymbolKind" c:type="IdeSymbolKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_symbol_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_symbol_ref">
        <return-value transfer-ownership="full">
          <type name="Symbol" c:type="IdeSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_symbol_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Symbol" c:type="IdeSymbol*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="SymbolFlags"
              glib:type-name="IdeSymbolFlags"
              glib:get-type="ide_symbol_flags_get_type"
              c:type="IdeSymbolFlags">
      <member name="symbol_flags_none"
              value="0"
              c:identifier="IDE_SYMBOL_FLAGS_NONE"
              glib:nick="symbol-flags-none">
      </member>
      <member name="symbol_flags_is_static"
              value="1"
              c:identifier="IDE_SYMBOL_FLAGS_IS_STATIC"
              glib:nick="symbol-flags-is-static">
      </member>
      <member name="symbol_flags_is_member"
              value="2"
              c:identifier="IDE_sYMBOL_FLAGS_IS_MEMBER"
              glib:nick="symbol-flags-is-member">
      </member>
      <member name="symbol_flags_is_deprecated"
              value="4"
              c:identifier="IDE_SYMBOL_FLAGS_IS_DEPRECATED"
              glib:nick="symbol-flags-is-deprecated">
      </member>
    </bitfield>
    <enumeration name="SymbolKind"
                 glib:type-name="IdeSymbolKind"
                 glib:get-type="ide_symbol_kind_get_type"
                 c:type="IdeSymbolKind">
      <member name="none"
              value="0"
              c:identifier="IDE_SYMBOL_NONE"
              glib:nick="none">
      </member>
      <member name="scalar"
              value="1"
              c:identifier="IDE_SYMBOL_SCALAR"
              glib:nick="scalar">
      </member>
      <member name="class"
              value="2"
              c:identifier="IDE_SYMBOL_CLASS"
              glib:nick="class">
      </member>
      <member name="function"
              value="3"
              c:identifier="IDE_SYMBOL_FUNCTION"
              glib:nick="function">
      </member>
      <member name="method"
              value="4"
              c:identifier="IDE_SYMBOL_METHOD"
              glib:nick="method">
      </member>
      <member name="struct"
              value="5"
              c:identifier="IDE_SYMBOL_STRUCT"
              glib:nick="struct">
      </member>
      <member name="union"
              value="6"
              c:identifier="IDE_SYMBOL_UNION"
              glib:nick="union">
      </member>
      <member name="field"
              value="7"
              c:identifier="IDE_SYMBOL_FIELD"
              glib:nick="field">
      </member>
      <member name="enum"
              value="8"
              c:identifier="IDE_SYMBOL_ENUM"
              glib:nick="enum">
      </member>
      <member name="enum_value"
              value="9"
              c:identifier="IDE_SYMBOL_ENUM_VALUE"
              glib:nick="enum-value">
      </member>
      <member name="variable"
              value="10"
              c:identifier="IDE_SYMBOL_VARIABLE"
              glib:nick="variable">
      </member>
    </enumeration>
    <class name="SymbolNode"
           c:symbol-prefix="symbol_node"
           c:type="IdeSymbolNode"
           parent="Object"
           glib:type-name="IdeSymbolNode"
           glib:get-type="ide_symbol_node_get_type"
           glib:type-struct="SymbolNodeClass">
      <virtual-method name="get_location" invoker="get_location">
        <return-value transfer-ownership="full">
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_flags" c:identifier="ide_symbol_node_get_flags">
        <return-value transfer-ownership="none">
          <type name="SymbolFlags" c:type="IdeSymbolFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind" c:identifier="ide_symbol_node_get_kind">
        <return-value transfer-ownership="none">
          <type name="SymbolKind" c:type="IdeSymbolKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location" c:identifier="ide_symbol_node_get_location">
        <return-value transfer-ownership="full">
          <type name="SourceLocation" c:type="IdeSourceLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ide_symbol_node_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="flags"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="SymbolFlags"/>
      </property>
      <property name="kind"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="SymbolKind"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="SymbolNodeClass"
            c:type="IdeSymbolNodeClass"
            glib:is-gtype-struct-for="SymbolNode">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="get_location">
        <callback name="get_location">
          <return-value transfer-ownership="full">
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SymbolNode" c:type="IdeSymbolNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="SymbolResolver"
               c:symbol-prefix="symbol_resolver"
               c:type="IdeSymbolResolver"
               glib:type-name="IdeSymbolResolver"
               glib:get-type="ide_symbol_resolver_get_type"
               glib:type-struct="SymbolResolverInterface">
      <prerequisite name="Object"/>
      <virtual-method name="get_symbol_tree_async"
                      invoker="get_symbol_tree_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_symbol_tree_finish"
                      invoker="get_symbol_tree_finish"
                      throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to get the symbol tree for the requested file.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeSymbolTree; otherwise %NULL and @error is set.</doc>
          <type name="SymbolTree" c:type="IdeSymbolTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lookup_symbol_async" invoker="lookup_symbol_async">
        <doc xml:space="preserve">Asynchronously requests that @self determine the symbol existing at the source location
denoted by @self. @callback should call ide_symbol_resolver_lookup_symbol_finish() to
retrieve the result.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSymbolResolver.</doc>
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceLocation.</doc>
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">A callback to execute upon completion.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:space="preserve">user data for @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lookup_symbol_finish"
                      invoker="lookup_symbol_finish"
                      throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to lookup a symbol using
ide_symbol_resolver_lookup_symbol_async().</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeSymbol if successful; otherwise %NULL.</doc>
          <type name="Symbol" c:type="IdeSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSymbolResolver.</doc>
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult provided to the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_symbol_tree_async"
              c:identifier="ide_symbol_resolver_get_symbol_tree_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_symbol_tree_finish"
              c:identifier="ide_symbol_resolver_get_symbol_tree_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous request to get the symbol tree for the requested file.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #IdeSymbolTree; otherwise %NULL and @error is set.</doc>
          <type name="SymbolTree" c:type="IdeSymbolTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_symbol_async"
              c:identifier="ide_symbol_resolver_lookup_symbol_async">
        <doc xml:space="preserve">Asynchronously requests that @self determine the symbol existing at the source location
denoted by @self. @callback should call ide_symbol_resolver_lookup_symbol_finish() to
retrieve the result.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSymbolResolver.</doc>
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSourceLocation.</doc>
            <type name="SourceLocation" c:type="IdeSourceLocation*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">A callback to execute upon completion.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">user data for @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_symbol_finish"
              c:identifier="ide_symbol_resolver_lookup_symbol_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to lookup a symbol using
ide_symbol_resolver_lookup_symbol_async().</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeSymbol if successful; otherwise %NULL.</doc>
          <type name="Symbol" c:type="IdeSymbol*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeSymbolResolver.</doc>
            <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult provided to the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
    </interface>
    <record name="SymbolResolverInterface"
            c:type="IdeSymbolResolverInterface"
            glib:is-gtype-struct-for="SymbolResolver">
      <field name="parent_interface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="lookup_symbol_async">
        <callback name="lookup_symbol_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">An #IdeSymbolResolver.</doc>
              <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve">An #IdeSourceLocation.</doc>
              <type name="SourceLocation" c:type="IdeSourceLocation*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve">A #GCancellable or %NULL.</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <doc xml:space="preserve">A callback to execute upon completion.</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:space="preserve">user data for @callback.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="lookup_symbol_finish">
        <callback name="lookup_symbol_finish" throws="1">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">An #IdeSymbol if successful; otherwise %NULL.</doc>
            <type name="Symbol" c:type="IdeSymbol*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">An #IdeSymbolResolver.</doc>
              <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve">A #GAsyncResult provided to the callback.</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_symbol_tree_async">
        <callback name="get_symbol_tree_async">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_symbol_tree_finish">
        <callback name="get_symbol_tree_finish" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">An #IdeSymbolTree; otherwise %NULL and @error is set.</doc>
            <type name="SymbolTree" c:type="IdeSymbolTree*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SymbolResolver" c:type="IdeSymbolResolver*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="SymbolTree"
               c:symbol-prefix="symbol_tree"
               c:type="IdeSymbolTree"
               glib:type-name="IdeSymbolTree"
               glib:get-type="ide_symbol_tree_get_type"
               glib:type-struct="SymbolTreeInterface">
      <virtual-method name="get_n_children" invoker="get_n_children">
        <doc xml:space="preserve">Get the number of children of @node. If @node is NULL, the root node
is assumed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An unsigned integer containing the number of children.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolTree" c:type="IdeSymbolTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_nth_child" invoker="get_nth_child">
        <doc xml:space="preserve">Gets the @nth child node of @node.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #IdeSymbolNode or %NULL.</doc>
          <type name="SymbolNode" c:type="IdeSymbolNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolTree" c:type="IdeSymbolTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </parameter>
          <parameter name="nth" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_n_children"
              c:identifier="ide_symbol_tree_get_n_children">
        <doc xml:space="preserve">Get the number of children of @node. If @node is NULL, the root node
is assumed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An unsigned integer containing the number of children.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolTree" c:type="IdeSymbolTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_nth_child"
              c:identifier="ide_symbol_tree_get_nth_child">
        <doc xml:space="preserve">Gets the @nth child node of @node.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">A #IdeSymbolNode or %NULL.</doc>
          <type name="SymbolNode" c:type="IdeSymbolNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="SymbolTree" c:type="IdeSymbolTree*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </parameter>
          <parameter name="nth" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="SymbolTreeInterface"
            c:type="IdeSymbolTreeInterface"
            glib:is-gtype-struct-for="SymbolTree">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_n_children">
        <callback name="get_n_children">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">An unsigned integer containing the number of children.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SymbolTree" c:type="IdeSymbolTree*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="SymbolNode" c:type="IdeSymbolNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_nth_child">
        <callback name="get_nth_child">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">A #IdeSymbolNode or %NULL.</doc>
            <type name="SymbolNode" c:type="IdeSymbolNode*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SymbolTree" c:type="IdeSymbolTree*"/>
            </parameter>
            <parameter name="node" transfer-ownership="none">
              <type name="SymbolNode" c:type="IdeSymbolNode*"/>
            </parameter>
            <parameter name="nth" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="Target"
               c:symbol-prefix="target"
               c:type="IdeTarget"
               glib:type-name="IdeTarget"
               glib:get-type="ide_target_get_type"
               glib:type-struct="TargetInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="TargetInterface"
            c:type="IdeTargetInterface"
            glib:is-gtype-struct-for="Target">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <interface name="TestCase"
               c:symbol-prefix="test_case"
               c:type="IdeTestCase"
               glib:type-name="IdeTestCase"
               glib:get-type="ide_test_case_get_type"
               glib:type-struct="TestCaseInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="TestCaseInterface"
            c:type="IdeTestCaseInterface"
            glib:is-gtype-struct-for="TestCase">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <interface name="TestSuite"
               c:symbol-prefix="test_suite"
               c:type="IdeTestSuite"
               glib:type-name="IdeTestSuite"
               glib:get-type="ide_test_suite_get_type"
               glib:type-struct="TestSuiteInterface">
      <prerequisite name="Object"/>
    </interface>
    <record name="TestSuiteInterface"
            c:type="IdeTestSuiteInterface"
            glib:is-gtype-struct-for="TestSuite">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <enumeration name="ThreadPoolKind"
                 glib:type-name="IdeThreadPoolKind"
                 glib:get-type="ide_thread_pool_kind_get_type"
                 c:type="IdeThreadPoolKind">
      <member name="compiler"
              value="0"
              c:identifier="IDE_THREAD_POOL_COMPILER"
              glib:nick="compiler">
      </member>
      <member name="indexer"
              value="1"
              c:identifier="IDE_THREAD_POOL_INDEXER"
              glib:nick="indexer">
      </member>
      <member name="last"
              value="2"
              c:identifier="IDE_THREAD_POOL_LAST"
              glib:nick="last">
      </member>
    </enumeration>
    <record name="UnsavedFile"
            c:type="IdeUnsavedFile"
            glib:type-name="IdeUnsavedFile"
            glib:get-type="ide_unsaved_file_get_type"
            c:symbol-prefix="unsaved_file">
      <method name="get_content" c:identifier="ide_unsaved_file_get_content">
        <doc xml:space="preserve">Gets the contents of the unsaved file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GBytes containing the unsaved file content.</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #IdeUnsavedFile.</doc>
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file" c:identifier="ide_unsaved_file_get_file">
        <doc xml:space="preserve">Retrieves the underlying file represented by @self.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sequence" c:identifier="ide_unsaved_file_get_sequence">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_temp_path"
              c:identifier="ide_unsaved_file_get_temp_path">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="persist"
              c:identifier="ide_unsaved_file_persist"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_unsaved_file_ref">
        <return-value transfer-ownership="full">
          <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_unsaved_file_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="UnsavedFiles"
           c:symbol-prefix="unsaved_files"
           c:type="IdeUnsavedFiles"
           parent="Object"
           glib:type-name="IdeUnsavedFiles"
           glib:get-type="ide_unsaved_files_get_type"
           glib:type-struct="UnsavedFilesClass">
      <method name="clear" c:identifier="ide_unsaved_files_clear">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sequence"
              c:identifier="ide_unsaved_files_get_sequence">
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="files" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_unsaved_file"
              c:identifier="ide_unsaved_files_get_unsaved_file">
        <doc xml:space="preserve">Retrieves the unsaved file content for a particular file. If no unsaved
file content is registered, %NULL is returned.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeUnsavedFile or %NULL.</doc>
          <type name="UnsavedFile" c:type="IdeUnsavedFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="ide_unsaved_files_remove">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_async"
              c:identifier="ide_unsaved_files_restore_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="files" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="restore_finish"
              c:identifier="ide_unsaved_files_restore_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="files" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_async" c:identifier="ide_unsaved_files_save_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="files" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_finish"
              c:identifier="ide_unsaved_files_save_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="files" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_array" c:identifier="ide_unsaved_files_to_array">
        <doc xml:space="preserve">This retrieves all of the unsaved file buffers known to the context.
These are handy if you need to pass modified state to parsers such as
clang.

Call g_ptr_array_unref() on the resulting #GPtrArray when no longer in use.

If you would like to hold onto an unsaved file instance, call
ide_unsaved_file_ref() to increment it's reference count.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">A #GPtrArray
  containing #IdeUnsavedFile elements.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="UnsavedFile"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="files" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update" c:identifier="ide_unsaved_files_update">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="UnsavedFiles" c:type="IdeUnsavedFiles*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="content" transfer-ownership="none">
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="UnsavedFilesClass"
            c:type="IdeUnsavedFilesClass"
            glib:is-gtype-struct-for="UnsavedFiles">
      <field name="parent_class">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
    </record>
    <constant name="VCS_EXTENSION_POINT"
              value="org.gnome.libide.extensions.vcs"
              c:type="IDE_VCS_EXTENSION_POINT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Vcs"
           c:symbol-prefix="vcs"
           c:type="IdeVcs"
           parent="Object"
           abstract="1"
           glib:type-name="IdeVcs"
           glib:get-type="ide_vcs_get_type"
           glib:type-struct="VcsClass">
      <constructor name="new_finish"
                   c:identifier="ide_vcs_new_finish"
                   throws="1">
        <return-value transfer-ownership="full">
          <type name="Vcs" c:type="IdeVcs*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new_async" c:identifier="ide_vcs_new_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="IdeContext*"/>
          </parameter>
          <parameter name="io_priority" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="get_buffer_change_monitor"
                      invoker="get_buffer_change_monitor">
        <doc xml:space="preserve">Gets an #IdeBufferChangeMonitor for the buffer provided. If the #IdeVcs implementation does not
support change monitoring, or cannot for the current file, then %NULL is returned.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeBufferChangeMonitor or %NULL.</doc>
          <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Vcs" c:type="IdeVcs*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_working_directory"
                      invoker="get_working_directory">
        <doc xml:space="preserve">Retrieves the working directory for the context. This is the root of where
the project files exist.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeVcs.</doc>
            <type name="Vcs" c:type="IdeVcs*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_ignored" invoker="is_ignored" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Vcs" c:type="IdeVcs*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_buffer_change_monitor"
              c:identifier="ide_vcs_get_buffer_change_monitor">
        <doc xml:space="preserve">Gets an #IdeBufferChangeMonitor for the buffer provided. If the #IdeVcs implementation does not
support change monitoring, or cannot for the current file, then %NULL is returned.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">An #IdeBufferChangeMonitor or %NULL.</doc>
          <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Vcs" c:type="IdeVcs*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Buffer" c:type="IdeBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_working_directory"
              c:identifier="ide_vcs_get_working_directory">
        <doc xml:space="preserve">Retrieves the working directory for the context. This is the root of where
the project files exist.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GFile.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">An #IdeVcs.</doc>
            <type name="Vcs" c:type="IdeVcs*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_ignored" c:identifier="ide_vcs_is_ignored" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Vcs" c:type="IdeVcs*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="IdeObject"/>
      </field>
    </class>
    <record name="VcsClass"
            c:type="IdeVcsClass"
            glib:is-gtype-struct-for="Vcs">
      <field name="parent">
        <type name="ObjectClass" c:type="IdeObjectClass"/>
      </field>
      <field name="get_working_directory">
        <callback name="get_working_directory">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">A #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve">An #IdeVcs.</doc>
              <type name="Vcs" c:type="IdeVcs*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_buffer_change_monitor">
        <callback name="get_buffer_change_monitor">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">An #IdeBufferChangeMonitor or %NULL.</doc>
            <type name="BufferChangeMonitor" c:type="IdeBufferChangeMonitor*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Vcs" c:type="IdeVcs*"/>
            </parameter>
            <parameter name="buffer" transfer-ownership="none">
              <type name="Buffer" c:type="IdeBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_ignored">
        <callback name="is_ignored" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Vcs" c:type="IdeVcs*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="VcsUri"
            c:type="IdeVcsUri"
            glib:type-name="IdeVcsUri"
            glib:get-type="ide_vcs_uri_get_type"
            c:symbol-prefix="vcs_uri">
      <constructor name="new" c:identifier="ide_vcs_uri_new">
        <return-value transfer-ownership="full">
          <type name="VcsUri" c:type="IdeVcsUri*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_host" c:identifier="ide_vcs_uri_get_host">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="const IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="ide_vcs_uri_get_path">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="const IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_port" c:identifier="ide_vcs_uri_get_port">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="const IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scheme" c:identifier="ide_vcs_uri_get_scheme">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="const IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user" c:identifier="ide_vcs_uri_get_user">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="const IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ide_vcs_uri_ref">
        <return-value transfer-ownership="full">
          <type name="VcsUri" c:type="IdeVcsUri*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_host" c:identifier="ide_vcs_uri_set_host">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
          <parameter name="host" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_path" c:identifier="ide_vcs_uri_set_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_port" c:identifier="ide_vcs_uri_set_port">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scheme" c:identifier="ide_vcs_uri_set_scheme">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
          <parameter name="scheme" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user" c:identifier="ide_vcs_uri_set_user">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="ide_vcs_uri_to_string">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="const IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ide_vcs_uri_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="VcsUri" c:type="IdeVcsUri*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="is_valid" c:identifier="ide_vcs_uri_is_valid">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uri_string" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <function name="build_system_new_async"
              c:identifier="ide_build_system_new_async"
              moved-to="BuildSystem.new_async">
      <doc xml:space="preserve">Asynchronously creates a new #IdeBuildSystem instance using the registered
#GIOExtensionPoint system. Each extension point will be tried asynchronously
by priority until one has been found that supports @project_file.

If no build system could be found, then ide_build_system_new_finish() will
return %NULL.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve">#IdeBuildSystem</doc>
          <type name="Context" c:type="IdeContext*"/>
        </parameter>
        <parameter name="project_file" transfer-ownership="none">
          <doc xml:space="preserve">A #GFile containing the directory or project file.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">A #GCancellable</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <doc xml:space="preserve">A callback to execute upon completion</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <doc xml:space="preserve">User data for @callback.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="build_system_new_finish"
              c:identifier="ide_build_system_new_finish"
              moved-to="BuildSystem.new_finish"
              throws="1">
      <doc xml:space="preserve">Complete an asynchronous call to ide_build_system_new_async().</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">An #IdeBuildSystem if successful; otherwise
  %NULL and @error is set.</doc>
        <type name="BuildSystem" c:type="IdeBuildSystem*"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="diagnostic_severity_to_string"
              c:identifier="ide_diagnostic_severity_to_string"
              moved-to="DiagnosticSeverity.to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="severity" transfer-ownership="none">
          <type name="DiagnosticSeverity" c:type="IdeDiagnosticSeverity"/>
        </parameter>
      </parameters>
    </function>
    <function name="doap_error_quark"
              c:identifier="ide_doap_error_quark"
              moved-to="DoapError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="get_program_name" c:identifier="ide_get_program_name">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="log_increase_verbosity"
              c:identifier="ide_log_increase_verbosity">
      <doc xml:space="preserve">Increases the amount of logging that will occur. By default, only
warning and above will be displayed.

Calling this once will cause G_LOG_LEVEL_MESSAGE to be displayed.
Calling this twice will cause G_LOG_LEVEL_INFO to be displayed.
Calling this thrice will cause G_LOG_LEVEL_DEBUG to be displayed.
Calling this four times will cause G_LOG_LEVEL_TRACE to be displayed.

Note that many DEBUG and TRACE level log messages are only compiled into
debug builds, and therefore will not be available in release builds.

This method is meant to be called for every -v provided on the command
line.

Calling this method more than four times is acceptable.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="log_init" c:identifier="ide_log_init">
      <doc xml:space="preserve">Initializes the logging subsystem.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="stdout_" transfer-ownership="none">
          <doc xml:space="preserve">Indicates logging should be written to stdout.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve">An optional file in which to store logs.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="log_shutdown" c:identifier="ide_log_shutdown">
      <doc xml:space="preserve">Cleans up after the logging subsystem.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="set_program_name" c:identifier="ide_set_program_name">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="program_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="thread_pool_push_task"
              c:identifier="ide_thread_pool_push_task">
      <doc xml:space="preserve">This pushes a task to be executed on a worker thread based on the task kind as denoted by
@kind. Some tasks will be placed on special work queues or throttled based on proirity.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="kind" transfer-ownership="none">
          <doc xml:space="preserve">The task kind.</doc>
          <type name="ThreadPoolKind" c:type="IdeThreadPoolKind"/>
        </parameter>
        <parameter name="task" transfer-ownership="none">
          <doc xml:space="preserve">A #GTask to execute.</doc>
          <type name="Gio.Task" c:type="GTask*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none" scope="async">
          <doc xml:space="preserve">The thread worker to execute for @task.</doc>
          <type name="Gio.TaskThreadFunc" c:type="GTaskThreadFunc"/>
        </parameter>
      </parameters>
    </function>
    <function name="vcs_uri_is_valid"
              c:identifier="ide_vcs_uri_is_valid"
              moved-to="VcsUri.is_valid">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="uri_string" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
