sig
  val cast : 'Gobject.obj -> GtkSourceView2_types.source_buffer Gobject.obj
  module P = GtkSourceView2Props.SourceBuffer.P
  module S = GtkSourceView2Props.SourceBuffer.S
  val create :
    GtkSourceView2_types.source_buffer Gobject.param list ->
    GtkSourceView2_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:GtkSourceView2_types.source_language Gobject.obj ->
    ?max_undo_levels:int ->
    ?style_scheme:GtkSourceView2_types.source_style_scheme Gobject.obj ->
    ?undo_manager:GtkSourceView2_types.source_undo_manager Gobject.obj -> 'b
  external new_ :
    [ `texttagtable ] Gtk.obj -> GtkSourceView2_types.source_buffer Gtk.obj
    = "ml_gtk_source_buffer_new"
  external new_with_langage :
    [> `sourcelanguage ] Gtk.obj ->
    GtkSourceView2_types.source_buffer Gtk.obj
    = "ml_gtk_source_buffer_new_with_language"
  external undo : [> `sourcebuffer ] Gtk.obj -> unit
    = "ml_gtk_source_buffer_undo"
  external redo : [> `sourcebuffer ] Gtk.obj -> unit
    = "ml_gtk_source_buffer_redo"
  external begin_not_undoable_action : [> `sourcebuffer ] Gtk.obj -> unit
    = "ml_gtk_source_buffer_begin_not_undoable_action"
  external end_not_undoable_action : [> `sourcebuffer ] Gtk.obj -> unit
    = "ml_gtk_source_buffer_end_not_undoable_action"
  external set_highlight_matching_brackets :
    [> `sourcebuffer ] Gtk.obj -> bool -> unit
    = "ml_gtk_source_buffer_set_highlight_matching_brackets"
  external create_source_mark :
    [> `sourcebuffer ] Gtk.obj ->
    string option ->
    string option ->
    Gtk.text_iter -> GtkSourceView2_types.source_mark Gtk.obj
    = "ml_gtk_source_buffer_create_source_mark"
  external remove_source_marks :
    [> `sourcebuffer ] Gtk.obj ->
    Gtk.text_iter -> Gtk.text_iter -> string option -> unit
    = "ml_gtk_source_buffer_remove_source_marks"
  external get_source_marks_at_line :
    [> `sourcebuffer ] Gtk.obj ->
    int -> string option -> GtkSourceView2_types.source_mark Gtk.obj list
    = "ml_gtk_source_buffer_get_source_marks_at_line"
  external get_source_marks_at_iter :
    [> `sourcebuffer ] Gtk.obj ->
    Gtk.text_iter ->
    string option -> GtkSourceView2_types.source_mark Gtk.obj list
    = "ml_gtk_source_buffer_get_source_marks_at_iter"
  external forward_iter_to_source_mark :
    [> `sourcebuffer ] Gtk.obj -> Gtk.text_iter -> string option -> bool
    = "ml_gtk_source_buffer_forward_iter_to_source_mark"
  external backward_iter_to_source_mark :
    [> `sourcebuffer ] Gtk.obj -> Gtk.text_iter -> string option -> bool
    = "ml_gtk_source_buffer_backward_iter_to_source_mark"
  external iter_has_context_class :
    [> `sourcebuffer ] Gtk.obj -> Gtk.text_iter -> string -> bool
    = "ml_gtk_source_buffer_iter_has_context_class"
  external iter_forward_to_context_class_toggle :
    [> `sourcebuffer ] Gtk.obj -> Gtk.text_iter -> string -> bool
    = "ml_gtk_source_buffer_iter_forward_to_context_class_toggle"
  external iter_backward_to_context_class_toggle :
    [> `sourcebuffer ] Gtk.obj -> Gtk.text_iter -> string -> bool
    = "ml_gtk_source_buffer_iter_backward_to_context_class_toggle"
  external ensure_highlight :
    [> `sourcebuffer ] Gtk.obj -> Gtk.text_iter -> Gtk.text_iter -> unit
    = "ml_gtk_source_buffer_ensure_highlight"
end