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".)
(cherry picked from commit 3c1e624916
)
This commit is contained in:
parent
3223a656a6
commit
e8d3223ce5
|
@ -453,7 +453,7 @@ customize and extend it, but this will be added in the future.
|
|||
|
||||
Meanwhile, if you're interested in tweaking XREPL, the @cmd[enter]
|
||||
command can be used as usual to go into its implementation. For
|
||||
example:
|
||||
example --- change an XREPL parameter:
|
||||
@verbatim[#:indent 4]{
|
||||
-> ,en xrepl/xrepl
|
||||
xrepl/xrepl> ,e
|
||||
|
@ -463,6 +463,14 @@ example:
|
|||
123
|
||||
-> ~
|
||||
123}
|
||||
or add a command:
|
||||
@verbatim[#:indent 4]{
|
||||
-> ,en xrepl/xrepl
|
||||
xrepl/xrepl> (defcommand eli "stuff" "eli says" ["Make eli say stuff"]
|
||||
(printf "Eli says: ~a\n" (getarg 'line)))
|
||||
xrepl/xrepl> ,top
|
||||
-> ,eli moo
|
||||
Eli says: moo}
|
||||
While this is not intended as @emph{the} way to extend and customize
|
||||
XREPL, it is a useful debugging tool should you want to do so.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user