Vorige: , Nach oben: Programmierstil   [Inhalt][Index]


14.5.4 Formatierung von Code

Beim Schreiben von Scheme-Code halten wir uns an die üblichen Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das, dass wir uns an Riastradh’s Lisp Style Rules halten. Es hat sich ergeben, dass dieses Dokument auch die Konventionen beschreibt, die im Code von Guile hauptsächlich verwendet werden. Es ist gut durchdacht und schön geschrieben, also lesen Sie es bitte.

Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das substitute*-Makro, haben abweichende Regeln für die Einrückung. Diese sind in der Datei .dir-locals.el definiert, die Emacs automatisch benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens guix-devel-mode bereitstellt, der Guix-Code richtig einrückt und hervorhebt (siehe Entwicklung in The Emacs-Guix Reference Manual).

Falls Sie nicht Emacs verwenden, sollten Sie sicherstellen, dass Ihr Editor diese Regeln kennt. Um eine Paketdefinition automatisch einzurücken, können Sie auch Folgendes ausführen:

./etc/indent-code.el gnu/packages/Datei.scm Paket

Dadurch wird die Definition von Paket in gnu/packages/Datei.scm automatisch eingerückt, indem Emacs im Batch-Modus läuft. Um die Einrückung in einer gesamten Datei vorzunehmen, lassen Sie das zweite Argument weg:

./etc/indent-code.el gnu/services/Datei.scm

Wenn Sie Code mit Vim bearbeiten, empfehlen wir, dass Sie :set autoindent ausführen, damit Ihr Code automatisch eingerückt wird, während Sie ihn schreiben. Außerdem könnte Ihnen paredit.vim dabei helfen, mit all diesen Klammern fertigzuwerden.

Wir fordern von allen Prozeduren auf oberster Ebene, dass sie über einen Docstring verfügen. Diese Voraussetzung kann jedoch bei einfachen, privaten Prozeduren im Namensraum (guix build …) aufgeweicht werden.

Prozeduren sollten nicht mehr als vier positionsbestimmte Parameter haben. Benutzen Sie Schlüsselwort-Parameter für Prozeduren, die mehr als vier Parameter entgegennehmen.


Vorige: , Nach oben: Programmierstil   [Inhalt][Index]