Age | Commit message (Collapse) | Author |
|
By hooking the pretty-printer, as discovered by Greg in issue #49. To
attain nirvana, we would still need (display (list graph)) to work...
|
|
Up to now, we were only displaying images when printed as values by the
REPL, but not when image values were explicitly print-ed, write-d or
display-ed. This patch solves that problem by installing (semi)
appropriate port-{print,write,display}-handler. This is still and
incomplete solution in that those handlers (as well as the already
installed current-print-handler) don't recurse over a value's structure
and won't produce images embedded in other data structures, as discussed
in issue #49.
|
|
|
|
|
|
Since we have so few, let's not wait to add just one more!
|
|
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).
|
|
|
|
Fixes for warnings issued by makeinfo 5.x (when using some of our
macros: the guy is touchy regarding @ifhtml and new lines) that were
preventing the install-html make target to work (for people that want
local html by texinfo as opposed to the (supposedly fancier)
texi2html-generated version we use for the web).
|
|
Follow the convention for `with-' procedures.
|
|
|
|
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.
|
|
Guile's `define-once' allows defining a variable only once, but its
syntax is different from `define', so its highlight is different.
|
|
|
|
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.
|
|
|
|
When using our current-load/used-compiled function, we were compiling
the syntax of a module using compile, which seems to not honour
With luck, this should address bug #14 for real.
|
|
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.
|
|
When evaluating (re)definitions in a typed module, it's necessary that
the form evaluated is wrapped with #%top-interaction, so that typed
racket's redefinition of that macro enters into play and the system
records the type information of the new value.
Many thanks to Sam Tobin-Hochstadt for the tip, and for his encouraging
words.
|
|
We used to check for a good racket version during its start-up, but
these days we already have an independent version check before that.
|
|
|
|
|
|
|
|
... 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.
|
|
|
|
|
|
We add the paths in geiser-guile-load-path also to %load-compiled-path,
and new directories added to the load path via geiser-add-to-load-path
are added to both %load-path and %load-compiled-path.
Here's hope Ludovic will like all these additions!
|
|
Too much clojure latetly!!
|
|
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.
|
|
|
|
So the generated tarball from `make dist' will have `dir' inside.
|
|
If a user doesn't want to install geiser, it's possible to run it in
place by loading `elisp/geiser.el' directly.
It's also possible to read the info manual directly but it's
inconvenient to not have it listed when hitting C-h i inside Emacs.
To list such manual, it's necessary to tell info where to look for it.
One way of doing it is adding the directory to the variable
`Info-additional-directory-list'. But, for this to work, there's need
to be a `dir' file listing the info manual.
|