Merlin_analysis.Context
Sourcetype t =
| Constructor of Ocaml_typing.Types.constructor_description
* Ocaml_parsing.Location.t
| Expr
| Label of Ocaml_typing.Types.label_description
| Module_path
| Module_type
| Patt
| Type
| Constant
| Unknown
val inspect_browse_tree :
cursor:Merlin_utils.Std.Lexing.position ->
Ocaml_parsing.Longident.t ->
Merlin_kernel.Mbrowse.t list ->
t option
inspect_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.