From 176afa86ec0da835c6dc60fa80495a1bc96f5db7 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Wed, 10 Jun 2009 21:08:34 +0200 Subject: Share scheme-indent-function tweaks across implementations. --- elisp/geiser-base.el | 5 ----- elisp/geiser-plt.el | 44 ------------------------------------------- elisp/geiser-syntax.el | 51 +++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 46 insertions(+), 54 deletions(-) (limited to 'elisp') diff --git a/elisp/geiser-base.el b/elisp/geiser-base.el index 4133245..362930d 100644 --- a/elisp/geiser-base.el +++ b/elisp/geiser-base.el @@ -97,11 +97,6 @@ (insert str) (put-text-property p (point) 'face face))) -(defmacro geiser--scheme-indent (&rest pairs) - `(progn ,@(mapcar (lambda (p) - `(put ',(car p) 'scheme-indent-function ',(cadr p))) - pairs))) - (provide 'geiser-base) ;;; geiser-base.el ends here diff --git a/elisp/geiser-plt.el b/elisp/geiser-plt.el index e60a576..44312b9 100644 --- a/elisp/geiser-plt.el +++ b/elisp/geiser-plt.el @@ -137,50 +137,6 @@ This function uses `geiser-plt-init-file' if it exists." (geiser-plt--explicit-module) (string-equal (file-name-extension (buffer-file-name)) "ss"))) - -;;; Emacs tweaks for PLT scheme code: - -(geiser--scheme-indent - (begin0 1) - (c-declare 0) - (c-lambda 2) - (case-lambda 0) - (catch 1) - (class defun) - (class* defun) - (compound-unit/sig 0) - (dynamic-wind 0) - (for/fold 2) - (instantiate 2) - (interface 1) - (lambda/kw 1) - (let*-values 1) - (let+ 1) - (let-values 1) - (let/ec 1) - (match defun) - (mixin 2) - (module defun) - (opt-lambda 1) - (parameterize 1) - (parameterize-break 1) - (parameterize* 1) - (quasisyntax/loc 1) - (receive 2) - (send* 1) - (sigaction 1) - (syntax-case 2) - (syntax/loc 1) - (type-case defun) - (unit defun) - (unit/sig 2) - (unless 1) - (when 1) - (while 1) - (with-handlers 1) - (with-method 1) - (with-syntax 1)) - (provide 'geiser-plt) ;;; geiser-plt.el ends here diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el index 264687a..472a4e5 100644 --- a/elisp/geiser-syntax.el +++ b/elisp/geiser-syntax.el @@ -32,11 +32,52 @@ ;;; Indentation: -(defun geiser-syntax--setup-scheme-indent () - (let ((defuns '(catch))) - (mapc (lambda (d) (put d 'scheme-indent-function 'defun)) defuns))) - -(geiser-syntax--setup-scheme-indent) +(defmacro geiser-syntax--scheme-indent (&rest pairs) + `(progn ,@(mapcar (lambda (p) + `(put ',(car p) 'scheme-indent-function ',(cadr p))) + pairs))) + +(geiser-syntax--scheme-indent + (begin0 1) + (c-declare 0) + (c-lambda 2) + (case-lambda 0) + (catch defun) + (class defun) + (class* defun) + (compound-unit/sig 0) + (dynamic-wind 0) + (for/fold 2) + (instantiate 2) + (interface 1) + (lambda/kw 1) + (let*-values 1) + (let+ 1) + (let-values 1) + (let/ec 1) + (match defun) + (mixin 2) + (module defun) + (opt-lambda 1) + (parameterize 1) + (parameterize-break 1) + (parameterize* 1) + (pmatch defun) + (quasisyntax/loc 1) + (receive 2) + (send* 1) + (sigaction 1) + (syntax-case 2) + (syntax/loc 1) + (type-case defun) + (unit defun) + (unit/sig 2) + (unless 1) + (when 1) + (while 1) + (with-handlers 1) + (with-method 1) + (with-syntax 1)) ;;; Code parsing: -- cgit v1.2.3