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.
This commit is contained in:
Ludovic Courtès 2017-01-20 14:43:43 +01:00
parent 7386a0481c
commit 830d4c1fcd
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 52 additions and 0 deletions

View File

@ -34,6 +34,58 @@
(hack-dir-local-variables) (hack-dir-local-variables)
(hack-local-variables-apply))) (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 (pcase command-line-args-left
(`(,file-name ,package-name) (`(,file-name ,package-name)
;; Indent the definition of PACKAGE-NAME in FILE-NAME. ;; Indent the definition of PACKAGE-NAME in FILE-NAME.