A fork of mtelver's day10 project
1open Code_mirror
2
3module Merlin =
4 Merlin_codemirror.Make (struct
5 let worker_url = "merlin_worker.bc.js"
6 let cmis =
7 let dcs_toplevel_modules = [
8 "CamlinternalAtomic";
9 "CamlinternalFormat";
10 "CamlinternalFormatBasics";
11 "CamlinternalLazy";
12 "CamlinternalMod";
13 "CamlinternalOO";
14 "Std_exit";
15 "Stdlib";
16 "Unix";
17 "UnixLabels";
18 ] in
19 let dcs_url = "stdlib/" in
20 let dcs_file_prefixes = ["stdlib__"] in
21 { Protocol.static_cmis = [];
22 dynamic_cmis = Some {
23 dcs_url; dcs_toplevel_modules; dcs_file_prefixes } }
24 end)
25
26let basic_setup = Jv.get Jv.global "__CM__basic_setup" |> Extension.of_jv
27
28let init ?doc ?(exts = [||]) () =
29 let open Editor in
30 let extensions =
31 Array.append [| basic_setup; Merlin_codemirror.ocaml |] exts
32 in
33 let config =
34 State.Config.create ?doc ~extensions ()
35 in
36 let state = State.create ~config () in
37 let opts = View.opts
38 ~state
39 ~parent:(Merlin_codemirror.Utils.get_el_by_id "editor") ()
40 in
41 let view : View.t = View.create ~opts () in
42 (state, view)
43
44let _editor = init ~exts:Merlin.all_extensions ()