package merlin-lib
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=60a630f59203a9ce7047a5f04d0f239945960dac6f38102922e328b6d2657384
sha512=19f8ec152356873e29c05b971a529146bb7079929037c2b35a5c0afb0b3adf662341ee8527282c5fdd16de391d01c2c469fc8629af9e0ae443fa9f42472b70bb
doc/merlin-lib.kernel/Merlin_kernel/Mconfig_dot/index.html
Module Merlin_kernel.Mconfig_dot
Source
type config = {
build_path : string list;
source_path : string list;
cmi_path : string list;
cmt_path : string list;
flags : string list Merlin_utils.Std.with_workdir list;
extensions : string list;
suffixes : (string * string) list;
stdlib : string option;
source_root : string option;
unit_name : string option;
wrapping_prefix : string option;
reader : string list;
exclude_query_dir : bool;
use_ppx_cache : bool;
}
val prepend_config :
dir:string ->
Configurator.t ->
Merlin_dot_protocol.directive list ->
config ->
config * string list
prepend_config ~dir c directives config
parses directives
and update config
accordingly, prepending new items when to already existing list fields of config
. dir
is used as the workdir
for flags declared in the directives
. If c = Dune
, unknown directives are ignored.
prostprocess_config config
removes duplicates and reverses the lists in config
find_project_config dir
searches for a "project configuration file" in dir and its parent directories. Stopping on the first one it finds and returning a configuration context along with the path to the configuration file, returning None otherwise (if '/' was reached without finding such a file).
A project configuration files is one of:
- .merlin
- dune-project
- dune-workspace
They are detected in that order. dune
and jbuild
file do not need to be taken into account because any project using a recent version of dune should have a dune-project file which is even auto-generated when it is missing. And only recent versions of dune will stop writing .merlin files.