Age | Commit message (Collapse) | Author |
|
... and actually using it to implement geiser-smart-tab-mode. Always
nice to un-reinvent-the-wheel.
|
|
Besides removing code i didn't understand that well, we bring in
goodies such as partial completion. Jolly.
|
|
Was a real bug, after all, and quite reproducible. Sending an ,use
metacommand was not returning a prompt, and we were waiting for ever
to start (or almost). Now, connect-to-guile is not only right, but
spiffy again.
|
|
|
|
|
|
|
|
We have a new "manual lookup" command, and Racket now displays a doc
browser buffer for help with a button activating it. In the process,
we've cleaned-up a little mess in geiser-eval.el and geiser-doc.el,
and refactored the affected Racket modules.
Next in line is providing manual lookup for Guile.
|
|
|
|
geiser-repl was missing a (require 'geiser-doc) that was making things
go pretty awry for compiled geiser on os x (emacs 23.2.20), but
nowhere else, for reasons that escape me.
Issue was, the popup buffer macros were not seen. Go figure.
|
|
Details, details.
|
|
|
|
|
|
|
|
|
|
Tell people that we're trying to complete, sometimes, on two different
prefixes.
|
|
It'd be interesting to check what percentage of commits are related to
autodoc...
|
|
We're being a bit silly here, first converting the autodoc retort
string to an elisp value and then reconverting the arguments again to
a string with scheme syntax. We should probably do this at
geiser-syntax's parser level, with a special mode producing stringy
representations of tokens. Don't tell anyone.
|
|
And, as a consequence, we were sending broken sexps to poor schemes.
|
|
We now display procedure signatures in module help, and keep a cache
in Guile, using procedure properties.
|
|
Simpler (we don't need no square brackets) and more correct (keywords
display as keywords and we only include default values when available
(Guile, i'm looking at you).
|
|
copy-list is from cl.
|
|
The trick consists on using a comint-input-ring-separator that is
*not* a newline, both for reading and writing the history file.
|
|
|
|
You don't really care unless you're a Geiser hacker (as opposed to a
hacker using Geiser), or wanna become one.
|
|
|
|
This interactive command will list all method needed to define a new
Scheme implementation in Geiser, together with their callers and doc
strings. Although i know very few additional schemes meta-dynamic
enough to be supported by Geiser (actually, just one: scheme48), one
never knows (there was a time when i thought that PLT Scheme wasn't in
the list).
|
|
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.
|
|
Let's not wait for active connections to clear their queue when we're
shutting down the REPL.
|
|
The latter is obsolete since 23.2.
|
|
Nothing here, move on.
|
|
It hadn't occurred to me that anyone wouldn't want non-automatic
geiser-mode often enough to require its own customization variable.
Rotty proved me wrong. Or maybe not, but he deserves a custom var!
|
|
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.
|
|
By prefixing their name with a space... an argument against inferior
schemes, btw, is that they raise the barrier to entry for new schemes:
they must provide a networked REPL server.
|
|
Separate connections for the REPL and Geiser commands was kind of
neat, but it had the problem of synchronising the current namespace
for both connections. A quick fix would have been to ask the scheme
for the current namespace for every Geiser command in the REPL, but
that, besides clunky, would add potentially prohibitive overhead for
(real) remote connections.
As it happens, using a single connection turned out to be not that
difficult and relatively clean code-wise. We could even turn back to
not use inferior schemes, and the net result of this refactoring would
be the replacement of comint-redirect (which wasn't able to match the
whole EOT token if it didn't arrive all at once) by transaction queues
(which also makes geiser-connection's implementation cleaner).
But using an inferior scheme has a dog-food value, and allows external
processes to connect to the scheme being used by Geiser without
further ado, which could be useful for debugging (although this is a
lame excuse: nothing prevents you from starting a REPL server from
emacs if you want). We'll see.
|
|
|
|
|
|
Or the importance of EOL. Switching to a transaction queue for
communication with the Scheme process means that i had to care about
sending eols in the queries... Guile was waiting for ever reading a
metacommand taking a variable number of arguments. Argh: this has
taken me a few hours -- i'm getting old.
|
|
Apparently, (format "%s" sym) for a symbol read from a buffer where
it's fontified, produces a string with the same fontification. Go
figure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
elisp/geiser-guile.el
|
|
|
|
|
|
|
|
|
|
|