summaryrefslogtreecommitdiff
path: root/elisp/geiser-racket.el
AgeCommit message (Collapse)Author
2013-06-06For crazy guys that use (define/match [foo bar] ...)Jose Antonio Ortega Ruiz
Racket is happy with that, so who are we to disagree?
2013-06-06Racket: correct font-lock for define/match, againJose Antonio Ortega Ruiz
We weren't considering the obvious: (define/match (foo bar) ...)
2013-06-06Racket: correct font lock for define/matchJose Antonio Ortega Ruiz
We could probably generalize to more function definition forms, but this is a start.
2013-04-21Fix for Racket compilation error jumping in REPLJose Antonio Ortega Ruiz
The backtraces now display some leading whitespace, which the default compilation-mode regexps was making part of the file name.
2013-04-21Racket: fixing error backtrace cleansingJose Antonio Ortega Ruiz
i.e., removing again references to geiser's innards
2013-04-17Racket: fix for jump to manual for symbols not in the namespaceJose Antonio Ortega Ruiz
We had broken using the hint that `help` offers during our recent adventures...
2013-04-15Racket: correct detection of manual lookup failuresJose Antonio Ortega Ruiz
Still a tad messy, because we are always forcing a retort-syntax error and checking its ouput, but good enough for now.
2013-04-15Racket: better help commandsJose Antonio Ortega Ruiz
For some reason that i don't fully understand, evaluating a function in the racket/base namespace first thing after loading errortrace breaks the help macro (!). This patches provides a workaround by actually invoking help first thing when Geiser starts, with alibi that it serves to preload the help index (in a separate thread). While i was at it, i improved the message printed in the minibuffer when no help is found.
2013-04-13A better solution to the funky filename problemJose Antonio Ortega Ruiz
So, the problem was that our regexp for a Racket prompt didn't take into account that filenames could contain white spaces: "@[^ ]*> ". A simple solution was accepting them: "@[^>]+> " won't work because '>' is also a valid character in filenames, so we went for "@.*> ". The drawback is that finding the beginning of the prompt (e.g. in C-a) fails when you're writing things like: racket@foo bar.rkt> (> 2 3) because here comint believes that the prompt is "racket@foo bar.rkt> (> " And that could have side-effects elsewhere. So what i've done is simply changing the way white-space is (not) printed in the prompt, substituting it by underscores. That way, whe can go back to the initial regexp, comint doesn't get confused, and users can easily infer that "@foo_bar.rkt>" is actually referring to their "foo bar.rkt" file.
2013-04-13Another take at the fix (files with >, bleh)Jose Antonio Ortega Ruiz
2013-04-13Racket: accepting spaces within comint's promptJose Antonio Ortega Ruiz
Since spaces are allowed inside filenames after all.
2013-04-02More Racket for/* forms indentation from DiogoJose Antonio Ortega Ruiz
2013-03-01Indentation rule for match/values (Diogo F.S. Ramos)Jose Antonio Ortega Ruiz
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.
2013-02-20Indentation for match-letJose Antonio Ortega Ruiz
2013-02-09Indentation for Racket's structJose Antonio Ortega Ruiz
Thanks to Diogo F. S. Ramos.
2012-12-14Racket: indentation for `local'.Jose Antonio Ortega Ruiz
Hat tip Diogo F. S. Ramos.
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-24Racket: indentation for module+ formsJose Antonio Ortega Ruiz
2012-09-29Autoload cookies in geiser.elJose Antonio Ortega Ruiz
Useless there right now, but Emacs package engine is going to use them.
2012-09-02Image display functionality refactored to its own moduleJose Antonio Ortega Ruiz
2012-08-25racket: reading into elisp-land the cache dir as neededJose Antonio Ortega Ruiz
When no cache dir is set in the emacs customization, we ask Racket for the one that it's using by default.
2012-08-20Racket: configurable image cache directoryJose Antonio Ortega Ruiz
Brought to you by a comma-command in the REPL and the REPL startup function.
2012-04-16Racket: indentation for all 'for' formsJose Antonio Ortega Ruiz
We had only for two of them, and one was wrong!
2012-04-02Highlighting [else properly in Racket buffersJose Antonio Ortega Ruiz
That is, `else' gets keyword fontlocking. Undecided as to whether extend this highlighting to all schemes...
2011-11-26Racket: capturing and displaying standard error during evaluationJose Antonio Ortega Ruiz
This bugs was exposed by using rackunit, where all the output of, say, check-eq? was lost for good (it was being sent to the stderr black hole). Hat tip Grant Retkke.
2011-09-29Racket: indentation for splicing-let and friendsJose Antonio Ortega Ruiz
At some point, we should make indentation rules buffer-local.
2011-01-09Racket: ',enter "foo"' as a synonym of ',enter (file "foo")'Jose Antonio Ortega Ruiz
2010-11-29Fixes for locals scanningJose Antonio Ortega Ruiz
... using the new non-interning reader. Plus scanning for case-lambda and syntax-rules. `geiser-syntax--scan-locals' is in danger of refactoring, specially if we add support for let-values.
2010-11-28Racket: #lang, require and provide as keywordsJose Antonio Ortega Ruiz
Those seem keywordish enough to deserve fontification.
2010-11-26A couple of uses of intern replaced by make-symbolJose Antonio Ortega Ruiz
These ones seem safe: the resulting symbol is not compared for equality anywhere.
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-26Racket: more information in symbol documentationJose Antonio Ortega Ruiz
When the symbol is imported and re-exported by a second module, we display its definition name and original module, besides the name of the module re-exporting it.
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-21Racket: showing submodules in module helpJose 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-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.
2010-11-12NitsJose Antonio Ortega Ruiz
2010-11-11Elisp support for inferior schemesJose Antonio Ortega Ruiz
2010-11-11Partial work (connections working)Jose Antonio Ortega Ruiz
2010-11-09Racket: remote REPLsJose Antonio Ortega Ruiz
2010-11-08Racket: use EOT token for internal communicationsJose Antonio Ortega Ruiz
2010-11-07Pumbling cleanupsJose Antonio Ortega Ruiz
2010-11-06Racket: little evaluation nitsJose Antonio Ortega Ruiz
2010-11-05Racket: fix for help functionJose Antonio Ortega Ruiz
2010-10-30Racket: ,eval -> ,geiser-evalJose Antonio Ortega Ruiz
2010-10-30Racket: using meta-commands instead of dynamic-require (#30347)Jose Antonio Ortega Ruiz
- Much more robust: dynamic-require might not have been defined in the REPL's namespace. - Fixes #30347 as a side-effect: now all Geiser functions work with typed scheme too.