aboutsummaryrefslogtreecommitdiffstats
path: root/oni-scheme.el
diff options
context:
space:
mode:
authorGravatar Tom Willemse2023-07-18 21:21:46 -0700
committerGravatar Tom Willemse2023-07-18 21:21:46 -0700
commitfe81a684b02d072cfb9efa1f98d056e6d8a1932c (patch)
treecbbf3b76b7ac39d9898dc0cf94fac66893350ca0 /oni-scheme.el
parent467160bbf800d6160eedfedfdbee71ec0580928e (diff)
downloademacs-config-fe81a684b02d072cfb9efa1f98d056e6d8a1932c.tar.gz
emacs-config-fe81a684b02d072cfb9efa1f98d056e6d8a1932c.zip
[oni-scheme] Disable the paredit newline keybindings in Geiser REPL
Diffstat (limited to 'oni-scheme.el')
-rw-r--r--oni-scheme.el15
1 files changed, 14 insertions, 1 deletions
diff --git a/oni-scheme.el b/oni-scheme.el
index dfc5aa6..8b3ad09 100644
--- a/oni-scheme.el
+++ b/oni-scheme.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2021.1123.003531
+;; Version: 2023.0718.212002
;; Package-Requires: (oni-company oni-paredit rainbow-delimiters geiser geiser-guile)
;; This program is free software; you can redistribute it and/or modify
@@ -35,6 +35,16 @@
(setq-local comment-auto-fill-only-comments t)
(auto-fill-mode))
+(defun oni-scheme-geiser-repl-remove-paredit-newline-keys ()
+ "Disable ‘C-j’ and ‘RET’ keybindings from ‘geiser-repl-mode’."
+ (let ((oldmap (map-elt minor-mode-map-alist 'paredit-mode))
+ (newmap (make-sparse-keymap)))
+ (set-keymap-parent newmap oldmap)
+ (define-key newmap (kbd "RET") nil)
+ (define-key newmap (kbd "C-j") nil)
+ (make-local-variable 'minor-mode-overriding-map-alist)
+ (push `(paredit-mode . ,newmap) minor-mode-overriding-map-alist)))
+
(add-hook 'scheme-mode-hook 'company-mode)
(add-hook 'scheme-mode-hook 'display-fill-column-indicator-mode)
(add-hook 'scheme-mode-hook 'oni-scheme--auto-fill-mode)
@@ -42,6 +52,9 @@
(add-hook 'scheme-mode-hook 'rainbow-delimiters-mode)
(add-hook 'geiser-repl-mode-hook 'paredit-mode)
+;;; Make sure this gets added _after_ ‘paredit-mode’ so that it gets executed
+;;; later.
+(add-hook 'geiser-repl-mode-hook #'oni-scheme-geiser-repl-remove-paredit-newline-keys 90)
(setq geiser-default-implementation 'guile)