]> git.eshelyaron.com Git - emacs.git/commitdiff
Define indentation behavior for a few more special Scheme forms
authorJean Abou Samra <jean@abou-samra.fr>
Tue, 19 Apr 2022 21:40:29 +0000 (23:40 +0200)
committerEli Zaretskii <eliz@gnu.org>
Wed, 20 Apr 2022 16:19:21 +0000 (19:19 +0300)
* lisp/progmodes/scheme.el: Define 'scheme-indent-function'
property for 'and-let*', 'with-syntax', 'eval-when;, and
pattern matching macros.  (Bug#55033)

Copyright-paperwork-exempt: yes

lisp/progmodes/scheme.el

index 592e2d50570f35235e9997da556f1bb12966dfae..9b98c4e6dddbaafec181d0627c5955c3e9993f5f 100644 (file)
@@ -576,12 +576,16 @@ indentation."
 (put 'letrec 'scheme-indent-function 1)
 (put 'let-values 'scheme-indent-function 1) ; SRFI 11
 (put 'let*-values 'scheme-indent-function 1) ; SRFI 11
+(put 'and-let* 'scheme-indent-function 1) ; SRFI 2
 (put 'sequence 'scheme-indent-function 0) ; SICP, not r4rs
 (put 'let-syntax 'scheme-indent-function 1)
 (put 'letrec-syntax 'scheme-indent-function 1)
 (put 'syntax-rules 'scheme-indent-function 1)
 (put 'syntax-case 'scheme-indent-function 2) ; not r5rs
+(put 'with-syntax 'scheme-indent-function 1)
 (put 'library 'scheme-indent-function 1) ; R6RS
+;; Part of at least Guile, Chez Scheme, Chicken
+(put 'eval-when 'scheme-indent-function 1)
 
 (put 'call-with-input-file 'scheme-indent-function 1)
 (put 'call-with-port 'scheme-indent-function 1)
@@ -605,6 +609,14 @@ indentation."
 ;; SRFI-8
 (put 'receive 'scheme-indent-function 2)
 \f
+;; SRFI-204 (withdrawn, but provided in many implementations, see the SRFI text)
+(put 'match 'scheme-indent-function 1)
+(put 'match-lambda 'scheme-indent-function 0)
+(put 'match-lambda* 'scheme-indent-function 0)
+(put 'match-let 'scheme-indent-function 'scheme-let-indent)
+(put 'match-let* 'scheme-indent-function 1)
+(put 'match-letrec 'scheme-indent-function 1)
+\f
 ;;;; MIT Scheme specific indentation.
 
 (if scheme-mit-dialect