let set_syntax_mode v args =
let len = Array.length args in
if len > 0 then
let name = args.(0) in
try
let langs = Gtksv_utils.available_source_languages ~manager: language_manager () in
let lang = List.find (fun l -> l#name = name) langs in
v#set_syntax_mode (Some lang)
with
Not_found ->
Ed_misc.error_message
(Printf.sprintf "Unknown syntax mode \"%s\"" name)
else
let f mode =
let com = Printf.sprintf "%s_set_syntax_mode %s"
factory_name (Filename.quote mode)
in
Cam_commands.eval_command com
in
let languages = List.map
(fun l -> l#name)
(Gtksv_utils.available_source_languages ~manager: language_manager ())
in
Ed_misc.select_string ~history: syntax_mode_history
v#minibuffer
~title: "Syntax mode"
~choices: languages
""
f