-(* Copyright (C) 2005:
- * Stefano Zacchiroli <zack@cs.unibo.it>
- * Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+(*
+ * lablgtksourceview, OCaml binding for the GtkSourceView text widget
*
- * This file is part of lablgtksourceview, the OCaml binding for the
- * GtkSourceView widget.
+ * Copyright (C) 2005 Stefano Zacchiroli <zack@cs.unibo.it>
*
- * lablgtksourceview is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the
* License, or (at your option) any later version.
- *
- * lablgtksourceview is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with lablgtksourceview; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
+ * Lesser General Public License for more details.
*
- * For details, send a mail to the authors.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
*)
open Gaux
method get_escape_char = SourceLanguage.get_escape_char obj
end
+(** {2 GtkSourceLanguagesManager} *)
+
+class source_languages_manager
+ (obj: Gtk_sourceview.source_languages_manager obj) =
+object (self)
+ method get_oid = Gobject.get_oid obj
+ method as_source_languages_manager = obj
+ method get_language_from_mime_type s =
+ match SourceLanguagesManager.get_language_from_mime_type obj s with
+ | None -> None
+ | Some obj -> Some (new source_language obj)
+ method lang_files_dirs = SourceLanguagesManager.get_lang_files_dirs obj
+end
+
+(* let source_languages_manager ?lang_files_dirs () =
+ let properties =
+ match lang_files_dirs with
+ | None -> []
+ | Some dirs ->
+ let list_obj = gslist_of_string_list dirs in
+ [Gobject.param
+ "lang-files-dirs"
+ (`OBJECT (Some list_obj))]
+ in
+ new source_languages_manager (SourceLanguagesManager.create properties) *)
+
+let source_languages_manager () =
+ new source_languages_manager (SourceLanguagesManager.create [])
+
+let source_language_from_file ?languages_manager fname =
+ let languages_manager =
+ match languages_manager with
+ | None -> source_languages_manager ()
+ | Some lm -> lm
+ in
+ let manager_obj = languages_manager#as_source_languages_manager in
+ match SourceLanguage.new_from_file fname manager_obj with
+ | None -> None
+ | Some lang_obj -> Some (new source_language lang_obj)
+
(** {2 GtkSourceBuffer} *)
class source_buffer_signals obj' =
Gobject.set_params (Gobject.try_cast obj "GtkSourceView") pl;
new source_view obj)))
+(** {2 Misc} *)
+
+let find_matching_bracket iter =
+ let iter = iter#copy in
+ if SourceViewMisc.find_matching_bracket iter#as_iter then
+ Some iter
+ else
+ None
+