Age | Commit message (Collapse) | Author |
|
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.
|
|
... 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.
|
|
The parser in geiser-syntax is (tail, but elisp doesn't care)
recursive, and we are setting max-lisp-eval-depth to some, ahem,
heuristic value before starting a read. For long strings, such as
that returned by the list of identifiers exported by the racket
module, the heuristic was bad enough to produce a value making Emacs
to blow away.
This is just a palliative. The real solution is turn the recursion in
geiser-syntax--read into an explicit iteration.
|
|
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.
|
|
|
|
|
|
|
|
|
|
Session seems to be recovering the value of geiser-doc--history
badly (see issue #7 for @achitu's discoveries), and since it is, in
fact, not a good idea to save it anyway, we've added an eval-on-load
deregistering the variable from session's list.
|
|
|
|
... and used also internally for C-c C-k, although it doesn't yet work
as well as i wanted when it comes to load modules. The reason is
probably in geiser/enter, where we don't record modification times per
submodule but per path, which is not correct in the presence of submodules.
|
|
|
|
These functions are similar to geiser-eval-region and
geiser-eval-region-and-go, however they allow the user to operate on the
entire buffer, not requiring the user to narrow to a specific region.
This also differs slightly from geiser-compile-current-buffer as
geiser-eval-buffer does not require the contents of the buffer to
be saved prior to being sent to the REPL. Documentaion has also been
updated to include references to the new methods and their keybindings.
|
|
|
|
|
|
|
|
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.
|