Age | Commit message (Collapse) | Author |
|
- Avoid defining autoload definitions in a central location.
Instead add autoload cookies to the forms/definitions that should
be autoloaded, in the locations where the actual definitions are
located.
- Do this for `geiser-mode', `turn-on-geiser-mode',
`geiser-mode--maybe-activate' (including adding that to
`scheme-mode-hook'), `geiser', `geiser-connect',
`geiser-connect-local' and `geiser-repl-switch'.
- Also do this for `run-geiser', even though it is only an obsolete
function alias for `geiser', which might make it desirable to drop
the autoload altogether.
Some unusual autoload definitions remain in "geiser.el", see below.
- One issue with defining autoloads in a central location is that it
is easy to forget to remove such autoloads when the real definition
is removed.
No longer autoload `geiser-version' because since [1: 847d2ad]
there no longer exists a proper definition of that function.
- No longer autoload `geiser-unload', `geiser-reload' and
`turn-off-geiser-mode', because they are only useful if Geiser has
already been loaded, at which point any autoloaded definitions are
no longer relevant.
However,
- Keep autoloading `geiser-activate-implementation' and
`geiser-implementation-extension', even though I doubt that this
is actually useful.
- Keep using `custom-add-load' to specify dependencies of Custom
groups and keep autoloading that. I don't know if this is actually
necessary, and while it seems really weird, it might served a legit
purpose, that I am not aware of.
1: 2020-07-19 847d2ad4c6da462c26c50af1ef7d9cd697f3a5d2
scheme and autotools removals
|
|
- In the summary line, use three dashes to separate the file name
from the summary. That is the convention, which some tools depend
on, and for some libraries we already did it here too.
- Capitalize the first word in the summary. That is the convention,
and for some libraries we already did it here too.
- For libraries that have a commentary, make sure it is placed in a
"Commentary:" section.
- Make sure the "Code:" heading, which separates the header from the
code part of the library, exists in all files.
|
|
|
|
Disabled by default. Adds new custom variables
"geiser-repl-superparen-character" and "geiser-repl-superparen-mode-p".
|
|
Disabled by default. Adds new custom variables
"geiser-repl-autoeval-mode-delay" and "geiser-repl-autoeval-mode-p".
|
|
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.
|
|
|