diff options
author | James C. De Ricco <jamescdericco@gmail.com> | 2017-03-21 00:57:24 -0400 |
---|---|---|
committer | James C. De Ricco <jamescdericco@gmail.com> | 2017-03-21 01:15:02 -0400 |
commit | d6548ed7d1f44f3addd5cea98a63209bc51f454f (patch) | |
tree | 6056c97d7c3291d4a9f5cc8c9283b8e440b04e5a /scheme/racket/geiser/completions.rkt | |
parent | 166593c68b66276e36c7d91a9653bb1c44650afc (diff) | |
download | geiser-guile-d6548ed7d1f44f3addd5cea98a63209bc51f454f.tar.gz geiser-guile-d6548ed7d1f44f3addd5cea98a63209bc51f454f.tar.bz2 |
Don't assign the (field t) property to old REPL inputs
Previously, Geiser added a (field t) property to inputs before adding
them to the REPL history so it can determine what characters in the
buffer belong to old input and yank it when a user pressed
enter (geiser-repl--maybe-send) on it. When users recalled an old
input with "M-p" (comint-previous-matching-input-from-input), the old
input with its (field t) property were inserted after the current
prompt. Since old inputs were not "front-sticky," when point was just
after the current prompt but before the characters of the old input,
Emacs considered point to be outside of the (field t) field; this
prevented users from using some movement commands such as forward-word
to move point into the old input text. Furthermore, when users
inserted text before the old input or yanked other old inputs
afterwards, this new text did not have the field property and so Emacs
restricted point movement to and from the old text with the (field t)
field.
This resolves the issue by not adding the (field t) property to old
inputs and instead leverages comint's ability to assign the output
field to all non-input (by setting comint-use-prompt-regexp to
nil). It should resolve the issue reported in "[Geiser-users] Problem
with prompt at history item" by Hamish Ivey-Law
(https://lists.nongnu.org/archive/html/geiser-users/2014-12/msg00001.html).
Diffstat (limited to 'scheme/racket/geiser/completions.rkt')
0 files changed, 0 insertions, 0 deletions