summaryrefslogtreecommitdiff
path: root/lisp/progmodes/scheme.el
diff options
context:
space:
mode:
authorPeter Feigl <peter.feigl@nexoid.at>2016-05-01 13:43:37 +0200
committerJorgen Schaefer <contact@jorgenschaefer.de>2016-05-01 13:46:30 +0200
commit8cfd9ba1a97a02157c6b730cca9d61b0fb7de53b (patch)
treefa02350cf6c5696e25dabd9a8bb6e56878028343 /lisp/progmodes/scheme.el
parent7bced5ed111aaff2abcc5cdbefa996695eb30f60 (diff)
downloademacs-8cfd9ba1a97a02157c6b730cca9d61b0fb7de53b.tar.gz
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
Diffstat (limited to 'lisp/progmodes/scheme.el')
-rw-r--r--lisp/progmodes/scheme.el23
1 files changed, 22 insertions, 1 deletions
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index c621758a8b6..1cb71fa773a 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -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?
+;; 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