sig
  val cast : 'Gobject.obj -> GtkSourceView2_types.source_view Gobject.obj
  module P :
    sig
      val auto_indent : ([> `sourceview ], bool) Gobject.property
      val highlight_current_line : ([> `sourceview ], bool) Gobject.property
      val indent_on_tab : ([> `sourceview ], bool) Gobject.property
      val indent_width : ([> `sourceview ], int) Gobject.property
      val insert_spaces_instead_of_tabs :
        ([> `sourceview ], bool) Gobject.property
      val right_margin_position : ([> `sourceview ], int) Gobject.property
      val show_line_marks : ([> `sourceview ], bool) Gobject.property
      val show_line_numbers : ([> `sourceview ], bool) Gobject.property
      val show_right_margin : ([> `sourceview ], bool) Gobject.property
      val smart_home_end :
        ([> `sourceview ], SourceView2Enums.source_smart_home_end_type)
        Gobject.property
      val tab_width : ([> `sourceview ], int) Gobject.property
    end
  module S :
    sig
      val line_mark_activated :
        ([> `sourceview ], Gtk.text_iter -> GdkEvent.any -> unit) GtkSignal.t
      val move_lines : ([> `sourceview ], bool -> int -> unit) GtkSignal.t
      val move_words : ([> `sourceview ], int -> unit) GtkSignal.t
      val redo : ([> `sourceview ], unit -> unit) GtkSignal.t
      val show_completion : ([> `sourceview ], unit -> unit) GtkSignal.t
      val smart_home_end :
        ([> `sourceview ], Gtk.text_iter -> int -> unit) GtkSignal.t
      val undo : ([> `sourceview ], unit -> unit) GtkSignal.t
    end
  val create :
    GtkSourceView2_types.source_view Gobject.param list ->
    GtkSourceView2_types.source_view Gobject.obj
  external get_completion :
    [> `sourceview ] Gobject.obj ->
    GtkSourceView2_types.source_completion Gobject.obj
    = "ml_gtk_source_view_get_completion"
  external get_draw_spaces :
    [> `sourceview ] Gobject.obj ->
    SourceView2Enums.source_draw_spaces_flags list
    = "ml_gtk_source_view_get_draw_spaces"
  external set_draw_spaces :
    [> `sourceview ] Gobject.obj ->
    SourceView2Enums.source_draw_spaces_flags list -> unit
    = "ml_gtk_source_view_set_draw_spaces"
  external get_mark_category_priority :
    [> `sourceview ] Gobject.obj -> category:string -> int
    = "ml_gtk_source_view_get_mark_category_priority"
  external set_mark_category_priority :
    [> `sourceview ] Gobject.obj -> category:string -> int -> unit
    = "ml_gtk_source_view_set_mark_category_priority"
  external get_mark_category_pixbuf :
    [> `sourceview ] Gobject.obj ->
    category:string -> GdkPixbuf.pixbuf option
    = "ml_gtk_source_view_get_mark_category_pixbuf"
  external set_mark_category_pixbuf :
    [> `sourceview ] Gobject.obj ->
    category:string -> GdkPixbuf.pixbuf option -> unit
    = "ml_gtk_source_view_set_mark_category_pixbuf"
  external get_mark_category_background :
    [> `sourceview ] Gobject.obj -> category:string -> Gdk.color option
    = "ml_gtk_source_view_get_mark_category_background"
  external set_mark_category_background :
    [> `sourceview ] Gobject.obj ->
    category:string -> Gdk.color option -> unit
    = "ml_gtk_source_view_set_mark_category_background"
  val make_params :
    cont:(([> `sourceview ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param 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 -> 'b
  external new_ : unit -> GtkSourceView2_types.source_view Gtk.obj
    = "ml_gtk_source_view_new"
  external new_with_buffer :
    [> `sourcebuffer ] Gtk.obj -> GtkSourceView2_types.source_view Gtk.obj
    = "ml_gtk_source_view_new_with_buffer"
  external set_mark_category_pixbuf :
    [> `sourceview ] Gtk.obj -> string -> GdkPixbuf.pixbuf option -> unit
    = "ml_gtk_source_view_set_mark_category_pixbuf"
  external get_mark_category_pixbuf :
    [> `sourceview ] Gtk.obj -> string -> GdkPixbuf.pixbuf option
    = "ml_gtk_source_view_get_mark_category_pixbuf"
  external set_cursor_color : [> `sourceview ] Gtk.obj -> Gdk.color -> unit
    = "ml_gtk_modify_cursor_color"
end