diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-01-20 14:43:43 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-01-20 21:39:17 +0100 |
commit | 830d4c1fcdff7be199e66cd70a5048264b54a151 (patch) | |
tree | 1429c26aef5a6b3ae8b5d7b2e26fecc32cf57205 /etc/indent-code.el.in | |
parent | 7386a0481c26d694110deb3c0822b6317c4c4abc (diff) | |
download | guix-830d4c1fcdff7be199e66cd70a5048264b54a151.tar guix-830d4c1fcdff7be199e66cd70a5048264b54a151.tar.gz |
etc: indent-code.el: Add indentation info for non-Guix Scheme constructs.
* etc/indent-code.el.in (guix-syntax--scheme-indent): New macro.
Use it.
Diffstat (limited to 'etc/indent-code.el.in')
-rwxr-xr-x | etc/indent-code.el.in | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/etc/indent-code.el.in b/etc/indent-code.el.in index 7556b30cc8..68ad72c562 100755 --- a/etc/indent-code.el.in +++ b/etc/indent-code.el.in @@ -34,6 +34,58 @@ (hack-dir-local-variables) (hack-local-variables-apply))) +;; Add indentation info for Scheme constructs that are not Guix-specific. +;; This is normally provided by Geiser but this file is for people who may not +;; be running Geiser, so we just copy it here (from 'geiser-syntax.el'). +(defmacro guix-syntax--scheme-indent (&rest pairs) + `(progn ,@(mapcar (lambda (p) + `(put ',(car p) 'scheme-indent-function ',(cadr p))) + pairs))) + +(guix-syntax--scheme-indent + (and-let* 1) + (case-lambda 0) + (catch defun) + (class defun) + (dynamic-wind 0) + (guard 1) + (let*-values 1) + (let-values 1) + (let/ec 1) + (letrec* 1) + (match 1) + (match-lambda 0) + (match-lambda* 0) + (match-let scheme-let-indent) + (match-let* 1) + (match-letrec 1) + (opt-lambda 1) + (parameterize 1) + (parameterize* 1) + (receive 2) + (require-extension 0) + (syntax-case 2) + (test-approximate 1) + (test-assert 1) + (test-eq 1) + (test-equal 1) + (test-eqv 1) + (test-group-with-cleanup 1) + (test-runner-on-bad-count! 1) + (test-runner-on-bad-end-name! 1) + (test-runner-on-final! 1) + (test-runner-on-group-begin! 1) + (test-runner-on-group-end! 1) + (test-runner-on-test-begin! 1) + (test-runner-on-test-end! 1) + (test-with-runner 1) + (unless 1) + (when 1) + (while 1) + (with-exception-handler 1) + (with-syntax 1)) + + (pcase command-line-args-left (`(,file-name ,package-name) ;; Indent the definition of PACKAGE-NAME in FILE-NAME. |