emacs/old-config/pkgs/racket-init.el
2018-04-07 10:54:04 +08:00

47 lines
1.1 KiB
EmacsLisp

(defvar *racket*
(which "racket"))
(defvar *guile*
(which "guile"))
(defvar *scribble-dir* nil)
(defun scribble-mode-install ()
(shell-command "racket -e '(require (planet neil/scribble-emacs))'"))
(defun racket-local-top ()
(cond
((equal *osname* 'darwin) "~/Library/")
((equal *osname* 'bsd) "~/.racket")
(t "~/.racket")))
(defun racket-init ()
(when *racket*
(progn
(setf geiser-racket-binary *racket*)
(let ((local-top (racket-local-top)))
(let ((scribble (find-file-by-search-dir local-top
"scribble.el")))
(if scribble
(setf *scribble-dir*
(file-name-directory scribble))
(progn (scribble-mode-install)
(setf *scribble-dir*
(file-name-directory (find-file-by-search-dir local-top
"scribble.el")))))))
*scribble-dir*))
(when *guile*
(setf geiser-guile-binary *guile*)))
(defun racket-config ()
(when *scribble-dir*
(add-to-list 'load-path *scribble-dir*)
(require 'scribble)))
(register-mypkg
(list :name "racket"
:enabled (or *racket*
*guile*)
:packages '(geiser)
:init #'racket-init
:config #'racket-config))