From 88094bfdfece123ee011aeb7634ebbed8045b128 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 3 Jun 2021 14:19:31 +0200 Subject: [PATCH] Work around SLY / rainbow-delimiter clash. --- .emacs.d/lisp/init-sly.el | 6 ++---- .emacs.d/lisp/patch-sly-rainbow.el | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 .emacs.d/lisp/patch-sly-rainbow.el diff --git a/.emacs.d/lisp/init-sly.el b/.emacs.d/lisp/init-sly.el index 5ed3674c..2e67173f 100644 --- a/.emacs.d/lisp/init-sly.el +++ b/.emacs.d/lisp/init-sly.el @@ -192,6 +192,7 @@ Good substitute for `sly-mrepl-indent-and-complete-symbol'." (setq sly-command-switch-to-existing-lisp 'always) (add-hook 'sly-mrepl-hook #'ambrevar/init-lispy) (add-hook 'sly-mrepl-hook #'rainbow-delimiters-mode) +(require 'patch-sly-rainbow) ;; #p completion. See https://github.com/joaotavora/sly/issues/405. (with-eval-after-load 'company @@ -324,10 +325,7 @@ returns a string." (propertize "> " 'font-lock-face 'sly-mrepl-prompt-face))) (with-eval-after-load 'sly-mrepl - (if (boundp 'sly-mrepl-prompt-formatter) - (setq sly-mrepl-prompt-formatter - #'ambrevar/sly-new-prompt) - (advice-add 'sly-mrepl--insert-prompt :around #'ambrevar/sly-prepare-prompt))) + (setq sly-mrepl-prompt-formatter #'ambrevar/sly-new-prompt)) (defun ambrevar/sly-end-of-prompt-p () (and (not (= (point) (point-min))) diff --git a/.emacs.d/lisp/patch-sly-rainbow.el b/.emacs.d/lisp/patch-sly-rainbow.el new file mode 100644 index 00000000..81e03a55 --- /dev/null +++ b/.emacs.d/lisp/patch-sly-rainbow.el @@ -0,0 +1,19 @@ +;; Workaround for https://github.com/joaotavora/sly/issues/452. +(defun ambrevar/disable-rainbow-delimiters (_orig &rest args) + "`rainbow-delimiters-mode' interferes with `ffap' (and thus Helm) in SLY mrepl. +Example: + +> (princ \"/home\") +/home +\"/home\" + +Running `ffap' on the first /home would not work as expected." + (rainbow-delimiters-mode -1)) +(advice-add 'sly-mrepl-return :before 'ambrevar/disable-rainbow-delimiters) + +(defun ambrevar/enable-rainbow-delimiters (_orig &rest args) + "See `ambrevar/disable-rainbow-delimiters'." + (rainbow-delimiters-mode 1)) +(advice-add 'sly-mrepl--insert-prompt :before 'ambrevar/enable-rainbow-delimiters) + +(provide 'patch-sly-rainbow)