package merlin-lib

  1. Overview
  2. Docs
Merlin's libraries

Install

Dune Dependency

Authors

Maintainers

Sources

merlin-5.4.1-503.tbz
sha256=49b3b4c778c12125fc7405e73790b0b312d5d79749dd73d4838b6562a2533022
sha512=6350ff076ac61727c48bc098a05520c5d343f3323b2f3b6d7d69fdd568e51abca6945cbcbc3a6ae97fd198bd7bbdcae823fbd0f3f14a37972fe713da2ed14f2d

doc/merlin-lib.utils/Merlin_utils/Lib_config/System/index.html

Module Lib_config.SystemSource

Merlin spawns child processes for preprocessors (pp and ppx), which can be customized via System

Sourceval set_run_in_directory : (prog:string -> prog_is_quoted:bool -> args:string list -> cwd:string -> ?stdin:string -> ?stdout:string -> ?stderr:string -> unit -> [ `Finished of int | `Cancelled ]) -> unit

set_run_in_directory sets an implementation for spawning external programs. This is used by Merlin to spawn preprocessors and ppxes. For compatibility reasons, there are currently some limitations to how this should be implemented:

  • Implementation should expect prog to be already quoted and contain arguments. This is due to how ppx configuration is passed to Merlin. In order to prepare a future transition to more sane argument passing, the implementation can look at the prog_is_quoted argument to know if it is actually safe to quote the command normally (using Filename.quote_command for example).
  • prog might contain shell expansions, command substitutions etc. It should therefore be ran under a shell for maximum compatibility. However this should never happen when the configuration is generated by Dune.
  • Programs runned by this function should never output on stdout since it is the channel used by Merlin to communicate with the editor. One way to enforce that is to redirect stdout to stderr.
  • As of today Merlin handles the `Cancelled return case identically as other error codes.
OCaml

Innovation. Community. Security.