2015-08-14 7 views
26

Ich benutze Emacs als meine wichtigsten Haskell-Editor, und als solche, natürlich verwende ich haskell-mode als Hauptmodus für die Bearbeitung von Haskell-Code.Haskell Einrückung richtet sich nicht Funktionsargumente

Aus irgendeinem Grund bietet haskell-indentation keinen Einzugspunkt für Funktionsargumente.

Was ich meine ist, dass Emacs wird dies konsequent tun: ( der andere Gedankenstrich Punkt (e))

myFunction = maybe arg1 
□   arg2 
□   arg3 

Statt dies zu tun:

myFunction = maybe arg1 
□   □  arg2 
□   □  arg3 

Manchmal muss ich brechen funktioniert auf mehrere Zeilen aufgrund der Zeilen zu lang werden, aber nicht haskell-mode bieten die richtige Einzug Ebene nervt mich etwas.

Alles, was ich tun kann, um dies zu lindern?

bearbeiten

Da ich bin nicht der einzige mit diesem Problem habe ich ein Ticket auf der haskell-mode Github Seite geöffnet [here]

+0

Keine Lösung, aber wenn Sie 'arg2' und' arg3' in separate Zeilen verschieben, können Sie das auch mit 'arg1' tun. – duplode

+0

@duplode yeah, aber dann würden sie immer noch unter 'vielleicht' aufgereiht anstatt weiter eingerückt zu sein ... Und da Haskell eine Einrückungs-basierte Sprache ist, könnte dies theoretisch eine falsche Interpretation verursachen –

+0

Ich sehe. FWIW, Punkt 1.1 von [dieser HaskellWiki-Seite] (https://wiki.haskell.org/Emacs/Indentation) nennt das haskell-mode-Verhalten, das Sie beschreiben, "debatably a bad choice" aus genau diesem Grund. Persönlich würde ich wahrscheinlich dieses Snippet als 'myFunction einrücken = vielleicht <4 spaces> longArg1 <4 spaces> longArg2 <4 spaces> longArg3', und so scheint es, dass, waren ich Haskell-Modus zu verwenden, würde ich zu Ihnen in ein ähnliches Problem laufen. – duplode

Antwort

1

Die Haskell-Einzug haskell-Modus Ausgabe geschlossen wurde letztes Jahr und wird nicht behoben werden.

Für das gewünschte Verhalten verwenden Sie haskell-indent.

Verwandte Themen