summaryrefslogtreecommitdiff
path: root/elisp/geiser-repl.el
AgeCommit message (Collapse)Author
2018-11-28Change behaviour of REPL output and highlightingAaron Marks
* Narrow font-lock syntax highlighting to only the active REPL input region. * Mark REPL output read-only. This can be changed via the option `geiser-repl-read-only-output-p`. * Mark REPL output with a user-definable face as `geiser-font-lock-repl-output`. Alternatively an option to syntax highlight REPL output is provided via the option `geiser-repl-highlight-output-p`. This applies scheme-mode syntax highlighting to any REPL output. Any additional hooks defined via scheme-mode-hook are also executed for highlighting this region. * Remove some unwanted TABs in source files.
2018-06-26Not killing partial outputs when leaving the REPLJose Antonio Ortega Ruiz
Since this job is done in the process sentinel, the clean up is also triggered when the Scheme process exits unexpectedly, deleting any traces the dying guy might have left. I added a flag to control the behaviour, but upon reflection the old behaviour seems wrong and i've defaulted to the new one. This one should fix #251.
2017-09-25Do not set geiser last-prompt-end beyond of point-maxMario Rodas
2017-03-21Don't assign the (field t) property to old REPL inputsJames C. De Ricco
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).
2016-11-09It's file, not filename (should fix #190)Jose Antonio Ortega Ruiz
2016-09-21Expand socket file name for 'geiser-connect-local'Alex Kost
2016-06-13(end-of-line 0) > (forward-line -1) (end-of-line)Jose Antonio Ortega Ruiz
2016-06-13A few byte-compilation warnings silencedJose Antonio Ortega Ruiz
2016-06-12New key bindings: C-c C-c, C-c C-lJose Antonio Ortega Ruiz
2016-06-12New commands geiser-repl-{previous,next}-promptJose Antonio Ortega Ruiz
When using a prompt regexp, comint's version of these commands misbehave (they try to reuse forward-paragraph, and that's not quite it), so we're implemeting our own here in a very straightforward way. We also bind the usual C-c C-p and C-c C-n to them. It only remains to b seen whether advising the original ones is worth the trouble.
2016-06-12Registering *global* font-lock keywords in REPLs at the right timeJose Antonio Ortega Ruiz
We were adding only the scheme-specific ones.
2016-06-11Registering font-lock keywords in REPLs at the right timeJose Antonio Ortega Ruiz
We were doing it before the buffer's implementation, and the implementation-specific keywords were not found. Should fix github's issue #159.
2016-04-30Fix REPL restart if REPL is aliveAlex Kost
2016-04-07Fix REPL reconnectingAlex Kost
This fixes 2 issues: 1. Reconnecting to a remote process prompts for host/port, although it is not needed. 2. 'geiser-connect' should be used only if 'geiser-repl--address' is a host/port pair. When it is a socket file name, 'geiser-connect-local' should be used.
2015-12-14Fix geiser-connect-local for non-interactive useAlex Kost
Move prompting for a socket file name to the interactive form.
2015-10-12Keeping the elisp compiler happyJose Antonio Ortega Ruiz
Mainly by reordering definitions so that functions are not used before defined. There are a couple of places where the compiler and I disagree (it complains withing eval-after-load), and a valid complain about functions defined via geiser-popup--define that should be addressed).
2015-09-16Add 'geiser-repl-buffer-name-function' variableAlex Kost
2015-09-10Fix for geiser-connect-localJose Antonio Ortega Ruiz
This one should address #79. I'm very surprised this ever worked!
2015-09-10Moving implementation loading to geiser-repl (#82)Jose Antonio Ortega Ruiz
That way we avoid circularities in the load graph, always a good thing.
2015-09-08Ensuring switch-to-geiser asks for an implementationJose Antonio Ortega Ruiz
Should fix issue #85
2015-09-06repl: Add 'save-history' argument to 'geiser-repl--send'Alex Kost
2015-03-12Fix for RET with point at the beginning of line after M-pJose Antonio Ortega Ruiz
2015-01-19Not cleaning the image cache before displaying imagesJose Antonio Ortega Ruiz
Image cache cleaning was being performed during comint output filtering and, since that can happen in batches, if the total output had more images than the maximum cache size, some of them would be gone (in fact it was even worse: we were cleaning the cache after each image display). Now we just perform cache maintenance before sending the input, and avoid paying a price for non-rackets by making the cache dir setting implementation-specific.
2014-06-01Almost redundant REPL command to interrupt evaluationJose Antonio Ortega Ruiz
Works almost identically to the stock C-c C-c, with just marginally better output aaand being well behaved when interrupting infinitely looping functions such as (define (f) (newline) (let loop () (loop))) -- cf. issue #29 on github. We like it so much that it replaces the old one.
2014-02-27Add 'geiser-connect-local' to connect over Unix-domain socket.Ludovic Courtès
2013-09-26Checking for versions before creating the REPL bufferJose Antonio Ortega Ruiz
... so that we don't end up with a blank, useless buffer around.
2013-09-25Scheme version checksJose Antonio Ortega Ruiz
And, if you happen to be launching it all the time, a way of skipping them via a customizable variable. Should address issue #15.
2013-08-26Ensuring that comint-process-echoes is nil in REPLJose Antonio Ortega Ruiz
This variable makes comint wait for the underlying process to echo its input, something our schemes won't do. If anyone sets the variable globally for what can only be perverse reasons, we just would just hung. Not anymore.
2013-08-12Newish emacsen don't have comint-last-prompt-overlayJose Antonio Ortega Ruiz
... so we have to check if it's defined and, in its defect, use the new shiny comint-last-prompt. A bit of refactoring resulted.
2013-07-02Real solution for the non-ascii-history problemJose Antonio Ortega Ruiz
We were using a history entry separator including \0 that wasn't writeable as an utf-8 file. Changing the separator to \n}{\n allows using UTF-8 characters in the REPL which are correctly read back.
2013-07-01A couple of byte-compilation warnings goneJose Antonio Ortega Ruiz
2013-07-01Another not entirely satisfactory experiment with raw-textJose Antonio Ortega Ruiz
2013-07-01Experiment setting history file coding systemJose Antonio Ortega Ruiz
2013-05-21yank input if point is over history inputDarren Hoo
2013-04-11New flag to automatically start REPLs when geiser-mode is activatedJose Antonio Ortega Ruiz
When no live REPL is found, of course. The flag's imaginatively called geiser-mode-start-repl-p.
2013-04-09New customizable geiser-repl-query-on-kill-pJose Antonio Ortega Ruiz
In case you don't care about killing live REPLs...
2013-03-01Using implementation-specific keywords also in REPLJose Antonio Ortega Ruiz
And, while we're at it, honour the new case-sentive flag, as suggested by Diogo.
2012-11-11New command geiser-repl-clear-bufferJose Antonio Ortega Ruiz
Just renamed geiser-repl--clear-buffer (we don't use -- when users can call the command with M-x normally) and added documentation.
2012-11-09New function 'geiser-repl--clear-buffer'Jonas Rodrigues
2012-10-27Filename completion also in scheme buffersJose Antonio Ortega Ruiz
By means of a new entry in completion-at-point-functions that uses the handy comint-filename-completion.
2012-10-24Completing file names at the REPL, but only in string contextsJose Antonio Ortega Ruiz
2012-10-24Completing file names at the REPLJose Antonio Ortega Ruiz
When no other completion is available, that is.
2012-10-23New custom var `geiser-repl-save-debugging-history-p'Jose Antonio Ortega Ruiz
This variable controls whether REPL command history should contain inputs during the debugger sessions (for schemes with such a thing, that is, for Guile).
2012-10-13Manual lookup shortcut (C-c C-d i) also in REPL buffersJose Antonio Ortega Ruiz
2012-09-02racket: displaying images also during evaluationsJose Antonio Ortega Ruiz
2012-09-02Image support: buttons and auto-display in the REPLJose Antonio Ortega Ruiz
When geiser-repl-inline-images-p is false (or we're in a terminal), the inserted text replacement is a button that calls the external viewer on click. There's also a parameter controlling whether the viewer should be invoked automatically upon insertion.
2012-09-02Image display functionality refactored to its own moduleJose Antonio Ortega Ruiz
2012-08-15Simplified image display.Michael W
Emacs now remembers the directory that Racket put the last image in. It leaves up to 10 previously viewed images in this directory, providing an 'image history'. This also reduces memory requirements; emacs no longer reads image content into memory.
2012-08-15Documentation improvementsMichael W
2012-08-12[WIP] Add capability for images to be viewed in an external image viewer.Michael W