]> code.delx.au - gnu-emacs/commitdiff
Add R7RS syntax forms to scheme.el
authorPeter Feigl <peter.feigl@nexoid.at>
Sun, 1 May 2016 11:43:37 +0000 (13:43 +0200)
committerJorgen Schaefer <contact@jorgenschaefer.de>
Sun, 1 May 2016 11:46:30 +0000 (13:46 +0200)
* lisp/progmodes/scheme.el (scheme-font-lock-keywords-2): Add
a number of special forms introduced in R7RS-small.
* lisp/progmodes/scheme.el (scheme-indent-function): Same.

Copyright-paperwork-exempt: yes

lisp/progmodes/scheme.el

index c621758a8b6e24377dca12e9237cf9e962753934..1cb71fa773afd30c5800441a4923a484a3284c44 100644 (file)
@@ -314,7 +314,16 @@ See `run-hooks'."
                "and" "or" "delay" "force"
                ;; Stefan Monnier <stefan.monnier@epfl.ch> says don't bother:
                ;;"quasiquote" "quote" "unquote" "unquote-splicing"
-               "map" "syntax" "syntax-rules") t)
+              "map" "syntax" "syntax-rules"
+              ;; For R7RS
+              "when" "unless" "letrec*" "include" "include-ci" "cond-expand"
+              "delay-force" "parameterize" "guard" "case-lambda"
+              "syntax-error" "only" "except" "prefix" "rename" "define-values"
+              "define-record-type" "define-library"
+              "include-library-declarations"
+              ;; SRFI-8
+              "receive"
+              ) t)
         "\\>") 1)
       ;;
       ;; It wouldn't be Scheme w/o named-let.
@@ -547,6 +556,18 @@ indentation."
 (put 'call-with-values 'scheme-indent-function 1) ; r5rs?
 (put 'dynamic-wind 'scheme-indent-function 3) ; r5rs?
 \f
+;; R7RS
+(put 'when 'scheme-indent-function 1)
+(put 'unless 'scheme-indent-function 1)
+(put 'letrec* 'scheme-indent-function 1)
+(put 'parameterize 'scheme-indent-function 1)
+(put 'define-values 'scheme-indent-function 1)
+(put 'define-record-type 'scheme-indent-function 1) ;; is 1 correct?
+(put 'define-library 'scheme-indent-function 1)
+
+;; SRFI-8
+(put 'receive 'scheme-indent-function 2)
+\f
 ;;;; MIT Scheme specific indentation.
 
 (if scheme-mit-dialect