Module ProtocolSource
module Location = Ocaml_parsing.LocationCMIs are provided either statically or as URLs to be downloaded on demand
Dynamic cmis are loaded from beneath the given url. In addition the top-level modules are specified, and prefixes for other modules. For example, for the OCaml standard library, a user might pass:
{ dcs_url="/static/stdlib";
dcs_toplevel_modules=["Stdlib"];
dcs_file_prefixes=["stdlib__"]; }In which case, merlin will expect to be able to download a valid file from the url "/static/stdlib/stdlib.cmi" corresponding to the specified toplevel module, and it will also attempt to download any module with the prefix "Stdlib__" from the same base url, so for example if an attempt is made to look up the module "Stdlib__Foo" then merlin-js will attempt to download a file from the url "/static/stdlib/stdlib__Foo.cmi".
Source
type cmis = {static_cmis : Protocol.static_cmi list;dynamic_cmis : Protocol.dynamic_cmis option;
}Source
type action = | Complete_prefix of Protocol.source * Merlin_kernel.Msource.position * string option| Type_enclosing of Protocol.source * Merlin_kernel.Msource.position * string option| All_errors of Protocol.source * string option| Add_cmis of Protocol.cmis
Source
type error = {kind : Location.report_kind;loc : Location.t;main : string;sub : string list;source : Location.error_source;
}Source
type answer = | Errors of Protocol.error list| Completions of Protocol.completions| Typed_enclosings of (Location.t * [ `Index of int | `String of string ] * Protocol.is_tail_position) list| Added_cmis