Module Merlin_analysis.Context

type t =
  1. | Constructor of Ocaml_typing.Types.constructor_description * Ocaml_parsing.Location.t
  2. | Unknown_constructor
  3. | Expr
  4. | Label : 'rep Ocaml_typing.Types.gen_label_description * 'rep Ocaml_typing.Types.record_form -> t
  5. | Unknown_label
  6. | Module_path
  7. | Module_type
  8. | Patt
  9. | Type
  10. | Constant
  11. | Unknown
val to_string : t -> string
val of_locate_context : Query_protocol.Locate_context.t -> t

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.