let main (main_ui:Design.main_window_extension_points) =
hide_unused :=
main_ui#file_tree#add_global_filter
~text:"Hide unused according to\nvalue analysis"
~key:"value_hide_unused" hide_unused_function_or_var;
main_ui#file_tree#register_reset_extension sync_filetree;
if !hide_unused () then
main_ui#file_tree#reset ()
else
sync_filetree main_ui#file_tree;
let value_selector
menu (main_ui:Design.main_window_extension_points) ~button localizable =
to_do_on_select
menu
main_ui
button
localizable
in
main_ui#register_source_selector value_selector;
let highlighter (buffer:GSourceView2.source_buffer) localizable ~start ~stop =
Extlib.may
(fun loc ->
if Cilutil.equals localizable loc then
let orange_area = make_tag
buffer
~name:"degeneration"
[`BACKGROUND "orange" ]
in
apply_tag buffer orange_area start stop)
(DegeneratedHighlighted.get_option ());
if Db.Value.is_computed () then
let ki = ki_of_localizable localizable in
if not (Value.is_accessible ki) then
let dead_code_area =
make_tag
buffer
"deadcode"
[`BACKGROUND "tomato";
`STRIKETHROUGH true;
`STYLE `ITALIC;]
in
apply_tag buffer dead_code_area start stop
in
main_ui#register_source_highlighter highlighter