Commit Graph

11 Commits

Author SHA1 Message Date
Eli Barzilay
89dee6f6c1 Xrepl improvements, mainly around the treatment of module names.
* Get rid of the concept of `modspec': `getarg' now has `require' for
  require specs and `module' for a module name (the latter is what all
  previous uses of 'modspec except for ,require really needed); command
  descriptions use "<require-spec>" and "<module>", documentation
  adjusted as well.

* `module-name?' etc turn to `known-module' and `known-module-name',
  with a saner behavior, and tests to keep it sane.

* This cleans up a lot of things.  Two specific points: ,switch works
  better with toplevel-defined modules (see the corresponding change in
  the test suite), and also fixes PR 12148.

* Ensure that ,sh commands return void.

* Add tests for ,r with non-atomic require spec, and for use of $F in
  ,sh commands.

* Improved the test suite, including uses of `module+' so each file can
  be run by itself to perform a subset of the tests.
2012-03-25 20:57:52 -04:00
Eli Barzilay
4ec565ae97 Add the missing documentation for ,check-requires. 2011-08-29 17:41:35 -04:00
Matthew Flatt
2692d119be fix cross-reference 2011-08-28 11:08:33 -06:00
Eli Barzilay
6e50ecad99 Add $1', $2', ..., `$5' as last-value references. 2011-08-26 09:42:56 -04:00
Eli Barzilay
cda4479d1e Hold the saved values weakly. 2011-08-26 09:10:46 -04:00
Matthew Flatt
f082919f0b doc style adjustments; reorg cmdline+editors docs in Guide 2011-08-24 09:07:12 -06:00
Eli Barzilay
db5c6e02d7 Typo fixes, thanks to David Van Horn. 2011-08-23 12:08:37 -04:00
Eli Barzilay
7585edbcb6 xrepl improvments:
* a single function to set up all environment parameters.

* improve `getarg's treatment of default thunk

* Add an error display handler that doesn't show the context and instead
  add a ,bt command to show it.
2011-07-29 07:29:29 -04:00
Eli Barzilay
261288c394 Add $F for ,sh commands. 2011-07-18 15:34:31 -04:00
Eli Barzilay
3c1e624916 Add an example for extending xrepl, the very stupid way.
For the record, a way to do this permanently is to add something like
this to your ~/.racketrc:

  (eval '(begin
           (saved-values-char #\~)
           (defcommand eli "stuff" "eli says" ["Make eli say stuff"]
             (printf "Eli says: ~a\n" (getarg 'line)))
           (defcommand er #f "alias for errortrace" ["Runs errortrace"]
             (run-command 'errortrace)))
        (module->namespace 'xrepl/xrepl))

But this is too stupid even for a section that has "Hacking" in its title.

There should definitely be an organized way to do this.  This will
require several things:

* A decent API for doing these things for user code.  (So the above
  `eval' turns to a `require' for your file which uses this API.)  This
  goes beyond just documenting what's in there -- there are issues to
  resolve like some argument reading protocol (separating the
  declaration of argument types from the command implementation code),
  so a new command can call another with arguments that it reads.

* There should also be some ,set command for customization
  options (reading and changing) and code to use the preference file for
  doing that.  I almost started to do this, but currently there are only
  three values that this could apply to (`saved-values-char', `-number',
  and `wrap-column' (which might be better to dump and use
  `pretty-print-columns' instead)).

* Also, it might be nice to have some command to do the same for simple
  aliases.  (But this might get into shady parsing issues if it's more
  than just "I want `foo' to be an alias for an existing `bar' command".)
2011-07-18 15:23:09 -04:00
Eli Barzilay
d7c14cbd3f XREPL documentation. 2011-07-18 14:25:10 -04:00