package frama-c
Source file source_viewer.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60(**************************************************************************) (* *) (* SPDX-License-Identifier LGPL-2.1 *) (* Copyright (C) *) (* CEA (Commissariat à l'énergie atomique et aux énergies alternatives) *) (* *) (**************************************************************************) (* Build a read only text view for C source code. *) let set_language_to_C (buffer:GSourceView.source_buffer) = let original_source_language_manager = GSourceView.source_language_manager ~default:true in let original_lang = original_source_language_manager#guess_language ~content_type:"text/x-csrc" () in begin match original_lang with | Some _ -> buffer#set_language original_lang | None -> Gui_parameters.warning "Mime type 'text/x-csrc' not found" end; buffer#set_highlight_syntax true let make ?name ~packing () = (* let d = GWindow.font_selection_dialog ~title:"tutu" ~show:true () in d#selection#set_preview_text (Format.sprintf "%s %s %s %s" Utf8_logic.forall Utf8_logic.exists Utf8_logic.eq Utf8_logic.neq) ; *) let original_source_window = GSourceView.source_view ~show_line_numbers:true ~editable:false ~packing () in (* let pixbuf = original_source_window#misc#render_icon ~size:`MENU `DIALOG_WARNING in original_source_window#set_marker_pixbuf "warning" pixbuf; *) original_source_window#misc#modify_font_by_name "Monospace"; original_source_window#misc#set_name (Option.value ~default:"source" name); let original_source_buffer = original_source_window#source_buffer in set_language_to_C original_source_buffer; (* ignore (original_source_buffer#create_marker ~typ:"warning" original_source_buffer#start_iter ) ;*) begin try original_source_window#set_highlight_current_line true with Not_found -> () (* very old gtksourceview do not have this property. *) end; original_source_window let buffer () = let original_source_buffer = GSourceView.source_buffer () in set_language_to_C original_source_buffer; original_source_buffer