Age | Commit message (Collapse) | Author |
|
we already had our own lighter mechanism, just needed to use it better. it
will also allow guessing local signatures, quite useful in chezzy (or more
generally r6rs-librarish) schemes.
|
|
... as well as a way of telling imenu to look for nested define forms, as the
ones one finds for instance inside (library ...) or (module ...) sexps, or
simply nested defines in function bodies. it's a crappy way of finding
definitions, but it's better than nothing when it's all we have (e.g., R6RS
libraries don't seem to provide an environment/namespace including their
privates, which is a killjoy).
|
|
|
|
|
|
Should address, sort of, issue #46
|
|
Should fix issue #49.
|
|
|
|
NOTE: The patch is largely untested.
Modifications:
- Update readme.org
- Remove geiser-company
- Move Company extensions to geiser-completion
Omissions:
- geiser-company--inhibit-autodoc has been removed. Eldoc handling
should be implemented in the frontend, not in the backend.
See for example:
https://github.com/minad/corfu/blob/04fbfce3d7e9c125a7fd22a34455a508247a522b/corfu.el#L1212
- The quickhelp-string action and geiser-company--docstring have been
removed. company-quickhelp can use `:company-doc-buffer` instead with
minimal overhead.
See:
https://github.com/company-mode/company-quickhelp/blob/3ca2708b4e5190205aca01d65fe1b391963a53f9/company-quickhelp.el#L138
- The automatic Company setup has been removed. Personally I am not a
fan of such auto configuration. It is better if completion is
configured consistently in the user configuration. You may want to
restore the auto configuration for backward compatibility. It depends
on your backward compatibility story. I am fine with rare breaking
changes from time to time.
- There is a cyclic dependency between geiser-edit/geiser-doc and
geiser-completion, which should be untangled.
|
|
|
|
|
|
|
|
|
|
This should address, for instance, issue #30
|
|
|
|
Useful specially for REPLs including a debugger, where you might want
to exit it from a scheme buffer. Bound by default to C-c C-q.
|
|
It is available since Emacs 24.3 and we already depend on Emacs 24.4.
|
|
This makes it possible to re-evaluate the containing
buffers without user customizations being clobbered.
|
|
|
|
It's the convention and by following it we make a big step towards
supporting outline navigation.
The convention doesn't say much about what parts of the code are
supposed to be part of that sections and what parts belong in a
subsequent section. Here we put the `require' forms in this section
and maybe some setup code, that's a popular approach.
In most cases there was "" where we now insert "Code:". They both
serve a similar purpose and we keep the former because some users
depend on that for navigation. We even add this "" in libraries
where it previously was missing.
In some cases the permission statement was followed by a commentary,
which obviously does not belong in the "Code:" section. In such cases
add the conventional "Commentary:" section.
|
|
It's the convention and by following it we make a big step towards
supporting outline navigation.
|
|
With a hat tip to Mikhail Kryshen, who was wondering in guile-user why
oh why, and rightly so.
|
|
For some reason, one of our users is experiencing point jumps when
calling `geiser-set-scheme'. A save-excursion is all that's needed,
even though it *shouldn't* be needed in the first place.
|
|
|
|
geiser-mode-eval-to-buffer-transformer will take 2 argments:
errstring and result
when eval-to-buffer, the result will be transformed by this procedure
e.g.
(setq geiser-mode-eval-to-buffer-transformer
(lambda (estring x)
(let ((l (length x))
(p (seq-position x ?\n)))
(if (and p (< (+ 1 p) l))
(format "\n#| %s%s\n |#" estring x)
(format ";;=> %s%s" estring x)))))
|
|
After evaling the last expression, if not inserting its value into
buffer, leave (point) at its original position.
|
|
Scan for beginning and end of a sexp, instead of using (point) as the
end.
Previously, if (point) was after a comment character, the REPL would
freeze.
|
|
|
|
And, on reflection, it's better we do the same thing with the ERROR
insertion...
|
|
|
|
|
|
|
|
|
|
This one should fix github's issue #132. There's still the glitch that
scheme strings are fontified without taking into account extra keywords.
|
|
Addresses github's #158, and its implementation is really easy (kudos to
fice-t, also for telling me about bound-and-true-p).
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
We were not checking that the region sent to the scheme process was
balanced, resulting in said process waiting for ever on `read' (or its
moral equivalent in our current implementation). We now just refuse
to evaluate an improper region in the first place.
|
|
As per Andy's request. Adding it to Racket (and to the user manual),
shouldn't be difficult).
|
|
Since C-c C-z/Z apparently conflict with each other, and the new
keybinding is more friendly anyway.
|
|
Mark, again.
|