Module Merlin_analysis.ContextSource

Sourcetype t =
  1. | Constructor of Ocaml_typing.Types.constructor_description * Ocaml_parsing.Location.t
  2. | Expr
  3. | Label of Ocaml_typing.Types.label_description
  4. | Module_path
  5. | Module_type
  6. | Patt
  7. | Type
  8. | Constant
  9. | Unknown
Sourceval to_string : t -> string

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.