Wie kann ich die GHC-Integration für Emacs schnell und einfach konfigurieren?

8

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.

    
tibbe 10.03.2014, 09:45
quelle

2 Antworten

7

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.

    
Tikhon Jelvis 10.03.2014 10:19
quelle
7

Sieh dir Tims exzellente Einstellung an:

Ссылка

UPDATE:

Das mache ich:

%Vor%     
haroldcarr 11.03.2014 03:03
quelle

Tags und Links