# Module GSourceView2

    module GSourceView2: sig .. end

## GtkSourceView interface

## GtkSourceStyleScheme

    class source_style_scheme : GtkSourceView2_types.source_style_scheme Gtk.obj -> object .. end

## GtkSourceStyleSchemeManager

    class source_style_scheme_manager : GtkSourceView2_types.source_style_scheme_manager Gtk.obj -> object .. end

    val source_style_scheme_manager : default:bool -> source_style_scheme_manager

## GtkSourceCompletionInfo

    class source_completion_info_signals : GtkSourceView2_types.source_completion_info Gtk.obj -> object .. end

    class source_completion_info : [> GtkSourceView2_types.source_completion_info ] Gtk.obj -> object .. end

## GtkSourceCompletionProposal

    class source_completion_proposal_signals : GtkSourceView2_types.source_completion_proposal Gtk.obj -> object .. end

    class source_completion_proposal : GtkSourceView2_types.source_completion_proposal Gtk.obj -> object .. end

    class source_completion_item : GtkSourceView2_types.source_completion_proposal Gtk.obj -> object .. end

    val source_completion_item : ?label:string ->
           ?text:string ->
           ?icon:GdkPixbuf.pixbuf ->
           ?info:string -> unit -> source_completion_item

    val source_completion_item_with_markup : ?label:string ->
           ?text:string ->
           ?icon:GdkPixbuf.pixbuf ->
           ?info:string -> unit -> source_completion_item

    val source_completion_item_from_stock : ?label:string ->
           ?text:string ->
           stock:GtkStock.id ->
           info:string -> unit -> source_completion_item

## GtkSourceCompletionProvider

    class source_completion_provider : GtkSourceView2_types.source_completion_provider Gtk.obj -> object .. end

## GtkSourceCompletionContext

    class source_completion_context_signals : GtkSourceView2_types.source_completion_context Gtk.obj -> object .. end

    class source_completion_context : GtkSourceView2_types.source_completion_context Gtk.obj -> object .. end

    class type custom_completion_provider = object .. end

    val source_completion_provider : custom_completion_provider ->
           source_completion_provider

## GtkSourceCompletion

    class source_completion_signals : GtkSourceView2_types.source_completion Gtk.obj -> object .. end

    class source_completion : GtkSourceView2_types.source_completion Gtk.obj -> object .. end

## GtkSourceLanguage

    class source_language : GtkSourceView2_types.source_language Gtk.obj -> object .. end

## GtkSourceLanguageManager

    class source_language_manager : GtkSourceView2_types.source_language_manager Gtk.obj -> object .. end

    val source_language_manager : default:bool -> source_language_manager

## GtkSourceMark

    class source_mark : GtkSourceView2_types.source_mark Gtk.obj -> object .. end

    val source_mark : ?category:string -> unit -> source_mark

## GtkSourceUndoManager

    class source_undo_manager_signals : GtkSourceView2_types.source_undo_manager Gtk.obj -> object .. end

    class source_undo_manager : GtkSourceView2_types.source_undo_manager Gtk.obj -> object .. end

    class type custom_undo_manager = object .. end

    val source_undo_manager : custom_undo_manager -> source_undo_manager

## GtkSourceBuffer

    class source_buffer_signals : GtkSourceView2_types.source_buffer Gtk.obj -> object .. end

    class source_buffer : GtkSourceView2_types.source_buffer Gtk.obj -> object .. end

    val source_buffer : ?language:source_language ->
           ?style_scheme:source_style_scheme ->
           ?tag_table:GText.tag_table ->
           ?text:string ->
           ?undo_manager:source_undo_manager ->
           ?highlight_matching_brackets:bool ->
           ?highlight_syntax:bool ->
           ?max_undo_levels:int -> unit -> source_buffer

## GtkSourceView

    class source_view_signals : [> GtkSourceView2_types.source_view ] Gtk.obj -> object .. end

    class source_view : GtkSourceView2_types.source_view Gtk.obj -> object .. end

    val source_view : ?source_buffer:source_buffer ->
           ?draw_spaces:SourceView2Enums.source_draw_spaces_flags list ->
           ?auto_indent:bool ->
           ?highlight_current_line:bool ->
           ?indent_on_tab:bool ->
           ?indent_width:int ->
           ?insert_spaces_instead_of_tabs:bool ->
           ?right_margin_position:int ->
           ?show_line_marks:bool ->
           ?show_line_numbers:bool ->
           ?show_right_margin:bool ->
           ?smart_home_end:SourceView2Enums.source_smart_home_end_type ->
           ?tab_width:int ->
           ?editable:bool ->
           ?cursor_visible:bool ->
           ?justification:GtkEnums.justification ->
           ?wrap_mode:GtkEnums.wrap_mode ->
           ?accepts_tab:bool ->
           ?border_width:int ->
           ?width:int ->
           ?height:int ->
           ?packing:(GObj.widget -> unit) ->
           ?show:bool -> unit -> source_view

## Misc

    val iter_forward_search : GText.iter ->
           SourceView2Enums.source_search_flag list ->
           start:< as_iter : Gtk.text_iter; .. > ->
           stop:< as_iter : Gtk.text_iter; .. > ->
           ?limit:< as_iter : Gtk.text_iter; .. > ->
           string -> (GText.iter * GText.iter) option

    val iter_backward_search : GText.iter ->
           SourceView2Enums.source_search_flag list ->
           start:< as_iter : Gtk.text_iter; .. > ->
           stop:< as_iter : Gtk.text_iter; .. > ->
           ?limit:< as_iter : Gtk.text_iter; .. > ->
           string -> (GText.iter * GText.iter) option