In der Vergangenheit habe ich versucht, bei der Entwicklung von Haskell in Emacs mehr IDE-ähnliche Erfahrungen zu sammeln, aber ich bin immer auf eine nicht ganz funktionierende Integration gestoßen.
Gibt es eine Möglichkeit, grundlegende GHC-Funktionen (z. B. Look-Up-Typ von Bezeichnern oder Instant-Compilierung mit Flymake) zu erhalten, die einfach funktionieren *. Mit nur funktioniert meine ich gut integriert mit dem Rest des Ökosystems (z. B. Hakell-Mode, Kabale)?
* Funktioniert einfach hier: bedeutet nur einige grundlegende Konfiguration in init.el und vielleicht einige Pakete von Hackage installieren.
Für die Überprüfung von Inline-Fehlern ist hdevtools das Beste, was ich gefunden habe. Es ist ein Hintergrundserver mit GHC, um die Analyse von Programmen zu beschleunigen.
Es ist wirklich sehr einfach zu installieren: Sie benötigen ein Haskell-Paket:
%Vor% und zwei Emacs-Pakete, beide durch M-x list-packages
: flycheck
und flycheck-hdevtools
.
Sobald es installiert ist, müssen Sie es nur mit etwas wie M-x global-flycheck-mode
(das Sie auch in Ihre .emacs
einfügen können) aktivieren. Sie können mit C-x '
zum nächsten Fehler gehen. Sie werden wahrscheinlich auch die Fehler- und Warnseiten ändern wollen, was Sie mit M-x customize-group flycheck-faces
tun können.
Leider macht der Emacs-Modus nur Fehler und Warnungen (einschließlich hlint); Es gibt keinen Hinweis auf den Typ eines Bezeichners, von dem ich glaube, dass hdevtools
unterstützt. Manchmal bekomme ich zufällige Parse-Fehler, wenn ich mit Unicode-Variablennamen oder bestimmten Erweiterungen konfrontiert werde. Wenn ich sie jedoch einfach ignoriere, funktioniert alles andere. Ich sollte wahrscheinlich einen Fehlerbericht oder etwas einreichen.