|
;;; slime-scheme.el --- Support Scheme programs running under Common Lisp
|
|
;;
|
|
;; Authors: Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
|
|
;;
|
|
;; License: GNU GPL (same license as Emacs)
|
|
;;
|
|
;;; Installation:
|
|
;;
|
|
;; Add this to your .emacs:
|
|
;;
|
|
;; (add-to-list 'load-path "<directory-of-this-file>")
|
|
;; (add-hook 'slime-load-hook (lambda () (require 'slime-scheme)))
|
|
;;
|
|
(eval-and-compile
|
|
(require 'slime))
|
|
|
|
(defun slime-scheme-mode-hook ()
|
|
(slime-mode 1))
|
|
|
|
(defun slime-scheme-indentation-update (symbol indent packages)
|
|
;; Does the symbol have an indentation value that we set?
|
|
(when (equal (get symbol 'scheme-indent-function)
|
|
(get symbol 'slime-scheme-indent))
|
|
(put symbol 'slime-scheme-indent indent)
|
|
(put symbol 'scheme-indent-function indent)))
|
|
|
|
|
|
;;; Initialization
|
|
|
|
(defun slime-scheme-init ()
|
|
(add-hook 'scheme-mode-hook 'slime-scheme-mode-hook)
|
|
(add-hook 'slime-indentation-update-hooks 'slime-scheme-indentation-update)
|
|
(add-to-list 'slime-lisp-modes 'scheme-mode))
|
|
|
|
(defun slime-scheme-unload ()
|
|
(remove-hook 'scheme-mode-hook 'slime-scheme-mode-hook)
|
|
(remove-hook 'slime-indentation-update-hooks 'slime-scheme-indentation-update)
|
|
(setq slime-lisp-modes (remove 'scheme-mode slime-lisp-modes)))
|
|
|
|
(provide 'slime-scheme)
|