summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-09-27Add 'geiser-syntax--simple-keywords'Alex Kost
Use this function instead of repeating the same code in each implementation.
2015-09-10Speeding up debugger check (addresses #64)Jose Antonio Ortega Ruiz
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.
2015-09-08Ensuring switch-to-geiser asks for an implementationJose Antonio Ortega Ruiz
Should fix issue #85
2015-09-03guile: pretty printing evaluation results (#64)Jose Antonio Ortega Ruiz
We use the same trick as chicken for guile, and pretty-print the evaluation results before writing them. The trick wasn't working at all until i specified a value for the undocumented keyword parameter `#:max-expr-width`, which makes me think i might be missing something.
2014-06-05Possible fix for scanning problemJose Antonio Ortega Ruiz
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...
2014-06-03Guile: font lock for all components of module namesJose Antonio Ortega Ruiz
2014-03-26Indent Guile's `with-mutex'Diogo F. S. Ramos
Follow the convention for `with-' procedures.
2014-03-07Highlight `define-once'Diogo F. S. Ramos
Guile's `define-once' allows defining a variable only once, but its syntax is different from `define', so its highlight is different.
2013-09-25Scheme version checksJose Antonio Ortega Ruiz
And, if you happen to be launching it all the time, a way of skipping them via a customizable variable. Should address issue #15.
2013-09-19Fix: not using mapcar for effectJose Antonio Ortega Ruiz
2013-09-13Guile: augmenting %load-compiled-path tooJose Antonio Ortega Ruiz
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!
2013-09-13Guile: augmenting %load-compiled-path tooJose Antonio Ortega Ruiz
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!
2013-06-27White space, reallyJose Antonio Ortega Ruiz
2013-06-15Missing require cl for caseJose Antonio Ortega Ruiz
2013-06-04Guile: Fix subr argument name retrieval for Guile >= 2.0.9.Ludovic Courtès
2013-05-09guile: lambda* indentationAleix Conchillo Flaque
2013-03-01Configurable keyword case sensitivityJose Antonio Ortega Ruiz
By default, keywords are now not fontified in Scheme buffers unless they have the correct (lower) case. This behaviour can be altered by new, per-implementation customization variables. Thanks to Diogo F. S. Ramos for pointing this out.
2012-10-24Little clean-ups to the indentation rulesJose Antonio Ortega Ruiz
Splitting better the specially indented forms between our two implementations, so that users of a single one don't get weird indentations for froms without a special meaning in their scheme. Ideally, we should make these indentation rules buffer-local, so that when a user is in a, say, Guile buffer, module+ has no special indentation (as is the case now if that user also has activated support for Racket).
2012-10-11Finishing removal of the "foo ends here" footersJose Antonio Ortega Ruiz
I must admit this is yet another excuse to check geiserbot over at freenode.
2012-06-09Support for user-defined Guile info nodesJose Antonio Ortega Ruiz
In my debian machine, the info nodes for guile live in the "guile-2.0" node, rather than plain "guile". A new customizable variable, geiser-guile-manual-lookup-nodes, lets now specify additional names, and we only add indexes to the info-lookup mode definition when the node actually exists.
2011-09-11Guile: capturing output to standard errorJose Antonio Ortega Ruiz
We were just ignoring it so far!
2011-08-24Guile: deprecated format usage eliminatedJose Antonio Ortega Ruiz
Actually, i'm not even sure the calls to format i was using were correct at all!
2011-06-23Guile: find module when cursor is before define-module (#33497)jao
If we didn't find a define-module form after the cursor, or an enclosing R6RS library form, we search forward for a module definition. That way, things like C-c C-a work also from the top of the file.
2011-03-08Guile: what if i do what i meant to do?Jose Antonio Ortega Ruiz
Thanks Jon!
2011-03-08Guile: new option for loading ~/.guile (see issue #32681)Jose Antonio Ortega Ruiz
The new custom variable, geiser-guile-load-init-file-p, will be gone once Guile adquires the ability to specify the path to its init file.
2011-02-25Guile: setting *current-warning-prefix* during evaluationJose Antonio Ortega Ruiz
This is a 2.0 fluid that governs how warning messages are displayed. In Geiser, we need the prefix set to an empty string so that file paths are clickable (and the display in a separate emacs buffer is nicer).
2011-02-14Bug fix: don't override customized geiser-implementations-alistJose Antonio Ortega Ruiz
2011-02-09Guile: 'format' added to the warning listJose Antonio Ortega Ruiz
2011-02-09Guile: 'format' added to the warning listJose Antonio Ortega Ruiz
2011-02-03New geiser-add-to-load-path, just for Guile right nowJose Antonio Ortega Ruiz
As per Andy's request. Adding it to Racket (and to the user manual), shouldn't be difficult).
2011-01-09Guile nitJose Antonio Ortega Ruiz
2010-11-27No more interning in the scheme readerJose Antonio Ortega Ruiz
We avoid using elisp's read for symbols, reading uninterned ones instead. And then, we cannot use symbols as keys in responses from scheme: we're using strings instead.
2010-11-26Revert "Bug fix: don't intern symbols read by scheme reader"Jose Antonio Ortega Ruiz
This reverts commit 801422d1558f488059ede4f9abab5163ca610900. We cannot blindly substitute make-symbol for intern in the scheme reader, because we rely on symbol equality elsewhere, often. The fix will have to be much more careful.
2010-11-26Bug fix: don't intern symbols read by scheme readerJose Antonio Ortega Ruiz
We were calling `intern' instead of `make-symbol', polluting emacs' obarray.
2010-11-25Guile: fixes for documentation displayJose Antonio Ortega Ruiz
We put the value of the identifier where it belongs, and add a missing period. Works, but geiser/doc.scm is in sore need of a refactoring.
2010-11-25Guile: fix for connect-to-guile problemsJose Antonio Ortega Ruiz
Was a real bug, after all, and quite reproducible. Sending an ,use metacommand was not returning a prompt, and we were waiting for ever to start (or almost). Now, connect-to-guile is not only right, but spiffy again.
2010-11-25Guile: logging initialisation processJose Antonio Ortega Ruiz
Today, W was seeing errors when connecting to Guile, which of course immediately disappeared when we tried to reproduce them and get some logs. I'm logging Guile's initialisation unconditionally, to make sure the problem doesn't repeat. Much easier than fixing the bug.
2010-11-24Guile: button for texinfo lookup in doc browserJose Antonio Ortega Ruiz
2010-11-23Document browser improvements, and Racket using themJose Antonio Ortega Ruiz
We have a new "manual lookup" command, and Racket now displays a doc browser buffer for help with a button activating it. In the process, we've cleaned-up a little mess in geiser-eval.el and geiser-doc.el, and refactored the affected Racket modules. Next in line is providing manual lookup for Guile.
2010-11-22Fix for error in Guile initialisationJose Antonio Ortega Ruiz
2010-11-21Better module helpJose Antonio Ortega Ruiz
We now display procedure signatures in module help, and keep a cache in Guile, using procedure properties.
2010-11-14TypoJose Antonio Ortega Ruiz
2010-11-14Support for implementation-specific font lock keywordsJose Antonio Ortega Ruiz
Spinning up from correct fontification of [else in this brave Racket world. I'm keeping the list of extra keywords lean and mean, but making it customizable in both Racket and Guile.
2010-11-13Superior schemesJose Antonio Ortega Ruiz
Inferior schemes weren't really a good idea, were they? With remote connections one can launch an external scheme to debug Geiser anyway. And everything is (ahem, will be) simpler when we add new implementations.
2010-11-12Make do with a single connectionJose Antonio Ortega Ruiz
Separate connections for the REPL and Geiser commands was kind of neat, but it had the problem of synchronising the current namespace for both connections. A quick fix would have been to ask the scheme for the current namespace for every Geiser command in the REPL, but that, besides clunky, would add potentially prohibitive overhead for (real) remote connections. As it happens, using a single connection turned out to be not that difficult and relatively clean code-wise. We could even turn back to not use inferior schemes, and the net result of this refactoring would be the replacement of comint-redirect (which wasn't able to match the whole EOT token if it didn't arrive all at once) by transaction queues (which also makes geiser-connection's implementation cleaner). But using an inferior scheme has a dog-food value, and allows external processes to connect to the scheme being used by Geiser without further ado, which could be useful for debugging (although this is a lame excuse: nothing prevents you from starting a REPL server from emacs if you want). We'll see.
2010-11-12Make do with a single connectionJose Antonio Ortega Ruiz
Separate connections for the REPL and Geiser commands was kind of neat, but it had the problem of synchronising the current namespace for both connections. A quick fix would have been to ask the scheme for the current namespace for every Geiser command in the REPL, but that, besides clunky, would add potentially prohibitive overhead for (real) remote connections. As it happens, using a single connection turned out to be not that difficult and relatively clean code-wise. We could even turn back to not use inferior schemes, and the net result of this refactoring would be the replacement of comint-redirect (which wasn't able to match the whole EOT token if it didn't arrive all at once) by transaction queues (which also makes geiser-connection's implementation cleaner). But using an inferior scheme has a dog-food value, and allows external processes to connect to the scheme being used by Geiser without further ado, which could be useful for debugging (although this is a lame excuse: nothing prevents you from starting a REPL server from emacs if you want). We'll see.
2010-11-12Debugger support, and Guile using itJose Antonio Ortega Ruiz
2010-11-12Better EOT token for more robust communicationJose Antonio Ortega Ruiz
2010-11-12Better EOT token for more robust communicationJose Antonio Ortega Ruiz
2010-11-12Guile reconnected (but not debuggable (yet))Jose Antonio Ortega Ruiz
Or the importance of EOL. Switching to a transaction queue for communication with the Scheme process means that i had to care about sending eols in the queries... Guile was waiting for ever reading a metacommand taking a variable number of arguments. Argh: this has taken me a few hours -- i'm getting old.