Age | Commit message (Collapse) | Author |
|
|
|
And we display it (the current path, settable via ,cd) as a string.
This was, i'm sure, a secret command nobody is using!
|
|
It is now possible to ,enter racket submodules. This is only the
first part of the story, because evalations should take place in the
submodule, not in its top level module, as it happens now.
|
|
... by the obvious device of waiting for the thread building the index
to finish.
|
|
|
|
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.
|
|
Thanks to Haiwei Zhou for catching this one!
|
|
In geiser-racket.sh, there's the new option -n, which uses a new
hostname argument accepted by geiser/user's start-geiser function.
|
|
|
|
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.
|
|
On the racket side, we use a custom print handler to print
images (convertible? values; see file/convertible) in a special format:
#<Image: filename>
On the geiser side, we add a comint post-output hook to search for
that filename and replace it with inline images.
|
|
It's not perfect and undocumented, but useful nonetheless.
|
|
As Stanisław Halik reported, autodoc was receiving a mlist (instead of
a list) as its argument when invoked in an R5RS context. Turns out we
were evaluating geiser-eval's arguments in the wrong context (the
procedure being applied and the arglist belong to the same namespace).
|
|
Thanks to Caleb Reach.
We were using current-input-port, which is not the right port in
graphical environments.
|
|
And we take the chance to lightly document the existence of this
new command in the user manual.
|
|
The catch here is that one cannot use #%variable-reference inside an
R5RS module, and, as a consequence, namespace->module-path-name was
failing badly. The solution is to take note of the module name being
entered before hand, and use that name in case of error (we could
actually use that name always, but then cheaters using Racket's enter!
would see an inconsistent name (which probably they deserve)).
|
|
|
|
|
|
Refreshing the cache on form evaluation (had been deactivated by error
since the introduction of meta-commands). The current behaviour is not
yet completely correct: if one evaluates a form in a modified buffer,
geiser won't notice the new definition's signature, not even after the
buffer is saved if one has gone around asking for autodoc before that.
An improvement would be to make the cache sensitive to file write
times, as suggested back in the day by Eli & Neil.
|
|
Spinning up from correct fontification of [else in this brave Racket
world.
I'm keeping the list of extra keywords lean and mean, but making it
customizable in both Racket and Guile.
|
|
Inferior schemes weren't really a good idea, were they? With remote
connections one can launch an external scheme to debug Geiser anyway.
And everything is (ahem, will be) simpler when we add new
implementations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|