summaryrefslogtreecommitdiff
path: root/elisp/geiser-racket.el
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-01-19Not cleaning the image cache before displaying imagesJose Antonio Ortega Ruiz
Image cache cleaning was being performed during comint output filtering and, since that can happen in batches, if the total output had more images than the maximum cache size, some of them would be gone (in fact it was even worse: we were cleaning the cache after each image display). Now we just perform cache maintenance before sending the input, and avoid paying a price for non-rackets by making the cache dir setting implementation-specific.
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-05-31Finer control of debugging window popupsJose Antonio Ortega Ruiz
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).
2014-02-25Font lock `define-syntax-rule' like `define' proceduresDiogo F. S. Ramos
`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.
2014-01-10Racket: better behaviour of geiser-eval-bufferJose Antonio Ortega Ruiz
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.
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-08-26Syntax error fixedJose Antonio Ortega Ruiz
Too much clojure latetly!!
2013-08-25Let's make it *any* submoduleJose Antonio Ortega Ruiz
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.
2013-08-25Racket: new commands to show and hide test submodulesJose Antonio Ortega Ruiz
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.
2013-06-20Another indentation rule: match-let-valuesJose Antonio Ortega Ruiz
2013-06-15Missing require cl for caseJose Antonio Ortega Ruiz
2013-06-10racket: new ,geiser-load command in REPLJose Antonio Ortega Ruiz
... and used also internally for C-c C-k, although it doesn't yet work as well as i wanted when it comes to load modules. The reason is probably in geiser/enter, where we don't record modification times per submodule but per path, which is not correct in the presence of submodules.
2013-06-09racket: module* and module+ denote submodules tooJose Antonio Ortega Ruiz
Recognizing those forms in the elisp module getter.
2013-06-09racket: indentation for module*Jose Antonio Ortega Ruiz
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.