Merlin_analysis.Contexttype t = | Constructor of Ocaml_typing.Types.constructor_description
* Ocaml_parsing.Location.t| Unknown_constructor| Expr| Label : 'rep Ocaml_typing.Types.gen_label_description
* 'rep Ocaml_typing.Types.record_form -> t| Unknown_label| Module_path| Module_type| Patt| Type| Constant| Unknownval to_string : t -> stringval of_locate_context : Query_protocol.Locate_context.t -> tval inspect_browse_tree :
?let_pun_behavior:Merlin_kernel.Mbrowse.Let_pun_behavior.t ->
cursor:Merlin_utils.Std.Lexing.position ->
Ocaml_parsing.Longident.t ->
Merlin_kernel.Mbrowse.t list ->
t optioninspect_browse_tree lid ~cursor mbrowse tries to provide contextual information given the selected identifier, the position of the cursor and the typed tree. It is used by Locate and Type_enclosing.
The cursor position is used to distinguished whether a module path or an actual constructor name is pointed at when the cursor is in the middle of a longident, e.g. Foo.B|ar.Constructor (with | being the cursor).
FIXME: when cursor at (M.|A 3), the enclosing node returned is const 3, thus breaking the context inference.