My $0.02: Most of the time when I hit the docs for a function, all of
the information I need is in the blue box: usually I'm looking at the
contracts, but the argument labels help me when I forget the order
things go in. I'd be happy with a tool that showed just the contents of
the blue boxes, formatted as text.
At the repl, (blue-box id)---names changed to protect the
unimplemented---should print out the header and contract information
associated with id. Perhaps (blue-box "id") should print out the
blue-box information and require line for everything matching "id"
exactly. And other search options as needed.
In DrRacket, there should be a way of getting the same information in an
on-demand panel (like the find/replace panel or
error-during-check-syntax panel). It must be available without running
Check Syntax, however, through some combination of search, caching,
heuristics, and mind-reading.
It would be great if it were also available in emacs/quack etc.
Ryan
Eli Barzilay wrote:
Two hours ago, Greg Hendershott wrote:
I wonder whether help could display contracts if the module use
provide/contract to export f.
I like this idea.
I don't think that combining all of these is right. To go over the
various pieces there are three that are very different:
1. (help id) -- opens a browser window on the documentation for `id'
2. there's the description of which module some identifier is coming
from, where was it defined, and what name was it defined as (some
of it is what check-syntax shows, and also what my interactive
,describe command does)
3. and there's the description of a value
The first is very different from the other two -- I often want to see
#2 but don't want a browser window, or if I want to look at the docs
then I don't need #2. So lumping them together doesn't sound right.
So it might make a little more sense to bundle all of the light-weight
quick output features, like #2 and #3, but they're very different from
each other -- #2 is syntactic and #3 uses the value. So merging them
into a single facility can be confusing.
[Re python, my guess was that it's more limited in having no
syntactic-level tool -- and I do see that things like help(+) or
help(if) don't work. And BTW, after only a few experiments, python's
`help' looks like a mess: help(3) is the same as help(int), help("3")
does some search, etc etc. Hardly looks like a good tool to
imitate...]
Maybe go a step further and allow per-parameter doc-string-ettes?
Because seeing
get-pure-port: (url? (listof string?) . -> . input-port?)
Might still be too opaque. "What is this (listof string?) you speak
of?", sayeth the aspiring Racketeer on the PLimoTh PLanTation.
Whereas if contracts could have optional doc-string-ettes:
(url? ["URL"] (listof string?) ["headers"] . -> . input-port?)
Then help could display something very close indeed to the shaded
blue box summary on docs.racket.org.
Ideally, the documentation could be rendered in some way that could be
displayed in text, but that will take some work. And that's still
different from a simpler doc-string thing.
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users