Ich bin neu bei Ocaml und habe gerade meine Entwicklungsumgebung mit Emacs, Merlin und Flycheck eingerichtet. Alles funktioniert mehr oder weniger, bis auf eine Sache: Merlin scheint die Abhängigkeiten zwischen den Modulen im selben Projekt nicht zu erkennen.Merlin beschwert sich über ein fehlendes Modul im selben Projekt
z.B. Ich habe ein Testprojekt mit zwei Modulen: main.ml und awesome.ml.
hier ist mein main.ml die awesome.ml
(* main.ml *)
open Core
module A = Awesome
let _ =
Printf.printf "hello \n Converted to string we get: %s\n"
(A.str_of_t (A.succ A.one_t));
hier ist awesome.ml das zweite Modul verweist:
(* awesome.ml *)
type t = int
let one_t = 1
let succ i = i + 1
let str_of_t = string_of_int
wenn ich main.ml Puffer bewerten in utop senden mit utop-eval-buffer-Funktion, bekomme ich einen Fehler: "Fehler: Unbound Modul Awesome"
Ich habe .merlin in der Wurzel des Projekts, das S-Anweisung hat. Ich weiß es von merlin gefunden wird, da es nicht über „Open Core“
S src
PKG core lwt ounit
B _build/src
B +threads
hier ist mein _tags beschwert:
<src/**>: include
<src/**>: package(oUnit), package(core)
true:thread
die regelmäßige Projektzusammenstellung mit ocamlbuild funktioniert gut, keine Fehler. hier ist Makefile
## Makefile
default: main
main: main.native
test: test.native
%.native:
ocamlbuild -use-ocamlfind [email protected]
mv [email protected] $*
.PHONY: test default
irgendwelche Ideen, warum Super-Modul nicht in utop erkannt wird oder dieses Verhalten erwartet wird?
Nein, tue ich nicht; Ich beschwere mich nicht – Merlin