package merlin-lib
Merlin's libraries
Install
Dune Dependency
Authors
Maintainers
Sources
merlin-5.3-502.tbz
sha256=2cea46f12397fa6e31ef0c0d4f5e11c1cfd916ee49420694005c95ebb3aa24bc
sha512=e94abb9ae38149245337db033e2c3891c7ec772168e99abf1bda0216a894c0854e7170b56fe88eba83ec98f2ebc0f5c7c723e8db14f59eeb6dd348bec12c6d62
doc/merlin-lib.analysis/Merlin_analysis/Destruct/index.html
Module Merlin_analysis.Destruct
Source
Destruct at the moment works in two contexts:
- an expression context: It will replace the expression
e
under the cursor with
match e with
| p1 -> _
| ...
This matching will be exhaustive.
If e
has a "package" type, it will be replaced by let module M = (val e) in _
- a pattern context: Here two different behaviors can be observed:
- if your matching is not exhaustive, it will be made exhaustive.
- if your matching is exhaustive, it will refine the subpattern under the cursor if possible (i.e. if your cursor is on a variable or _ ).
* * *
Final remarks:
- Destruct will refuse to work on expression (resp. patterns) with a functional or polymorphic type.
- Constructors of variant types will be prefixed by their path (if necessary) but record labels will not. The reason is that we don't control the way things are printed, we reuse
Pprintast
which will print things like:{ Module.label1 = label1 ; Module.label2 = label2}
where one would rather have{ Module.label1 ; label2 }
. Since qualifying one label is less annoying than rewriting the whole pattern, we decided to note qualify labels (understanding that the code inserted by merlin in the buffer will sometimes be wrong).
Source
val node :
Merlin_kernel.Mconfig.t ->
Merlin_kernel.Msource.t ->
Merlin_specific.Browse_raw.node ->
Merlin_specific.Browse_raw.node list ->
Ocaml_parsing.Location.t * string
node ~env parents current_node
returns a location indicating which portion of the buffer must be replaced and the string to replace it with.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>