sig
  val cast : 'Gobject.obj -> GtkSourceView_types.source_buffer Gobject.obj
  module P :
    sig
      val check_brackets : ([> `sourcebuffer ], bool) Gobject.property
      val escape_char : ([> `sourcebuffer ], int) Gobject.property
      val highlight : ([> `sourcebuffer ], bool) Gobject.property
      val language :
        ([> `sourcebuffer ], GtkSourceView_types.source_language Gobject.obj)
        Gobject.property
      val max_undo_levels : ([> `sourcebuffer ], int) Gobject.property
      val tag_table :
        ([> `sourcebuffer ],
         GtkSourceView_types.source_tag_table Gobject.obj)
        Gobject.property
    end
  module S :
    sig
      val can_redo : ([> `sourcebuffer ], bool -> unit) GtkSignal.t
      val can_undo : ([> `sourcebuffer ], bool -> unit) GtkSignal.t
      val highlight_updated :
        ([> `sourcebuffer ], Gtk.text_iter -> Gtk.text_iter -> unit)
        GtkSignal.t
      val marker_updated :
        ([> `sourcebuffer ], Gtk.text_iter -> unit) GtkSignal.t
    end
  val create :
    ?tag_table:GtkSourceView_types.source_tag_table Gobject.obj ->
    GtkSourceView_types.source_buffer Gobject.param list ->
    GtkSourceView_types.source_buffer Gobject.obj
  val make_params :
    cont:(([> `sourcebuffer ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?check_brackets:bool ->
    ?escape_char:int ->
    ?highlight:bool ->
    ?language:GtkSourceView_types.source_language Gobject.obj ->
    ?max_undo_levels:int -> 'b
end