this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add dynamic example

+203 -1
+13 -1
example/dune
··· 2 2 (name app) 3 3 (modes js) 4 4 (promote) 5 + (modules App) 5 6 (libraries 6 7 merlin_client 7 8 code-mirror 8 9 merlin-js.code-mirror 9 10 static_files)) 10 11 12 + (executable 13 + (name dynamic) 14 + (modes js) 15 + (promote) 16 + (modules Dynamic) 17 + (libraries 18 + merlin_client 19 + code-mirror 20 + merlin-js.code-mirror)) 21 + 11 22 (copy_files 12 23 (mode promote) 13 24 (files worker/merlin_worker.bc.js)) ··· 16 27 (name all-js) 17 28 (deps 18 29 merlin_worker.bc.js 19 - app.bc.js)) 30 + app.bc.js 31 + dynamic.bc.js))
+74
example/dynamic.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="utf-8"> 6 + <meta name="viewport" content="width=device-width,initial-scale=1.0"> 7 + <script type="text/javascript" defer src="dynamic.bc.js"></script> 8 + <!-- <script type="text/javascript" defer src="index.js"></script> --> 9 + <title>Merlin the web</title> 10 + <style> 11 + @import url('https://fonts.googleapis.com/css2?family=Fira+Code&display=swap'); 12 + 13 + body { 14 + background-color: #4c4956; 15 + font-family: 'Fira Code', monospace 16 + } 17 + 18 + #editor { 19 + min-width: 30rem; 20 + width: 50%; 21 + height: 500px; 22 + border: 1px solid #ddd; 23 + border-radius: 0.5rem; 24 + overflow: hidden; 25 + margin: auto; 26 + margin-top: 2rem; 27 + background-color: white; 28 + } 29 + 30 + @media (max-width: 1200px) { 31 + #editor { 32 + min-width: none; 33 + width: 90%; 34 + } 35 + } 36 + 37 + 38 + .cm-editor { 39 + height: 100%; 40 + } 41 + 42 + .cm-tooltip, 43 + .cm-completionLabel, 44 + .cm-completionMatchedText, 45 + .cm-completionDetail { 46 + font-family: 'Fira Code', monospace; 47 + font-size: 0.8rem; 48 + } 49 + 50 + .cm-editor .cm-tooltip { 51 + max-width: 25rem; 52 + border-radius: 0.25rem; 53 + overflow: hidden; 54 + } 55 + 56 + .cm-editor .cm-tooltip-hover { 57 + padding-left: 0.5rem; 58 + padding-right: 0.5rem; 59 + padding-top: 0.25rem; 60 + padding-bottom: 0.25rem; 61 + } 62 + 63 + .cm-editor .cm-content { 64 + font-family: 'Fira Code', monospace; 65 + } 66 + </style> 67 + </head> 68 + 69 + <body> 70 + <noscript>Sorry, you need to enable JavaScript to see this page.</noscript> 71 + <div id="editor"></div> 72 + </body> 73 + 74 + </html>
+116
example/dynamic.ml
··· 1 + open Code_mirror 2 + 3 + module Merlin = 4 + Merlin_codemirror.Make (struct 5 + let worker_url = "merlin_worker.bc.js" 6 + let cmis = 7 + let cmi_names = [ 8 + "arith_status.cmi"; 9 + "big_int.cmi"; 10 + "bigarray.cmi"; 11 + "camlinternalAtomic.cmi"; 12 + "camlinternalFormat.cmi"; 13 + "camlinternalFormatBasics.cmi"; 14 + "camlinternalLazy.cmi"; 15 + "camlinternalMod.cmi"; 16 + "camlinternalOO.cmi"; 17 + "dynlink.cmi"; 18 + "event.cmi"; 19 + "nat.cmi"; 20 + "num.cmi"; 21 + "profiling.cmi"; 22 + "ratio.cmi"; 23 + "runtime_events.cmi"; 24 + "std_exit.cmi"; 25 + "stdlib.cmi"; 26 + "stdlib__Arg.cmi"; 27 + "stdlib__Array.cmi"; 28 + "stdlib__ArrayLabels.cmi"; 29 + "stdlib__Atomic.cmi"; 30 + "stdlib__Bigarray.cmi"; 31 + "stdlib__Bool.cmi"; 32 + "stdlib__Buffer.cmi"; 33 + "stdlib__Bytes.cmi"; 34 + "stdlib__BytesLabels.cmi"; 35 + "stdlib__Callback.cmi"; 36 + "stdlib__Char.cmi"; 37 + "stdlib__Complex.cmi"; 38 + "stdlib__Condition.cmi"; 39 + "stdlib__Digest.cmi"; 40 + "stdlib__Domain.cmi"; 41 + "stdlib__Effect.cmi"; 42 + "stdlib__Either.cmi"; 43 + "stdlib__Ephemeron.cmi"; 44 + "stdlib__Filename.cmi"; 45 + "stdlib__Float.cmi"; 46 + "stdlib__Format.cmi"; 47 + "stdlib__Fun.cmi"; 48 + "stdlib__Gc.cmi"; 49 + "stdlib__Genlex.cmi"; 50 + "stdlib__Hashtbl.cmi"; 51 + "stdlib__In_channel.cmi"; 52 + "stdlib__Int.cmi"; 53 + "stdlib__Int32.cmi"; 54 + "stdlib__Int64.cmi"; 55 + "stdlib__Lazy.cmi"; 56 + "stdlib__Lexing.cmi"; 57 + "stdlib__List.cmi"; 58 + "stdlib__ListLabels.cmi"; 59 + "stdlib__Map.cmi"; 60 + "stdlib__Marshal.cmi"; 61 + "stdlib__MoreLabels.cmi"; 62 + "stdlib__Mutex.cmi"; 63 + "stdlib__Nativeint.cmi"; 64 + "stdlib__Obj.cmi"; 65 + "stdlib__Oo.cmi"; 66 + "stdlib__Option.cmi"; 67 + "stdlib__Out_channel.cmi"; 68 + "stdlib__Parsing.cmi"; 69 + "stdlib__Pervasives.cmi"; 70 + "stdlib__Printexc.cmi"; 71 + "stdlib__Printf.cmi"; 72 + "stdlib__Queue.cmi"; 73 + "stdlib__Random.cmi"; 74 + "stdlib__Result.cmi"; 75 + "stdlib__Scanf.cmi"; 76 + "stdlib__Semaphore.cmi"; 77 + "stdlib__Seq.cmi"; 78 + "stdlib__Set.cmi"; 79 + "stdlib__Stack.cmi"; 80 + "stdlib__StdLabels.cmi"; 81 + "stdlib__Stream.cmi"; 82 + "stdlib__String.cmi"; 83 + "stdlib__StringLabels.cmi"; 84 + "stdlib__Sys.cmi"; 85 + "stdlib__Uchar.cmi"; 86 + "stdlib__Unit.cmi"; 87 + "stdlib__Weak.cmi"; 88 + "str.cmi"; 89 + "thread.cmi"; 90 + "topdirs.cmi"; 91 + "unix.cmi"; 92 + "unixLabels.cmi"; 93 + ] in 94 + let cmi_urls = List.map (fun name -> "/static/stdlib/" ^ name) cmi_names in 95 + { Protocol.static_cmis = []; cmi_urls } 96 + end) 97 + 98 + let basic_setup = Jv.get Jv.global "__CM__basic_setup" |> Extension.of_jv 99 + 100 + let init ?doc ?(exts = [||]) () = 101 + let open Editor in 102 + let extensions = 103 + Array.append [| basic_setup; Merlin_codemirror.ocaml |] exts 104 + in 105 + let config = 106 + State.Config.create ?doc ~extensions () 107 + in 108 + let state = State.create ~config () in 109 + let opts = View.opts 110 + ~state 111 + ~parent:(Merlin_codemirror.Utils.get_el_by_id "editor") () 112 + in 113 + let view : View.t = View.create ~opts () in 114 + (state, view) 115 + 116 + let _editor = init ~exts:Merlin.all_extensions ()