emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ulisp-repl 3a7d133959 1/2: Make paredit dependency opti


From: Thomas Fitzsimmons
Subject: [elpa] externals/ulisp-repl 3a7d133959 1/2: Make paredit dependency optional
Date: Fri, 2 Jun 2023 05:29:13 -0400 (EDT)

branch: externals/ulisp-repl
commit 3a7d1339594f69a8aaee28daea77fb7e9c81dad3
Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Commit: Thomas Fitzsimmons <fitzsim@fitzsim.org>

    Make paredit dependency optional
    
    * ulisp-repl.el: Make paredit dependency optional to accommodate
    pre-NonGNU-ELPA Emacs versions.
    (ulisp-repl--mode): Override paredit RET keybinding conditionally.
    (ulisp-repl): Invoke paredit-mode only if it is bound.
---
 ulisp-repl.el | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/ulisp-repl.el b/ulisp-repl.el
index 76b718fb47..b4f09c8a86 100644
--- a/ulisp-repl.el
+++ b/ulisp-repl.el
@@ -4,7 +4,7 @@
 
 ;; Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
 ;; Version: 1.0.1
-;; Package-Requires: ((emacs "26.1") (paredit "26"))
+;; Package-Requires: ((emacs "26.1"))
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -32,6 +32,8 @@
 ;; non-Linux kernel, you will need to adapt
 ;; `ulisp--select-serial-device'.
 
+;; This mode uses `paredit' if you have it installed.
+
 ;; To browse uLisp reference documentation:
 
 ;; M-x eww RET http://www.ulisp.com/show?3L RET
@@ -39,7 +41,7 @@
 ;;; Code:
 (require 'comint)
 (require 'lisp-mode)
-(require 'paredit)
+(require 'paredit nil t)
 
 (defcustom ulisp-repl-serial-device-path nil
   "The full path of the serial device this REPL should use."
@@ -57,13 +59,14 @@ Detect and drop output from uLisp in STRING."
   :interactive nil
   :after-hook
   (progn
-    (let ((paredit-map (cdr (assoc 'paredit-mode minor-mode-map-alist)))
-          (ulisp-override-map (make-sparse-keymap)))
-      (set-keymap-parent ulisp-override-map paredit-map)
-      (define-key ulisp-override-map (kbd "RET") 'comint-send-input)
-      (make-local-variable 'minor-mode-overriding-map-alist)
-      (push (cons 'paredit-mode ulisp-override-map)
-            minor-mode-overriding-map-alist))
+    (when (fboundp 'paredit-mode)
+      (let ((paredit-map (cdr (assoc 'paredit-mode minor-mode-map-alist)))
+            (ulisp-override-map (make-sparse-keymap)))
+        (set-keymap-parent ulisp-override-map paredit-map)
+        (define-key ulisp-override-map (kbd "RET") 'comint-send-input)
+        (make-local-variable 'minor-mode-overriding-map-alist)
+        (push (cons 'paredit-mode ulisp-override-map)
+              minor-mode-overriding-map-alist)))
     (set-process-filter (get-buffer-process (current-buffer))
                         'ulisp-output-filter)
     (setq-local comint-process-echoes t)
@@ -122,7 +125,8 @@ if that is nil, query."
          :name "ulisp-serial" :port device :speed 9600 :buffer buffer))
       (with-current-buffer buffer
         (ulisp-repl--mode)
-        (paredit-mode)
+        (when (fboundp 'paredit-mode)
+          (paredit-mode))
         (pop-to-buffer (current-buffer))))))
 
 (provide 'ulisp-repl)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]