Skip to content

Instantly share code, notes, and snippets.

@objmagic
Last active August 29, 2015 14:21
Show Gist options
  • Select an option

  • Save objmagic/90759d2d09eaea92bc33 to your computer and use it in GitHub Desktop.

Select an option

Save objmagic/90759d2d09eaea92bc33 to your computer and use it in GitHub Desktop.
Merlin does auto complete this
(* can be compiled with $corebuild functor_autocomplete.native *)
open Core_kernel.Std
module Key : Map.Key = struct
type t = int list with sexp
let compare (l1:t) (l2:t) : int =
if Set.equal
(Set.of_list ~comparator:Int.comparator l1)
(Set.of_list ~comparator:Int.comparator l2) then 1 else 0
end
module LMap : Map.S = Map.Make(Key)
let map = LMap.empty (* autocomplete empty function does not work, with C-x C-o *)
{"time":5,"level":"info","section":"general","title":"monitor start","content":["general","info"]}
{"time":5,"level":"info","section":"general","title":"available logging sections","content":["general","destruct","dot_merlin","typedtrie","project_load","parser","locate","recover","protocol","explain","main"]}
{"time":5,"level":"info","section":"general","title":"monitor start","content":["protocol","info"]}
{"time":5,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["reset","auto","/Users/runhang/Dropbox/Projects/thinking-dump/ocaml/state_machine/test.ml"]}}
{"time":13,"level":"info","section":"protocol","title":"output","content":{"delta":7,"body":["return",{"cursor":{"line":1,"col":0},"marker":false}]}}
{"time":13,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["project","get"]}}
{"time":13,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"result":["/Users/runhang/Dropbox/Projects/thinking-dump/ocaml/state_machine/.merlin"]}]}}
{"time":13,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["reset","auto","/Users/runhang/Dropbox/Projects/thinking-dump/ocaml/state_machine/test.ml"]}}
{"time":13,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":1,"col":0},"marker":false}]}}
{"time":13,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["seek","exact",{"line":1,"col":0}]}}
{"time":13,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":1,"col":0},"marker":false}]}}
{"time":13,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","start"]}}
{"time":13,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":1,"col":0},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","source","open Core_kernel.Std\n\nmodule Key : Map.Key = struct\n\n type t = int list with sexp\n\n let compare (l1:t) (l2:t) : int = \n if Set.equal \n (Set.of_list ~comparator:Int.comparator l1)\n (Set.of_list ~comparator:Int.comparator l2) then 1 else 0\n\nend\n\nmodule LMap : Map.S = Map.Make(Key)\n\nlet map = LMap.empty (* autocomplete empty function does not work, with C-x C-o *)\n"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","marker"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":true}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","eof"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["seek","exact",{"line":16,"col":0}]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":14,"col":35},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","start"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":14,"col":34},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","source",")\n\nlet map = LMap.empty (* autocomplete empty function does not work, with C-x C-o *)\n"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","marker"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":true}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","eof"]}}
{"time":14,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":false}]}}
{"time":14,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["errors"]}}
{"time":204,"level":"info","section":"protocol","title":"output","content":{"delta":189,"body":["return",[]]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["seek","exact",{"line":16,"col":0}]}}
{"time":205,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":14,"col":35},"marker":false}]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","start"]}}
{"time":205,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":14,"col":34},"marker":false}]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","source",")\n\nLMap.\n"]}}
{"time":205,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":false}]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","marker"]}}
{"time":205,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":true}]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","source","\nlet map = LMap.empty (* autocomplete empty function does not work, with C-x C-o *)\n"]}}
{"time":205,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":19,"col":0},"marker":false}]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["seek","marker"]}}
{"time":205,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":18,"col":3},"marker":false}]}}
{"time":205,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["complete","prefix","LMap.","at",{"line":16,"col":5}]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"entries":[],"context":null}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["seek","exact",{"line":16,"col":0}]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":14,"col":35},"marker":false}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","start"]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":14,"col":34},"marker":false}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","source",")\n\nLMap.\n"]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":false}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","marker"]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":17,"col":0},"marker":true}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["tell","source","\nlet map = LMap.empty (* autocomplete empty function does not work, with C-x C-o *)\n"]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":19,"col":0},"marker":false}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["seek","marker"]}}
{"time":206,"level":"info","section":"protocol","title":"output","content":{"delta":0,"body":["return",{"cursor":{"line":18,"col":3},"marker":false}]}}
{"time":206,"level":"info","section":"protocol","title":"input","content":{"delta":0,"body":["expand","prefix","LMap.","at",{"line":16,"col":5}]}}
{"time":208,"level":"info","section":"protocol","title":"output","content":{"delta":1,"body":["return",{"entries":[],"context":null}]}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment