sig
  val cast : 'Gobject.obj -> GtkSourceView3_types.source_buffer Gobject.obj
  module P :
    sig
      val can_redo : ([> `sourcebuffer ], bool) Gobject.property
      val can_undo : ([> `sourcebuffer ], bool) Gobject.property
      val highlight_matching_brackets :
        ([> `sourcebuffer ], bool) Gobject.property
      val highlight_syntax : ([> `sourcebuffer ], bool) Gobject.property
      val language :
        ([> `sourcebuffer ],
         GtkSourceView3_types.source_language Gobject.obj option)
        Gobject.property
      val max_undo_levels : ([> `sourcebuffer ], int) Gobject.property
      val style_scheme :
        ([> `sourcebuffer ],
         GtkSourceView3_types.source_style_scheme Gobject.obj option)
        Gobject.property
      val undo_manager :
        ([> `sourcebuffer ],
         GtkSourceView3_types.source_undo_manager Gobject.obj)
        Gobject.property
    end
  module S :
    sig
      val highlight_updated :
        ([> `sourcebuffer ], Gtk.text_iter -> Gtk.text_iter -> unit)
        GtkSignal.t
      val source_mark_updated :
        ([> `sourcebuffer ],
         GtkSourceView3_types.source_mark Gobject.obj -> unit)
        GtkSignal.t
    end
  val create :
    GtkSourceView3_types.source_buffer Gobject.param list ->
    GtkSourceView3_types.source_buffer Gobject.obj
  val make_params :
    cont:(([> `sourcebuffer ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?highlight_matching_brackets:bool ->
    ?highlight_syntax:bool ->
    ?language:GtkSourceView3_types.source_language Gobject.obj ->
    ?max_undo_levels:int ->
    ?style_scheme:GtkSourceView3_types.source_style_scheme Gobject.obj ->
    ?undo_manager:GtkSourceView3_types.source_undo_manager Gobject.obj -> 'b
end