Edi Weitz edi@agharta.de writes:
I tried to debug this but I'm stuck. From my playing around I gather that when this happens slime-repl-mode-map isn't used at all[1] but I have no idea why this should be the case.
I suspect this has something to do with funny property inheritance near the prompt. Do the symptoms go a away if you try this?
(defun slime-repl-insert-prompt (result &optional time) "Goto to point max, insert RESULT and the prompt. Set slime-output-end to start of the inserted text slime-input-start to end end." (slime-flush-output) (goto-char (point-max)) (let ((start (point))) (unless (bolp) (insert "\n")) (slime-insert-propertized '(face slime-repl-result-face) result) (unless (bolp) (insert "\n")) (let ((prompt-start (point))) (slime-propertize-region '(face slime-repl-prompt-face read-only t intangible t slime-repl-prompt t ;; emacs stuff rear-nonsticky t ;; xemacs stuff start-open t end-open t) (insert (slime-lisp-package) "> ")) (set-marker slime-output-end start) (set-marker slime-repl-prompt-start-mark prompt-start) (slime-mark-input-start) (let ((time (or time 0.2))) (cond ((zerop time) (slime-repl-move-output-mark-before-prompt (current-buffer))) (t (run-at-time time nil 'slime-repl-move-output-mark-before-prompt (current-buffer))))))))