package merlin-lib
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=376707aa871f09e9639456d3fbe4b89a21c9ad75c774e94cbbbe67f842b0a500
sha512=a11ea4b8e3520b3ee41ae8198cda34b2816b8dfcdcb99350ef29689a7d62bb66d17ffa075c551aa56d521120b55e6db14a106a31f7b3970ed2aa07e1db3c9b88
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.