Created
January 7, 2020 16:30
-
-
Save drhodes/c14976b71461f1c480594a0bbe25db19 to your computer and use it in GitHub Desktop.
a scheme config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun xscheme () | |
"Loads xscheme and runs a scheme process in the current buffer." | |
(interactive) | |
(load-library "xscheme") | |
(xscheme-start "scheme -emacs" | |
(buffer-name) | |
(buffer-name)) | |
;; | |
) | |
;; https://www.emacswiki.org/emacs/BuildTags | |
(defun sicp-create-tags (dir-name) | |
"Create tags file." | |
(interactive "DDirectory: ") | |
(eshell-command | |
(format "find %s -type f -name \"*.scm\" | etags -" dir-name))) | |
(defun sicp () | |
"Create a *scheme* buffer and use that for interactive evaluation" | |
(interactive) | |
(let ((cur-buf (current-buffer)) | |
(interactive-buf (get-buffer-create "*scheme*"))) | |
(switch-to-buffer interactive-buf) | |
(xscheme) | |
(switch-to-buffer cur-buf) | |
)) | |
(defun sicp-send-and-interact () | |
(interactive) | |
(xscheme-send-buffer) | |
(switch-to-buffer-other-window "*scheme*")) | |
(defun sicp-switch-to-interact () | |
(interactive) | |
(split-window-below) | |
(switch-to-buffer-other-window "*scheme*") | |
) | |
(defun sicp-send-and-see () | |
(interactive) | |
(xscheme-send-buffer) | |
(let ((buf (current-buffer))) | |
(switch-to-buffer-other-window "*scheme*") | |
(goto-char (point-max)) | |
(switch-to-buffer-other-window buf))) | |
(defun sicp-debug () | |
"send (debug) to the scheme process and switch to the debug buffer" | |
(interactive) | |
(process-send-string xscheme-process-name "(debug)") | |
(switch-to-buffer-other-window "*scheme*")) | |
(add-hook 'scheme-mode-hook #'enable-paredit-mode) | |
(add-hook 'scheme-mode-hook | |
(lambda () | |
;; set some keys. | |
(local-set-key (kbd "C-c C-l") #'sicp-send-and-interact) | |
;;(local-set-key (kbd "C-c C-b") #'xscheme-send-buffer) | |
(local-set-key (kbd "C-c C-z") #'sicp-switch-to-interact) | |
(local-set-key (kbd "C-c C-o") #'sicp-send-and-see) | |
(local-set-key (kbd "C-c C-d") #'sicp-debug) | |
(local-set-key (kbd "C-c C-t") #'sicp-create-tags) | |
)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment