<?xml version="1.0"?>
<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="GObject" version="2.0"/>
<include name="Gio" version="2.0"/>
<include name="Gtk" version="3.0"/>
<include name="Gdk" version="3.0"/>
<include name="GLib" version="2.0"/>
<include name="Gedit" version="3.0"/>
<include name="GtkSource" version="3.0"/>
<package name="libgcp"/>
<c:include name="config.h"/>
<c:include name="gcp.h"/>
<namespace name="Gcp" version="3.0" c:prefix="Gcp">
	<class name="SourceLocation" c:type="GcpSourceLocation" glib:type-name="GcpSourceLocation" glib:get-type="gcp_source_location_get_type" glib:type-struct="SourceLocationClass" parent="GObject.Object">
		<implements name="Gcp.SourceRangeSupport"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="SourceLocationPrivate" c:type="GcpSourceLocationPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_source_location_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
			</return-value>
			<parameters>
				<parameter name="file" transfer-ownership="none" allow-none="1">
					<type name="Gio.File" c:type="GFile*"/>
				</parameter>
				<parameter name="line" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="column" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="iter" c:identifier="gcp_source_location_new_iter">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="Gtk.TextIter" c:type="GtkTextIter"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="copy" c:identifier="gcp_source_location_copy">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
			</return-value>
		</method>
		<method name="compare_to" c:identifier="gcp_source_location_compare_to">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="other" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_iter" c:identifier="gcp_source_location_get_iter">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="buffer" transfer-ownership="none">
					<type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
				</parameter>
				<parameter name="iter" direction="out" transfer-ownership="full">
					<type name="Gtk.TextIter" c:type="GtkTextIter"/>
				</parameter>
			</parameters>
		</method>
		<method name="buffer_coordinates" c:identifier="gcp_source_location_buffer_coordinates">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="view" transfer-ownership="none">
					<type name="Gtk.TextView" c:type="GtkTextView*"/>
				</parameter>
				<parameter name="rect" direction="out" transfer-ownership="full">
					<type name="Gdk.Rectangle" c:type="GdkRectangle"/>
				</parameter>
			</parameters>
		</method>
		<method name="to_string" c:identifier="gcp_source_location_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="file">
			<type name="Gio.File" c:type="GFile*"/>
		</property>
		<property name="line" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="column">
			<type name="gint" c:type="gint"/>
		</property>
	</class>
	<record name="SourceLocationClass" c:type="GcpSourceLocationClass" glib:is-gtype-struct-for="SourceLocation">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="SourceLocationPrivate" c:type="GcpSourceLocationPrivate" disguised="1"/>
	<class name="SourceRange" c:type="GcpSourceRange" glib:type-name="GcpSourceRange" glib:get-type="gcp_source_range_get_type" glib:type-struct="SourceRangeClass" parent="GObject.Object">
		<implements name="Gcp.SourceRangeSupport"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="SourceRangePrivate" c:type="GcpSourceRangePrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_source_range_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
			</return-value>
			<parameters>
				<parameter name="start" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
				<parameter name="end" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="compare_to" c:identifier="gcp_source_range_compare_to">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="other" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_iters" c:identifier="gcp_source_range_get_iters">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="buffer" transfer-ownership="none">
					<type name="Gtk.TextBuffer" c:type="GtkTextBuffer*"/>
				</parameter>
				<parameter name="start" direction="out" transfer-ownership="full">
					<type name="Gtk.TextIter" c:type="GtkTextIter"/>
				</parameter>
				<parameter name="end" direction="out" transfer-ownership="full">
					<type name="Gtk.TextIter" c:type="GtkTextIter"/>
				</parameter>
			</parameters>
		</method>
		<method name="contains_range" c:identifier="gcp_source_range_contains_range">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
			</parameters>
		</method>
		<method name="contains_location" c:identifier="gcp_source_range_contains_location">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="location" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
			</parameters>
		</method>
		<method name="contains" c:identifier="gcp_source_range_contains">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="line" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="column" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="contains_line" c:identifier="gcp_source_range_contains_line">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="line" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="to_string" c:identifier="gcp_source_range_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="start">
			<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
		</property>
		<property name="end">
			<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
		</property>
	</class>
	<record name="SourceRangeClass" c:type="GcpSourceRangeClass" glib:is-gtype-struct-for="SourceRange">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="SourceRangePrivate" c:type="GcpSourceRangePrivate" disguised="1"/>
	<class name="SourceIndex" c:type="GcpSourceIndex" glib:type-name="GcpSourceIndex" glib:get-type="gcp_source_index_get_type" glib:type-struct="SourceIndexClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="SourceIndexPrivate" c:type="GcpSourceIndexPrivate*"/>
		</field>
		<method name="add" c:identifier="gcp_source_index_add">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRangeSupport" c:type="GcpSourceRangeSupport*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get" c:identifier="gcp_source_index_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GObject.Object" c:type="GObject*"/>
			</return-value>
			<parameters>
				<parameter name="idx" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove" c:identifier="gcp_source_index_remove">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRangeSupport" c:type="GcpSourceRangeSupport*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_at_line" c:identifier="gcp_source_index_find_at_line">
			<return-value transfer-ownership="full">
				<array length="1">
					<type name="GObject.Object" c:type="GObject*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="line" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_at" c:identifier="gcp_source_index_find_at">
			<return-value transfer-ownership="full">
				<array length="1">
					<type name="GObject.Object" c:type="GObject*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="location" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_inner_at" c:identifier="gcp_source_index_find_inner_at">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GObject.Object" c:type="GObject*"/>
			</return-value>
			<parameters>
				<parameter name="location" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
			</parameters>
		</method>
		<method name="clear" c:identifier="gcp_source_index_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="iterator" c:identifier="gcp_source_index_iterator">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndexIterator" c:type="GcpSourceIndexIterator*"/>
			</return-value>
		</method>
		<constructor name="new" c:identifier="gcp_source_index_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</return-value>
		</constructor>
		<property name="length">
			<type name="gint" c:type="gint"/>
		</property>
	</class>
	<record name="SourceIndexClass" c:type="GcpSourceIndexClass" glib:is-gtype-struct-for="SourceIndex">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="SourceIndexPrivate" c:type="GcpSourceIndexPrivate" disguised="1"/>
	<class name="SourceIndexWrapper" c:type="GcpSourceIndexWrapper" glib:type-name="GcpSourceIndexWrapper" glib:get-type="gcp_source_index_wrapper_get_type" glib:type-struct="WrapperClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="WrapperPrivate" c:type="GcpSourceIndexWrapperPrivate*"/>
		</field>
		<field name="obj">
			<type name="Gcp.SourceRangeSupport" c:type="GcpSourceRangeSupport*"/>
		</field>
		<field name="range">
			<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
		</field>
		<field name="idx">
			<type name="gint" c:type="gint"/>
		</field>
		<field name="encapsulated">
			<type name="gboolean" c:type="gboolean"/>
		</field>
		<constructor name="new" c:identifier="gcp_source_index_wrapper_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndexWrapper" c:type="GcpSourceIndexWrapper*"/>
			</return-value>
			<parameters>
				<parameter name="obj" transfer-ownership="none">
					<type name="Gcp.SourceRangeSupport" c:type="GcpSourceRangeSupport*"/>
				</parameter>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
				<parameter name="idx" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="WrapperClass" c:type="GcpSourceIndexWrapperClass" glib:is-gtype-struct-for="Wrapper">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="WrapperPrivate" c:type="GcpSourceIndexWrapperPrivate" disguised="1"/>
	<class name="SourceIndexIterator" c:type="GcpSourceIndexIterator" glib:type-name="GcpSourceIndexIterator" glib:get-type="gcp_source_index_iterator_get_type" glib:type-struct="IteratorClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="IteratorPrivate" c:type="GcpSourceIndexIteratorPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_source_index_iterator_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndexIterator" c:type="GcpSourceIndexIterator*"/>
			</return-value>
			<parameters>
				<parameter name="iter" transfer-ownership="none">
					<type name="GLib.SequenceIter" c:type="GSequenceIter*">
						<type name="Gcp.SourceIndexWrapper" c:type="GcpSourceIndexWrapper*"/>
					</type>
				</parameter>
			</parameters>
		</constructor>
		<method name="next" c:identifier="gcp_source_index_iterator_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="get" c:identifier="gcp_source_index_iterator_get">
			<return-value transfer-ownership="full">
				<type name="GObject.Object" c:type="GObject*"/>
			</return-value>
		</method>
	</class>
	<record name="IteratorClass" c:type="GcpSourceIndexIteratorClass" glib:is-gtype-struct-for="Iterator">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="IteratorPrivate" c:type="GcpSourceIndexIteratorPrivate" disguised="1"/>
	<class name="Document" c:type="GcpDocument" glib:type-name="GcpDocument" glib:get-type="gcp_document_get_type" glib:type-struct="DocumentClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="DocumentPrivate" c:type="GcpDocumentPrivate*"/>
		</field>
		<method name="source_range" c:identifier="gcp_document_source_range">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
				<parameter name="start" direction="out" transfer-ownership="full">
					<type name="Gtk.TextIter" c:type="GtkTextIter"/>
				</parameter>
				<parameter name="end" direction="out" transfer-ownership="full">
					<type name="Gtk.TextIter" c:type="GtkTextIter"/>
				</parameter>
			</parameters>
		</method>
		<function name="mark_category_for_severity" c:identifier="gcp_document_mark_category_for_severity">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="severity" transfer-ownership="none">
					<type name="Gcp.DiagnosticSeverity" c:type="GcpDiagnosticSeverity"/>
				</parameter>
			</parameters>
		</function>
		<method name="emit_changed" c:identifier="gcp_document_emit_changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<constructor name="new" c:identifier="gcp_document_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
		</constructor>
		<property name="document" writable="1" construct-only="1">
			<type name="Gedit.Document" c:type="GeditDocument*"/>
		</property>
		<property name="error-mark-category">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<property name="warning-mark-category">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<property name="info-mark-category">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<property name="tainted" writable="1">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<property name="location">
			<type name="Gio.File" c:type="GFile*"/>
		</property>
		<property name="text">
			<type name="utf8" c:type="const gchar*"/>
		</property>
		<property name="is-modified">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<glib:signal name="location_changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="previous_location" transfer-ownership="none" allow-none="1">
					<type name="Gio.File" c:type="GFile*"/>
				</parameter>
			</parameters>
		</glib:signal>
		<glib:signal name="changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</glib:signal>
	</class>
	<record name="DocumentClass" c:type="GcpDocumentClass" glib:is-gtype-struct-for="Document">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="DocumentPrivate" c:type="GcpDocumentPrivate" disguised="1"/>
	<record name="ScrollbarMarker">
		<constructor name="new" c:identifier="gcp_scrollbar_marker_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.ScrollbarMarker" c:type="GcpScrollbarMarker*"/>
			</return-value>
			<parameters>
				<parameter name="scrollbar" transfer-ownership="none">
					<type name="Gtk.Scrollbar" c:type="GtkScrollbar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="new_merge_id" c:identifier="gcp_scrollbar_marker_new_merge_id">
			<return-value transfer-ownership="full">
				<type name="guint" c:type="guint"/>
			</return-value>
		</method>
		<method name="add_with_id" c:identifier="gcp_scrollbar_marker_add_with_id">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
				<parameter name="color" transfer-ownership="none">
					<type name="Gdk.RGBA" c:type="GdkRGBA"/>
				</parameter>
			</parameters>
		</method>
		<method name="add" c:identifier="gcp_scrollbar_marker_add">
			<return-value transfer-ownership="full">
				<type name="guint" c:type="guint"/>
			</return-value>
			<parameters>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
				<parameter name="color" transfer-ownership="none">
					<type name="Gdk.RGBA" c:type="GdkRGBA"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove" c:identifier="gcp_scrollbar_marker_remove">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</method>
		<method name="clear" c:identifier="gcp_scrollbar_marker_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<property name="max-line" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="scrollbar">
			<type name="Gtk.Scrollbar" c:type="GtkScrollbar*"/>
		</property>
	</record>
	<record name="ScrollbarMarkerMarker">
		<constructor name="new" c:identifier="gcp_scrollbar_marker_marker_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.ScrollbarMarkerMarker" c:type="GcpScrollbarMarkerMarker*"/>
			</return-value>
			<parameters>
				<parameter name="range" transfer-ownership="none">
					<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
				</parameter>
				<parameter name="color" transfer-ownership="none">
					<type name="Gdk.RGBA" c:type="GdkRGBA"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="range">
			<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
		</property>
		<property name="color">
			<type name="Gdk.RGBA" c:type="GdkRGBA"/>
		</property>
	</record>
	<class name="BackendImplementation" c:type="GcpBackendImplementation" glib:type-name="GcpBackendImplementation" glib:get-type="gcp_backend_implementation_get_type" glib:type-struct="BackendImplementationClass" parent="GObject.Object" abstract="1">
		<implements name="Gcp.Backend"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="BackendImplementationPrivate" c:type="GcpBackendImplementationPrivate*"/>
		</field>
		<method name="create_document" c:identifier="gcp_backend_implementation_create_document">
			<return-value transfer-ownership="full">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none">
					<type name="Gedit.Document" c:type="GeditDocument*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="create_document" invoker="create_document">
			<return-value transfer-ownership="full">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none">
					<type name="Gedit.Document" c:type="GeditDocument*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="destroy_document" c:identifier="gcp_backend_implementation_destroy_document">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="destroy_document" invoker="destroy_document">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="on_document_changed" c:identifier="gcp_backend_implementation_on_document_changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="doc" transfer-ownership="none">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="on_document_changed" invoker="on_document_changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="doc" transfer-ownership="none">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</parameter>
			</parameters>
		</virtual-method>
	</class>
	<record name="BackendImplementationClass" c:type="GcpBackendImplementationClass" glib:is-gtype-struct-for="BackendImplementation">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="create_document">
			<callback name="create_document" c:type="create_document">
				<return-value transfer-ownership="full">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.BackendImplementation" c:type="GcpBackendImplementation*"/>
					</parameter>
					<parameter name="document" transfer-ownership="none">
						<type name="Gedit.Document" c:type="GeditDocument*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="destroy_document">
			<callback name="destroy_document" c:type="destroy_document">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.BackendImplementation" c:type="GcpBackendImplementation*"/>
					</parameter>
					<parameter name="document" transfer-ownership="none">
						<type name="Gcp.Document" c:type="GcpDocument*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="on_document_changed">
			<callback name="on_document_changed" c:type="on_document_changed">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.BackendImplementation" c:type="GcpBackendImplementation*"/>
					</parameter>
					<parameter name="doc" transfer-ownership="none">
						<type name="Gcp.Document" c:type="GcpDocument*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="BackendImplementationPrivate" c:type="GcpBackendImplementationPrivate" disguised="1"/>
	<class name="SemanticValue" c:type="GcpSemanticValue" glib:type-name="GcpSemanticValue" glib:get-type="gcp_semantic_value_get_type" glib:type-struct="SemanticValueClass" parent="GObject.Object" abstract="1">
		<implements name="Gcp.SourceRangeSupport"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="SemanticValuePrivate" c:type="GcpSemanticValuePrivate*"/>
		</field>
		<method name="find_child" c:identifier="gcp_semantic_value_find_child">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
			</return-value>
			<parameters>
				<parameter name="kind" transfer-ownership="none">
					<type name="Gcp.SemanticValueKind" c:type="GcpSemanticValueKind"/>
				</parameter>
			</parameters>
		</method>
		<method name="reference" c:identifier="gcp_semantic_value_reference">
			<return-value transfer-ownership="full">
				<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
			</return-value>
			<parameters>
				<parameter name="idx" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="reference" invoker="reference">
			<return-value transfer-ownership="full">
				<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
			</return-value>
			<parameters>
				<parameter name="idx" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="kind">
			<type name="Gcp.SemanticValueKind" c:type="GcpSemanticValueKind"/>
		</property>
		<property name="reference-type">
			<type name="Gcp.SemanticValueReferenceType" c:type="GcpSemanticValueReferenceType"/>
		</property>
		<property name="definition">
			<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
		</property>
		<property name="declaration">
			<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
		</property>
		<property name="num-references">
			<type name="gint" c:type="gint"/>
		</property>
		<property name="next">
			<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
		</property>
		<property name="previous">
			<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
		</property>
		<property name="up">
			<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
		</property>
		<property name="down">
			<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
		</property>
	</class>
	<record name="SemanticValueClass" c:type="GcpSemanticValueClass" glib:is-gtype-struct-for="SemanticValue">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="reference">
			<callback name="reference" c:type="reference">
				<return-value transfer-ownership="full">
					<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.SemanticValue" c:type="GcpSemanticValue*"/>
					</parameter>
					<parameter name="idx" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="SemanticValuePrivate" c:type="GcpSemanticValuePrivate" disguised="1"/>
	<enumeration name="SemanticValueKind" c:type="GcpSemanticValueKind" glib:type-name="GcpSemanticValueKind" glib:get-type="gcp_semantic_value_kind_get_type">
		<member name="none" c:identifier="GCP_SEMANTIC_VALUE_KIND_NONE" value="0"/>
		<member name="struct" c:identifier="GCP_SEMANTIC_VALUE_KIND_STRUCT" value="1"/>
		<member name="union" c:identifier="GCP_SEMANTIC_VALUE_KIND_UNION" value="2"/>
		<member name="class" c:identifier="GCP_SEMANTIC_VALUE_KIND_CLASS" value="3"/>
		<member name="enum" c:identifier="GCP_SEMANTIC_VALUE_KIND_ENUM" value="4"/>
		<member name="field" c:identifier="GCP_SEMANTIC_VALUE_KIND_FIELD" value="5"/>
		<member name="enum_value" c:identifier="GCP_SEMANTIC_VALUE_KIND_ENUM_VALUE" value="6"/>
		<member name="function" c:identifier="GCP_SEMANTIC_VALUE_KIND_FUNCTION" value="7"/>
		<member name="member_function" c:identifier="GCP_SEMANTIC_VALUE_KIND_MEMBER_FUNCTION" value="8"/>
		<member name="constructor" c:identifier="GCP_SEMANTIC_VALUE_KIND_CONSTRUCTOR" value="9"/>
		<member name="destructor" c:identifier="GCP_SEMANTIC_VALUE_KIND_DESTRUCTOR" value="10"/>
		<member name="variable" c:identifier="GCP_SEMANTIC_VALUE_KIND_VARIABLE" value="11"/>
		<member name="parameter" c:identifier="GCP_SEMANTIC_VALUE_KIND_PARAMETER" value="12"/>
		<member name="typedef" c:identifier="GCP_SEMANTIC_VALUE_KIND_TYPEDEF" value="13"/>
		<member name="namespace" c:identifier="GCP_SEMANTIC_VALUE_KIND_NAMESPACE" value="14"/>
		<member name="block" c:identifier="GCP_SEMANTIC_VALUE_KIND_BLOCK" value="15"/>
	</enumeration>
	<bitfield name="SemanticValueReferenceType" c:type="GcpSemanticValueReferenceType" glib:type-name="GcpSemanticValueReferenceType" glib:get-type="gcp_semantic_value_reference_type_get_type">
		<member name="none" c:identifier="GCP_SEMANTIC_VALUE_REFERENCE_TYPE_NONE" value="1"/>
		<member name="declaration" c:identifier="GCP_SEMANTIC_VALUE_REFERENCE_TYPE_DECLARATION" value="(null)"/>
		<member name="reference" c:identifier="GCP_SEMANTIC_VALUE_REFERENCE_TYPE_REFERENCE" value="(null)"/>
		<member name="definition" c:identifier="GCP_SEMANTIC_VALUE_REFERENCE_TYPE_DEFINITION" value="(null)"/>
	</bitfield>
	<class name="SymbolBrowser" c:type="GcpSymbolBrowser" glib:type-name="GcpSymbolBrowser" glib:get-type="gcp_symbol_browser_get_type" glib:type-struct="SymbolBrowserClass" parent="Gtk.TreeStore">
		<field name="parent_instance">
			<type name="Gtk.TreeStore" c:type="GtkTreeStore"/>
		</field>
		<field name="priv">
			<type name="SymbolBrowserPrivate" c:type="GcpSymbolBrowserPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_symbol_browser_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.SymbolBrowser" c:type="GcpSymbolBrowser*"/>
			</return-value>
		</constructor>
		<method name="begin_update" c:identifier="gcp_symbol_browser_begin_update">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="end_update" c:identifier="gcp_symbol_browser_end_update">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<property name="tainted" writable="1">
			<type name="gboolean" c:type="gboolean"/>
		</property>
	</class>
	<record name="SymbolBrowserClass" c:type="GcpSymbolBrowserClass" glib:is-gtype-struct-for="SymbolBrowser">
		<field name="parent_class">
			<type name="Gtk.TreeStoreClass" c:type="GtkTreeStoreClass"/>
		</field>
	</record>
	<record name="SymbolBrowserPrivate" c:type="GcpSymbolBrowserPrivate" disguised="1"/>
	<class name="Diagnostic" c:type="GcpDiagnostic" glib:type-name="GcpDiagnostic" glib:get-type="gcp_diagnostic_get_type" glib:type-struct="DiagnosticClass" parent="GObject.Object">
		<implements name="Gcp.SourceRangeSupport"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="DiagnosticPrivate" c:type="GcpDiagnosticPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_diagnostic_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.Diagnostic" c:type="GcpDiagnostic*"/>
			</return-value>
			<parameters>
				<parameter name="severity" transfer-ownership="none">
					<type name="Gcp.DiagnosticSeverity" c:type="GcpDiagnosticSeverity"/>
				</parameter>
				<parameter name="location" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
				<parameter name="ranges" transfer-ownership="none">
					<array length="3">
						<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
					</array>
				</parameter>
				<parameter name="ranges_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="fixits" transfer-ownership="none">
					<array length="5">
						<type name="Gcp.DiagnosticFixit" c:type="GcpDiagnosticFixit"/>
					</array>
				</parameter>
				<parameter name="fixits_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="message" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="to_string" c:identifier="gcp_diagnostic_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<method name="to_markup" c:identifier="gcp_diagnostic_to_markup">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="include_severity" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
		<property name="location">
			<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
		</property>
		<property name="fixits">
			<array>
				<type name="Gcp.DiagnosticFixit" c:type="GcpDiagnosticFixit"/>
			</array>
		</property>
		<property name="severity">
			<type name="Gcp.DiagnosticSeverity" c:type="GcpDiagnosticSeverity"/>
		</property>
		<property name="message">
			<type name="utf8" c:type="gchar*"/>
		</property>
	</class>
	<record name="DiagnosticClass" c:type="GcpDiagnosticClass" glib:is-gtype-struct-for="Diagnostic">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="DiagnosticPrivate" c:type="GcpDiagnosticPrivate" disguised="1"/>
	<enumeration name="DiagnosticSeverity" c:type="GcpDiagnosticSeverity" glib:type-name="GcpDiagnosticSeverity" glib:get-type="gcp_diagnostic_severity_get_type">
		<member name="none" c:identifier="GCP_DIAGNOSTIC_SEVERITY_NONE" value="0"/>
		<member name="info" c:identifier="GCP_DIAGNOSTIC_SEVERITY_INFO" value="1"/>
		<member name="warning" c:identifier="GCP_DIAGNOSTIC_SEVERITY_WARNING" value="2"/>
		<member name="error" c:identifier="GCP_DIAGNOSTIC_SEVERITY_ERROR" value="3"/>
		<member name="fatal" c:identifier="GCP_DIAGNOSTIC_SEVERITY_FATAL" value="4"/>
		<member name="num" c:identifier="GCP_DIAGNOSTIC_SEVERITY_NUM" value="5"/>
	</enumeration>
	<function name="diagnostic_severity_to_string" c:identifier="gcp_diagnostic_severity_to_string">
		<return-value transfer-ownership="full">
			<type name="utf8" c:type="gchar*"/>
		</return-value>
	</function>
	<record name="DiagnosticFixit">
		<field name="range">
			<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
		</field>
		<field name="replacement">
			<type name="utf8" c:type="gchar*"/>
		</field>
	</record>
	<record name="DiagnosticColors">
		<constructor name="new" c:identifier="gcp_diagnostic_colors_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.DiagnosticColors" c:type="GcpDiagnosticColors*"/>
			</return-value>
			<parameters>
				<parameter name="context" transfer-ownership="none">
					<type name="Gtk.StyleContext" c:type="GtkStyleContext*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="mix_in_widget" c:identifier="gcp_diagnostic_colors_mix_in_widget">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="widget" transfer-ownership="none">
					<type name="Gtk.Widget" c:type="GtkWidget*"/>
				</parameter>
			</parameters>
		</method>
		<method name="mix_in_color" c:identifier="gcp_diagnostic_colors_mix_in_color">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="widget" transfer-ownership="none">
					<type name="Gtk.Widget" c:type="GtkWidget*"/>
				</parameter>
				<parameter name="dest" transfer-ownership="none">
					<type name="Gdk.RGBA" c:type="GdkRGBA"/>
				</parameter>
			</parameters>
		</method>
		<method name="get" c:identifier="gcp_diagnostic_colors_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gdk.RGBA" c:type="GdkRGBA*"/>
			</return-value>
			<parameters>
				<parameter name="severity" transfer-ownership="none">
					<type name="Gcp.DiagnosticSeverity" c:type="GcpDiagnosticSeverity"/>
				</parameter>
			</parameters>
		</method>
		<property name="error-color">
			<type name="Gdk.RGBA" c:type="GdkRGBA"/>
		</property>
		<property name="warning-color">
			<type name="Gdk.RGBA" c:type="GdkRGBA"/>
		</property>
		<property name="info-color">
			<type name="Gdk.RGBA" c:type="GdkRGBA"/>
		</property>
	</record>
	<class name="DiagnosticTags" c:type="GcpDiagnosticTags" glib:type-name="GcpDiagnosticTags" glib:get-type="gcp_diagnostic_tags_get_type" glib:type-struct="DiagnosticTagsClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="DiagnosticTagsPrivate" c:type="GcpDiagnosticTagsPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_diagnostic_tags_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
			</return-value>
			<parameters>
				<parameter name="view" transfer-ownership="none">
					<type name="Gtk.TextView" c:type="GtkTextView*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="get" c:identifier="gcp_diagnostic_tags_get">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gtk.TextTag" c:type="GtkTextTag*"/>
			</return-value>
			<parameters>
				<parameter name="severity" transfer-ownership="none">
					<type name="Gcp.DiagnosticSeverity" c:type="GcpDiagnosticSeverity"/>
				</parameter>
			</parameters>
		</method>
		<property name="error-tag">
			<type name="Gtk.TextTag" c:type="GtkTextTag*"/>
		</property>
		<property name="warning-tag">
			<type name="Gtk.TextTag" c:type="GtkTextTag*"/>
		</property>
		<property name="info-tag">
			<type name="Gtk.TextTag" c:type="GtkTextTag*"/>
		</property>
		<property name="location-tag">
			<type name="Gtk.TextTag" c:type="GtkTextTag*"/>
		</property>
		<property name="fixit-tag">
			<type name="Gtk.TextTag" c:type="GtkTextTag*"/>
		</property>
	</class>
	<record name="DiagnosticTagsClass" c:type="GcpDiagnosticTagsClass" glib:is-gtype-struct-for="DiagnosticTags">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="DiagnosticTagsPrivate" c:type="GcpDiagnosticTagsPrivate" disguised="1"/>
	<class name="DiagnosticMessage" c:type="GcpDiagnosticMessage" glib:type-name="GcpDiagnosticMessage" glib:get-type="gcp_diagnostic_message_get_type" glib:type-struct="DiagnosticMessageClass" parent="Gtk.EventBox">
		<field name="parent_instance">
			<type name="Gtk.EventBox" c:type="GtkEventBox"/>
		</field>
		<field name="priv">
			<type name="DiagnosticMessagePrivate" c:type="GcpDiagnosticMessagePrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcp_diagnostic_message_new">
			<return-value transfer-ownership="none">
				<type name="Gcp.DiagnosticMessage" c:type="GcpDiagnosticMessage*"/>
			</return-value>
			<parameters>
				<parameter name="view" transfer-ownership="none">
					<type name="GtkSource.View" c:type="GtkSourceView*"/>
				</parameter>
				<parameter name="diagnostics" transfer-ownership="none">
					<array length="2">
						<type name="Gcp.Diagnostic" c:type="GcpDiagnostic*"/>
					</array>
				</parameter>
				<parameter name="diagnostics_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="reposition" c:identifier="gcp_diagnostic_message_reposition">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<property name="diagnostics" writable="1">
			<array>
				<type name="Gcp.Diagnostic" c:type="GcpDiagnostic*"/>
			</array>
		</property>
	</class>
	<record name="DiagnosticMessageClass" c:type="GcpDiagnosticMessageClass" glib:is-gtype-struct-for="DiagnosticMessage">
		<field name="parent_class">
			<type name="Gtk.EventBoxClass" c:type="GtkEventBoxClass"/>
		</field>
	</record>
	<record name="DiagnosticMessagePrivate" c:type="GcpDiagnosticMessagePrivate" disguised="1"/>
	<record name="Log">
		<constructor name="new" c:identifier="gcp_log_new">
			<return-value transfer-ownership="full">
				<type name="Gcp.Log" c:type="GcpLog*"/>
			</return-value>
		</constructor>
	</record>
	<interface name="SourceRangeSupport" c:type="GcpSourceRangeSupport" glib:type-name="GcpSourceRangeSupport" glib:get-type="gcp_source_range_support_get_type" glib:type-struct="SourceRangeSupportIface">
		<prerequisite name="GObject.Object"/>
		<property name="range">
			<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
		</property>
		<property name="ranges">
			<array>
				<type name="Gcp.SourceRange" c:type="GcpSourceRange*"/>
			</array>
		</property>
	</interface>
	<record name="SourceRangeSupportIface" c:type="GcpSourceRangeSupportIface" glib:is-gtype-struct-for="SourceRangeSupport">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="Backend" c:type="GcpBackend" glib:type-name="GcpBackend" glib:get-type="gcp_backend_get_type" glib:type-struct="BackendIface">
		<prerequisite name="GObject.Object"/>
		<method name="get" c:identifier="gcp_backend_get">
			<return-value transfer-ownership="full">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
			<parameters>
				<parameter name="idx" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get" invoker="get">
			<return-value transfer-ownership="full">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
			<parameters>
				<parameter name="idx" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="register_document" c:identifier="gcp_backend_register_document">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none" allow-none="1">
					<type name="Gedit.Document" c:type="GeditDocument*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="register_document" invoker="register_document">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gcp.Document" c:type="GcpDocument*"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none" allow-none="1">
					<type name="Gedit.Document" c:type="GeditDocument*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="unregister_document" c:identifier="gcp_backend_unregister_document">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none" allow-none="1">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="unregister_document" invoker="unregister_document">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="document" transfer-ownership="none" allow-none="1">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="size">
			<type name="gint" c:type="gint"/>
		</property>
	</interface>
	<record name="BackendIface" c:type="GcpBackendIface" glib:is-gtype-struct-for="Backend">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="get">
			<callback name="get" c:type="get">
				<return-value transfer-ownership="full">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.Backend" c:type="GcpBackend*"/>
					</parameter>
					<parameter name="idx" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="register_document">
			<callback name="register_document" c:type="register_document">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gcp.Document" c:type="GcpDocument*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.Backend" c:type="GcpBackend*"/>
					</parameter>
					<parameter name="document" transfer-ownership="none" allow-none="1">
						<type name="Gedit.Document" c:type="GeditDocument*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="unregister_document">
			<callback name="unregister_document" c:type="unregister_document">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.Backend" c:type="GcpBackend*"/>
					</parameter>
					<parameter name="document" transfer-ownership="none" allow-none="1">
						<type name="Gcp.Document" c:type="GcpDocument*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="SemanticValueSupport" c:type="GcpSemanticValueSupport" glib:type-name="GcpSemanticValueSupport" glib:get-type="gcp_semantic_value_support_get_type" glib:type-struct="SemanticValueSupportIface">
		<prerequisite name="Gcp.Document"/>
		<method name="with_semantics" c:identifier="gcp_semantic_value_support_with_semantics">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="callback" transfer-ownership="none" closure="1">
					<type name="Gcp.WithSemanticValueCallback" c:type="GcpWithSemanticValueCallback"/>
				</parameter>
				<parameter name="callback_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="begin_semantics" c:identifier="gcp_semantic_value_support_begin_semantics">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</return-value>
		</method>
		<virtual-method name="begin_semantics" invoker="begin_semantics">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</return-value>
		</virtual-method>
		<method name="end_semantics" c:identifier="gcp_semantic_value_support_end_semantics">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="end_semantics" invoker="end_semantics">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<glib:signal name="semantic_values_updated">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</glib:signal>
	</interface>
	<record name="SemanticValueSupportIface" c:type="GcpSemanticValueSupportIface" glib:is-gtype-struct-for="SemanticValueSupport">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="begin_semantics">
			<callback name="begin_semantics" c:type="begin_semantics">
				<return-value transfer-ownership="full">
					<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.SemanticValueSupport" c:type="GcpSemanticValueSupport*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="end_semantics">
			<callback name="end_semantics" c:type="end_semantics">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.SemanticValueSupport" c:type="GcpSemanticValueSupport*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="SymbolBrowserSupport" c:type="GcpSymbolBrowserSupport" glib:type-name="GcpSymbolBrowserSupport" glib:get-type="gcp_symbol_browser_support_get_type" glib:type-struct="SymbolBrowserSupportIface">
		<prerequisite name="Gcp.Document"/>
		<property name="symbol-browser">
			<type name="Gcp.SymbolBrowser" c:type="GcpSymbolBrowser*"/>
		</property>
	</interface>
	<record name="SymbolBrowserSupportIface" c:type="GcpSymbolBrowserSupportIface" glib:is-gtype-struct-for="SymbolBrowserSupport">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="DiagnosticSupport" c:type="GcpDiagnosticSupport" glib:type-name="GcpDiagnosticSupport" glib:get-type="gcp_diagnostic_support_get_type" glib:type-struct="DiagnosticSupportIface">
		<prerequisite name="Gcp.Document"/>
		<method name="begin_diagnostics" c:identifier="gcp_diagnostic_support_begin_diagnostics">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</return-value>
		</method>
		<virtual-method name="begin_diagnostics" invoker="begin_diagnostics">
			<return-value transfer-ownership="full">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</return-value>
		</virtual-method>
		<method name="end_diagnostics" c:identifier="gcp_diagnostic_support_end_diagnostics">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="end_diagnostics" invoker="end_diagnostics">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="find_at" c:identifier="gcp_diagnostic_support_find_at">
			<return-value transfer-ownership="full">
				<array length="1">
					<type name="Gcp.Diagnostic" c:type="GcpDiagnostic*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="location" transfer-ownership="none">
					<type name="Gcp.SourceLocation" c:type="GcpSourceLocation*"/>
				</parameter>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_at_line" c:identifier="gcp_diagnostic_support_find_at_line">
			<return-value transfer-ownership="full">
				<array length="1">
					<type name="Gcp.Diagnostic" c:type="GcpDiagnostic*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="line" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="with_diagnostics" c:identifier="gcp_diagnostic_support_with_diagnostics">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="callback" transfer-ownership="none" closure="1">
					<type name="Gcp.WithDiagnosticsCallback" c:type="GcpWithDiagnosticsCallback"/>
				</parameter>
				<parameter name="callback_target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="set_diagnostic_tags" c:identifier="gcp_diagnostic_support_set_diagnostic_tags">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="tags" transfer-ownership="none">
					<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_diagnostic_tags" invoker="set_diagnostic_tags">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="tags" transfer-ownership="none">
					<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_diagnostic_tags" c:identifier="gcp_diagnostic_support_get_diagnostic_tags">
			<return-value transfer-ownership="full">
				<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
			</return-value>
		</method>
		<virtual-method name="get_diagnostic_tags" invoker="get_diagnostic_tags">
			<return-value transfer-ownership="full">
				<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
			</return-value>
		</virtual-method>
		<glib:signal name="diagnostics_updated">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</glib:signal>
	</interface>
	<record name="DiagnosticSupportIface" c:type="GcpDiagnosticSupportIface" glib:is-gtype-struct-for="DiagnosticSupport">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="begin_diagnostics">
			<callback name="begin_diagnostics" c:type="begin_diagnostics">
				<return-value transfer-ownership="full">
					<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.DiagnosticSupport" c:type="GcpDiagnosticSupport*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="end_diagnostics">
			<callback name="end_diagnostics" c:type="end_diagnostics">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.DiagnosticSupport" c:type="GcpDiagnosticSupport*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_diagnostic_tags">
			<callback name="set_diagnostic_tags" c:type="set_diagnostic_tags">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.DiagnosticSupport" c:type="GcpDiagnosticSupport*"/>
					</parameter>
					<parameter name="tags" transfer-ownership="none">
						<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_diagnostic_tags">
			<callback name="get_diagnostic_tags" c:type="get_diagnostic_tags">
				<return-value transfer-ownership="full">
					<type name="Gcp.DiagnosticTags" c:type="GcpDiagnosticTags*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="Gcp.DiagnosticSupport" c:type="GcpDiagnosticSupport*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="UnsavedFile">
		<field name="filename">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<field name="contents">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<field name="length">
			<type name="gulong" c:type="gulong"/>
		</field>
		<function name="init" c:identifier="gcp_unsaved_file_init">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="f" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="result" direction="out" transfer-ownership="full" caller-allocates="1">
					<type name="Gcp.UnsavedFile" c:type="GcpUnsavedFile"/>
				</parameter>
			</parameters>
		</function>
	</record>
	<callback name="AsyncInThreadCallback" c:type="GcpAsyncInThreadCallback">
		<return-value transfer-ownership="full">
			<type name="none"/>
		</return-value>
	</callback>
	<callback name="WithSemanticValueCallback" c:type="GcpWithSemanticValueCallback">
		<return-value transfer-ownership="full">
			<type name="none"/>
		</return-value>
		<parameters>
			<parameter name="diagnostics" transfer-ownership="none">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<callback name="WithDiagnosticsCallback" c:type="GcpWithDiagnosticsCallback">
		<return-value transfer-ownership="full">
			<type name="none"/>
		</return-value>
		<parameters>
			<parameter name="diagnostics" transfer-ownership="none">
				<type name="Gcp.SourceIndex" c:type="GcpSourceIndex*"/>
			</parameter>
			<parameter name="user_data" transfer-ownership="none" closure="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</callback>
	<function name="async_in_thread" c:identifier="gcp_async_in_thread">
		<return-value transfer-ownership="none">
			<type name="none"/>
		</return-value>
		<parameters>
			<parameter name="cb" transfer-ownership="none" closure="1">
				<type name="Gcp.AsyncInThreadCallback" c:type="GcpAsyncInThreadCallback"/>
			</parameter>
			<parameter name="cb_target" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
			<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
				<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
			</parameter>
			<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
				<type name="gpointer" c:type="void*"/>
			</parameter>
		</parameters>
	</function>
	<function name="async_in_thread_finish" c:identifier="gcp_async_in_thread_finish">
		<return-value transfer-ownership="full">
			<type name="gboolean" c:type="gboolean"/>
		</return-value>
		<parameters>
			<parameter name="_res_" transfer-ownership="none">
				<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
			</parameter>
		</parameters>
	</function>
</namespace>
</repository>
