X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/5827ea30ee64f2981929f865cf4c07e6c4712773..066ccc2c69390f630237eadac1f69c03df22b87a:/etc/indent-code.el.in diff --git a/etc/indent-code.el.in b/etc/indent-code.el.in index 7556b30cc8..6102b5d1ab 100755 --- a/etc/indent-code.el.in +++ b/etc/indent-code.el.in @@ -26,14 +26,66 @@ ;;; Code: -;; Load Scheme indentation rules from the current directory. +;; Load Scheme indentation rules from ".dir-locals.el". (with-temp-buffer (scheme-mode) - (let ((default-directory (file-name-as-directory ".")) + (let ((default-directory (file-name-as-directory load-file-name)) (enable-local-variables :all)) (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.