package merlin-lib

  1. Overview
  2. Docs
On This Page
  1. Dump
Merlin's libraries

Install

dune-project
 Dependency

Authors

Maintainers

Sources

merlin-5.9.tbz
sha256=de395dd37d246e3ec303e1af35ff8421665fa4f0f0005d95732124b22e3417ac
sha512=74756b28767cdfe10288720540582e818a9d946dd2406606724ebc7b68d1cf6623142e56a1e457f7862839732e7add365aec056930c7ac89be7036c22e5f29ae

doc/merlin-lib.kernel/Merlin_kernel/Mbrowse/index.html

Module Merlin_kernel.MbrowseSource

Sourcetype t = (Ocaml_typing.Env.t * node) list

When a node is inside parenthesis or begin ... end, the node's location contains the delimiters. The locs returned by this function is the location of the node inside the delimiters. In case of nesting, such as ((x)) multiple locations are returned: the one for (x) and the one for x.

Sourceval leaf_node : t -> Ocaml_typing.Env.t * node
Sourceval drop_leaf : t -> t option
Sourcemodule Tie_breaker : sig ... end

Some nodes in the typedtree may share the same, non-ghost, location, while being different. One example of this is let-punning:

Sourceval deepest_before : ?disambiguate:Tie_breaker.t -> Merlin_utils.Std.Lexing.position -> t list -> t

The deepest context inside or before the node, for instance, navigating * through: * foo bar (baz :: tail) <cursor> * asking for node from cursor position will return context of "tail". * Returns the matching node and all its ancestors or the empty list.

Sourceval select_open_node : t -> (Ocaml_typing.Path.t * Ocaml_parsing.Longident.t * t) option
Sourceval enclosing : ?disambiguate:Tie_breaker.t -> Merlin_utils.Std.Lexing.position -> t list -> t
Sourceval range_enclosing : start:Merlin_utils.Std.Lexing.position -> stop:Merlin_utils.Std.Lexing.position -> t list -> t
Sourceval of_typedtree : [ `Implementation of Ocaml_typing.Typedtree.structure | `Interface of Ocaml_typing.Typedtree.signature ] -> t
Sourceval is_recovered_expression : Ocaml_typing.Typedtree.expression -> bool

Identify nodes introduced by recovery

Sourceval is_recovered : Merlin_specific.Browse_raw.node -> bool

When an optional argument is applied with labelled syntax sugar (~a:v instead of ?a:(Some v)), the frontend will have wrapped it in Some _. optional_label_sugar exp returns Some exp' with the sugar removed in that case.

Dump

Sourceval print_node : unit -> node -> string
Sourceval print : unit -> t -> string