summaryrefslogtreecommitdiff
path: root/scheme/racket/geiser/user.rkt
AgeCommit message (Collapse)Author
2014-12-29Racket: show images with print, write and displayJose Antonio Ortega Ruiz
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.
2014-01-09Racket: fix for evaluations inside typed/racket modulesJose Antonio Ortega Ruiz
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.
2013-06-27Racket: not loading errortrace by defaultJose Antonio Ortega Ruiz
The new submodules and errortrace interact badly, for what i've seen. In particular, even with the submodule[+*] loading correctly, its namespace doesn't have all identifiers bound, and new ones seem to appear in the bindings lists (things like a.1 or b.2, when a and b are the actual identifiers defined inside the module). Since moreover someone mentioned in the devel ML that errortrace is in general terms buggy, i guess we can leave without it for the time being.
2013-06-11racket: ,cd accepting also non-quoted pathsJose Antonio Ortega Ruiz
just because we can
2013-06-11racket: struggling with submodulesJose Antonio Ortega Ruiz
Submodule (re)loading is not without pecularities. In particular, module[*+] submodules are not visited the first time one enters its parent, but once you load them once, they're revisited every time we load the parent afterwards--racket's native enter! exhibits the same behaviour, so i'm guessing we'll have to live with that. There is however a glitch in that submodules can only be reloaded then by loading the parent, so we need to confirm that this is expected behaviour and, if it is, automating the parent's load when the submodule's is requested. On the other hand, entering a module[*+] is not working in Geiser yet, and it does in plain racket, so this one is our fault. Working on it.
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: C-u C-c C-z on a submodule enters itJose Antonio Ortega Ruiz
2013-06-08racket: ,gcd -> ,pwdJose Antonio Ortega Ruiz
And we display it (the current path, settable via ,cd) as a string. This was, i'm sure, a secret command nobody is using!
2013-06-08racket: ,enter submodulesJose Antonio Ortega Ruiz
It is now possible to ,enter racket submodules. This is only the first part of the story, because evalations should take place in the submodule, not in its top level module, as it happens now.
2013-04-15Racket: ensuring the first C-c C-d C-i worksJose Antonio Ortega Ruiz
... by the obvious device of waiting for the thread building the index to finish.
2013-04-15Racket: pre-loading help also in remote REPLsJose Antonio Ortega Ruiz
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.
2012-12-14Racket: make sure stderr is flushed in REPLJose Antonio Ortega Ruiz
Thanks to Haiwei Zhou for catching this one!
2012-09-08Racket: new option to specify network interface for REPL serverJose Antonio Ortega Ruiz
In geiser-racket.sh, there's the new option -n, which uses a new hostname argument accepted by geiser/user's start-geiser function.
2012-09-02racket: displaying images also during evaluationsJose 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-08-12[WIP] Draw images inline in the Racket REPL.Michael W
On the racket side, we use a custom print handler to print images (convertible? values; see file/convertible) in a special format: #<Image: filename> On the geiser side, we add a comint post-output hook to search for that filename and replace it with inline images.
2012-03-24,cd for Racket REPLJose Antonio Ortega Ruiz
It's not perfect and undocumented, but useful nonetheless.
2011-08-20Racket: eval geiser-eval's apply arguments properlyJose Antonio Ortega Ruiz
As Stanisław Halik reported, autodoc was receiving a mlist (instead of a list) as its argument when invoked in an R5RS context. Turns out we were evaluating geiser-eval's arguments in the wrong context (the procedure being applied and the arglist belong to the same namespace).
2011-03-21Racket: use the proper interaction port for input (#32844)Jose Antonio Ortega Ruiz
Thanks to Caleb Reach. We were using current-input-port, which is not the right port in graphical environments.
2011-03-06Racket: geiser-add-to-load-path implementedJose Antonio Ortega Ruiz
And we take the chance to lightly document the existence of this new command in the user manual.
2011-02-27Racket: no errors ,entering an R5RS moduleJose Antonio Ortega Ruiz
The catch here is that one cannot use #%variable-reference inside an R5RS module, and, as a consequence, namespace->module-path-name was failing badly. The solution is to take note of the module name being entered before hand, and use that name in case of error (we could actually use that name always, but then cheaters using Racket's enter! would see an inconsistent name (which probably they deserve)).
2011-01-09Racket: ',enter "foo"' as a synonym of ',enter (file "foo")'Jose Antonio Ortega Ruiz
2010-11-21Racket: showing submodules in module helpJose Antonio Ortega Ruiz
2010-11-21Racket: slightly better handling of the signatures cacheJose Antonio Ortega Ruiz
Refreshing the cache on form evaluation (had been deactivated by error since the introduction of meta-commands). The current behaviour is not yet completely correct: if one evaluates a form in a modified buffer, geiser won't notice the new definition's signature, not even after the buffer is saved if one has gone around asking for autodoc before that. An improvement would be to make the cache sensitive to file write times, as suggested back in the day by Eli & Neil.
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-11Racket reconnectedJose Antonio Ortega Ruiz
2010-11-11Partial work (connections working)Jose Antonio Ortega Ruiz
2010-11-08geiser-squarify to toggle between () and []Jose Antonio Ortega Ruiz
2010-11-08Racket: fix for prompt display on ,enterJose Antonio Ortega Ruiz
2010-11-08Racket: use EOT token for internal communicationsJose Antonio Ortega Ruiz
2010-11-07NitJose Antonio Ortega Ruiz
2010-11-06Racket: little evaluation nitsJose Antonio Ortega Ruiz
2010-10-30Racket: ,eval -> ,geiser-evalJose Antonio Ortega Ruiz
2010-10-30Racket: new meta-commands: ,eval ,apply ,no-valuesJose Antonio Ortega Ruiz
2010-10-29Racket: ,enter meta-command instead of namespace clobberingJose Antonio Ortega Ruiz
2010-10-15Racket nit: racket/base instead of scheme/baseJose Antonio Ortega Ruiz
2010-05-24Racket: PLT implementation renamed to Racket.Jose Antonio Ortega Ruiz