~ruther/guix-local

557d9c8d7a843bf06e75b4e1a742654ccf951fa3 — Ludovic Courtès 9 years ago 608a50b
etc: Support indentation of whole files.

* etc/indent-package.el.in: Rename to...
* etc/indent-code.el.in: ... this.  Add case for a single argument.
* doc/contributing.texi (Formatting Code): Adjust accordingly.
* configure.ac: Likewise.
4 files changed, 24 insertions(+), 10 deletions(-)

M .gitignore
M configure.ac
M doc/contributing.texi
R etc/{indent-package => indent-code}.el.in
M .gitignore => .gitignore +1 -1
@@ 128,4 128,4 @@ stamp-h[0-9]
tmp
/doc/os-config-lightweight-desktop.texi
/nix/scripts/download
/etc/indent-package.el
/etc/indent-code.el

M configure.ac => configure.ac +1 -1
@@ 245,6 245,6 @@ AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
  [chmod +x pre-inst-env])
AC_CONFIG_FILES([etc/indent-package.el], [chmod +x etc/indent-package.el])
AC_CONFIG_FILES([etc/indent-code.el], [chmod +x etc/indent-code.el])

AC_OUTPUT

M doc/contributing.texi => doc/contributing.texi +8 -3
@@ 256,12 256,17 @@ If you do not use Emacs, please make sure to let your editor knows these
rules.  To automatically indent a package definition, you can also run:

@example
./etc/indent-package.el gnu/packages/@var{file}.scm @var{package}
./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}
@end example

@noindent
This automatically indents the definition of @var{package} in
@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode.
@file{gnu/packages/@var{file}.scm} by running Emacs in batch mode.  To
indent a whole file, omit the second argument:

@example
./etc/indent-code.el gnu/services/@var{file}.scm
@end example

We require all top-level procedures to carry a docstring.  This
requirement can be relaxed for simple private procedures in the


@@ 374,7 379,7 @@ or a package update along with fixes to that package.

@item
Please follow our code formatting rules, possibly running the
@command{etc/indent-package.el} script to do that automatically for you
@command{etc/indent-code.el} script to do that automatically for you
(@pxref{Formatting Code}).

@end enumerate

R etc/indent-package.el.in => etc/indent-code.el.in +14 -5
@@ 1,7 1,8 @@
#!@EMACS@ --script
;;; indent-package.el --- Run Emacs to indent a package definition.
;;; indent-code.el --- Run Emacs to indent a package definition.

;; Copyright © 2017 Alex Kost <alezost@gmail.com>
;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>

;; This file is part of GNU Guix.



@@ 20,8 21,8 @@

;;; Commentary:

;; This scripts indents the given package definition in the specified file
;; using Emacs.
;; This scripts indents the given file or package definition in the specified
;; file using Emacs.

;;; Code:



@@ 35,6 36,7 @@

(pcase command-line-args-left
  (`(,file-name ,package-name)
   ;; Indent the definition of PACKAGE-NAME in FILE-NAME.
   (find-file file-name)
   (goto-char (point-min))
   (if (re-search-forward (concat "^(define\\(-public\\) +"


@@ 47,7 49,14 @@
         (message "Done!"))
     (error "Package '%s' not found in '%s'"
            package-name file-name)))
  (`(,file-name)
   ;; Indent all of FILE-NAME.
   (find-file file-name)
   (let ((indent-tabs-mode nil))
     (indent-region (point-min) (point-max))
     (save-buffer)
     (message "Done!")))
  (x
   (error "Usage: indent-package.el FILE PACKAGE")))
   (error "Usage: indent-code.el FILE [PACKAGE]")))

;;; indent-package.el ends here
;;; indent-code.el ends here