Age | Commit message (Collapse) | Author |
|
|
|
If literals were present chicken wouldn't provide any autodocumentation
due to an error. Module evaluation was failing due to poor
input. Chicken's Error output was failing to parse
- Filter out all non-symbols from the autodoc set
- Properly escape module names
- Add "Error" to the set of accepted error prefixes
|
|
Should fix #105
|
|
Fixed by using font-lock-ensure instead
|
|
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).
|
|
|
|
API for test suites is defined by SRFI-64.
|
|
Exceptions are defined by R6RS, SRFI-18 and SRFI-34.
|
|
Move general indentation rules to "geiser-syntax".
|
|
Move general RNRS/SRFI keywords from "geiser-chicken" to "geiser-syntax".
|
|
Use this function instead of repeating the same code in each
implementation.
|
|
|
|
|
|
Soooo, the long delay experienced when evaluating long string lists in
Guile had nothing to do with the time took by emacs to read the response
from the scheme process; that process is always a breeze, no matter or
its format or number of newlines. The delay was provoked by an innocent
looking function that scans the received string (which includes a prompt
at the end as an EOT marker) to check whether Guile (or any other
scheme) has just entered the debugger (that's done inside
`geiser-con--connection-update-debugging`). For some reason,
`string-match` on that kind of string using Guile's regexp for a debug
prompt takes forever. Instead of trying to optimize the regular
expression, i've just applied it to the *second* line of the received
string, which is the one that contains the response's prompt.
|
|
This one should address #79. I'm very surprised this ever worked!
|
|
That way we avoid circularities in the load graph, always a good thing.
|
|
This is gone now, since we're diligent enough to always end our impl
definitions with an explicit provide form. See PR #87 for a bit of
discussion.
|
|
|
|
|
|
Should fix issue #85
|
|
|
|
|
|
xscheme defines its own scheme-interaction-mode that, quite rudely if
you ask me, calls not only its hooks, but also scheme-mode's. Among
them, turn-on-geiser-mode, causing havoc to users of xscheme's
run-scheme function.
We, ahem, fix this problem by checking that we're actually in
scheme-mode when our hook is called.
Thanks to Federico Beffa for his reports.
|
|
Minor and Patch versions are now optional.
|
|
geiser--cut-version only supports single-digit minor versions.
- Improves the regex to support multiple-digit minor versions.
Contributed by @kovrik
|
|
|
|
For some X faces, a bold string in the modeline causes emacs to widen it
to two lines, which is kind of annoying. The default value of
font-lock-variable-name-face on color/X displays doesn't include any
boldness, and will probably improve the default experience of new users.
Thanks to Mario Domenech Goulart for noticing this and the previous one!
|
|
Preparing the release of 0.7, which will feature support for Chicken
thanks to Dan and Freija!
|
|
|
|
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.
|
|
|
|
Which moreover complies with the unwritten naming conventions we use:
geiser-doc--render-docstring.
|
|
|
|
Apparently, the nesting level returned by emacs's syntax parser can be
negative (presumably when it gets confused), and we were not avoiding
calling backward-up-list when that happened.
Could or could not address issue #41...
|
|
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.
|
|
It's now possible to control whether we jump to the debug window on
evaluation errors (geiser-debug-jump-to-debug-p) and whether we show it
all (geiser-debug-show-debug-p).
|
|
|
|
This allows partially matched `define-syntax-rule' expressions and
avoids the termination of search-based fontification, which affects
other expressions inside the buffer, in the case of a missing
subexpression.
|
|
|
|
The name defined It's more like a function in a define than a variable,
since it can take arguments.
|
|
`define-syntax-rule' is similar enough to procedure definitions that
it should be highlight as a slightly different version of one.
The faces were chosen to keep the same scheme used by `define-macro'.
`define-syntax-rule' was removed from Racket's extra keywords as there
is no need to special case it.
|
|
For buffers containing a #lang directive, geiser-eval-buffer was simply
broken: one cannot send the whole region wrapped in a `begin' in that
case.
We try now to send the region below, although a real solution would
imply using #%module-begin as the wrapper, in order to be robust for
languages that define their own version of the macro (such as TR).
But people should use C-c C-a or C-c C-k and leave this silly function
alone instead.
|
|
... so that we don't end up with a blank, useless buffer around.
|
|
And, if you happen to be launching it all the time, a way of skipping
them via a customizable variable.
Should address issue #15.
|
|
This will allow `package-buffer-info` to parse the description out of the file.
|
|
Everything in geiser.el needs one, so that the generated
geiser-autoloads.el initializes variables and the like properly
automatically.
|
|
Following the discussion in GitHub, i'm adding an alternative scheme
path to geiser.el as well as ##autoload cookies. As a first benefit,
this simplifies a bit the elpa target, after playing a similar path
trick in bin/geiser-racket.sh.
Things should be almost ready for creating a MELPA recipe.
|
|
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.
|
|
So the new functions are named geiser-racket-*-submodules, and by
default all submodule forms are hidden.
Now that we have the helpers in geiser-edit, we could have a generic
command in geiser-mode to change the visibility of form at point.
|
|
The new commands, being racket-specific, are called
geiser-racket-{show,hide,toggle}-tests, and have no default binding in
geiser-mode (since they don't have any meaning in Guile).
The implementation is based on more generic functions in geiser-edit
that allow hiding of any top-level form, given its name, so we will
probably find new forms to hide in the future.
Hiding is limited to top-level forms, which i think is fine for the only
use case we have in mind right now.
|