Previous: , Up: 代码风格   [Contents][Index]


16.5.4 格式化代码

When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the Riastradh’s Lisp Style Rules. This document happens to describe the conventions mostly used in Guile’s code too. It is very thoughtful and well written, so please do read it.

一些Guix添加的special form,如substitute*宏,有特殊的缩进规则。它们的规则在.dir-locals.el文件里定义,Emacs会自动使用。另外,Emacs-Guix提供的guix-devel-mode模式可以正确地缩进和高亮Guix代码(see 开发 in Emacs-Guix参考手册)。

如果你不使用Emacs,请确保让你的编辑器知道这些规则。为了自动地缩进软件包定义,你也可以运行:

./etc/indent-code.el gnu/packages/文件.scm 软件包

这会调用Emacs以批处理模式自动地缩进gnu/packages/文件.scm软件包的定义。如果想缩进整个文件,省略第二个参数:

./etc/indent-code.el gnu/services/文件.scm

如果你用Vim编辑代码,我们推荐你运行:set autoindent,以使你在输入时自动缩进代码。另外,paredit.vim可以帮你处理括号。

我们要求所有的顶级过程附带一个docstring。这个要求对(guix build …)命名空间里的简单的私有过程可以放宽。

过程不应该有多于四个定位参数。对于接收多于四个定位参数的过程应使用关键字参数。