Age | Commit message (Collapse) | Author |
|
We had broken using the hint that `help` offers during our recent
adventures...
|
|
Still a tad messy, because we are always forcing a retort-syntax error
and checking its ouput, but good enough for now.
|
|
For some reason that i don't fully understand, evaluating a function
in the racket/base namespace first thing after loading errortrace
breaks the help macro (!). This patches provides a workaround by
actually invoking help first thing when Geiser starts, with alibi that
it serves to preload the help index (in a separate thread).
While i was at it, i improved the message printed in the minibuffer
when no help is found.
|
|
|
|
So, the problem was that our regexp for a Racket prompt didn't take
into account that filenames could contain white spaces: "@[^ ]*> ". A
simple solution was accepting them: "@[^>]+> " won't work because '>'
is also a valid character in filenames, so we went for "@.*> ".
The drawback is that finding the beginning of the prompt (e.g. in C-a)
fails when you're writing things like:
racket@foo bar.rkt> (> 2 3)
because here comint believes that the prompt is "racket@foo bar.rkt> (> "
And that could have side-effects elsewhere. So what i've done is
simply changing the way white-space is (not) printed in the prompt,
substituting it by underscores. That way, whe can go back to the
initial regexp, comint doesn't get confused, and users can easily
infer that "@foo_bar.rkt>" is actually referring to their
"foo bar.rkt" file.
|
|
|
|
Since spaces are allowed inside filenames after all.
|
|
|
|
|
|
Use a prefix before pressing C-x C-e to print the result of evaluating
the expression before mark to the current buffer.
|
|
I'm not convinced that this is the right thing, and the effect is a
bit ugly (we use save-window-excursion), but maybe this is the correct
thing to do for users that want auto-start.
|
|
When no live REPL is found, of course. The flag's imaginatively
called geiser-mode-start-repl-p.
|
|
Such as (values), which produce a retort of the form ((result) ...),
which has nothing wrong in it! Thanks to Diogo.
|
|
In case you don't care about killing live REPLs...
|
|
|
|
And, while we're at it, honour the new case-sentive flag, as suggested
by Diogo.
|
|
|
|
By default, keywords are now not fontified in Scheme buffers unless
they have the correct (lower) case. This behaviour can be altered by
new, per-implementation customization variables.
Thanks to Diogo F. S. Ramos for pointing this out.
|
|
|
|
Thanks to Diogo F. S. Ramos.
|
|
|
|
|
|
Since C-\ is a standard Emacs binding, and people know how to change
it anyway. I've also put the command in the menu for Geiser mode, for
discoverability. A pleasant surprise: greek lambdas are understood by
both Racket and Guile.
|
|
|
|
.. which seems to be available also in emacs 23.2 (although reports as
to whether it works are mixed), and has better behaviour anyways.
|
|
Hat tip Diogo F. S. Ramos.
|
|
We were not taking into account windows paths, with their backslashes
and colons.
|
|
Just renamed geiser-repl--clear-buffer (we don't use -- when users can
call the command with M-x normally) and added documentation.
|
|
|
|
By means of a new entry in completion-at-point-functions that uses
the handy comint-filename-completion.
|
|
|
|
When no other completion is available, that is.
|
|
Splitting better the specially indented forms between our two
implementations, so that users of a single one don't get weird
indentations for froms without a special meaning in their scheme.
Ideally, we should make these indentation rules buffer-local, so that
when a user is in a, say, Guile buffer, module+ has no special
indentation (as is the case now if that user also has activated
support for Racket).
|
|
|
|
This variable controls whether REPL command history should contain
inputs during the debugger sessions (for schemes with such a thing,
that is, for Guile).
|
|
|
|
|
|
A bunch of shellish ops, but seems to be working fine.
|
|
|
|
Useless there right now, but Emacs package engine is going to use
them.
|
|
|
|
Images rendered via put-image won't be deleted by
erase-buffer (they're overlays), while those inserted by
insert-image (text properties) will.
|
|
|
|
|
|
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.
|
|
|
|
When no cache dir is set in the emacs customization, we ask Racket for
the one that it's using by default.
|
|
Brought to you by a comma-command in the REPL and the REPL startup
function.
|
|
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.
|
|
|