From 8cfd9ba1a97a02157c6b730cca9d61b0fb7de53b Mon Sep 17 00:00:00 2001 From: Peter Feigl Date: Sun, 1 May 2016 13:43:37 +0200 Subject: [PATCH] Add R7RS syntax forms to scheme.el * 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 | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index c621758a8b..1cb71fa773 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -314,7 +314,16 @@ See `run-hooks'." "and" "or" "delay" "force" ;; Stefan Monnier 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? +;; 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) + ;;;; MIT Scheme specific indentation. (if scheme-mit-dialect -- 2.39.2