Module Merlin_analysis.Context
type 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 -> Merlin_analysis.Context.t| Unknown_label| Module_path| Module_type| Patt| Type| Constant| Unknown
val to_string : Merlin_analysis.Context.t -> stringval of_locate_context :
Query_protocol.Locate_context.t ->
Merlin_analysis.Context.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 ->
Merlin_analysis.Context.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.