47 lines
1.1 KiB
EmacsLisp
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))
|