package merlin-lib
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=67da3b34f2fea07678267309f61da4a2c6f08298de0dc59655b8d30fd8269af1
sha512=1fb3b5180d36aa82b82a319e15b743b802b6888f0dc67645baafdb4e18dfc23a7b90064ec9bc42f7424061cf8cde7f8839178d8a8537bf4596759f3ff4891873
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;
index_files : 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.