From 5df0d653d1f274b72c1d6f33796baa6d8eecad50 Mon Sep 17 00:00:00 2001 From: Lucas Sta Maria Date: Sun, 17 Mar 2024 01:08:27 -0400 Subject: [PATCH] fix(emacs): add racket-mode functionality for single-buffer workflows Signed-off-by: Lucas Sta Maria --- .emacs.d/include/racket.el | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.emacs.d/include/racket.el b/.emacs.d/include/racket.el index 3160c37..72d52d7 100644 --- a/.emacs.d/include/racket.el +++ b/.emacs.d/include/racket.el @@ -3,17 +3,39 @@ ;; Configuration for Racket and Racket-based languages, including Pollen. ;;; Code: +(require 'racket-mode) +(require 'racket-edit) + (add-to-list 'load-path (expand-file-name "lisp/pollen-mode" user-emacs-directory)) (autoload 'pollen-mode "pollen" "A major mode for the pollen preprocessor." t) +(defun racket-repl-switch () + "Switch to the Racket REPL." + (interactive) + (racket-edit-switch-to-repl) + (unless (equal current-prefix-arg nil) + (delete-other-windows))) + +(defun racket-edit-switch () + "Switch to the corresponding racket buffer." + (interactive) + (racket-repl-switch-to-edit) + (unless (equal current-prefix-arg nil) + (delete-other-windows))) + ;; Recognize pollen filetypes (setq auto-mode-alist (cons '("\\.pp$" . racket-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.pm$" . pollen-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.pmd$" . pollen-mode) auto-mode-alist)) +(defun configure-racket () + "Configure keybinds for racket buffers." + (keymap-local-set "C-c C-z" #'racket-repl-switch)) + (defun configure-racket-repl () "Configure keybinds for the racket repl." - (keymap-local-set "C-c C-k" #'racket-repl-clear-leaving-last-prompt)) + (keymap-local-set "C-c C-k" #'racket-repl-clear-leaving-last-prompt) + (keymap-local-set "C-c C-z" #'racket-edit-switch)) (add-hook 'racket-repl-mode-hook #'configure-racket-repl)