racket/collects/scribblings/reference/help.scrbl
Matthew Flatt 5b984bc34e tweak mzscheme's help form
svn: r8036
2007-12-17 16:23:54 +00:00

83 lines
2.6 KiB
Racket

#lang scribble/doc
@(require "mz.ss"
(for-label scheme/help
net/url
scheme/gui))
@title{Interactive Help}
@declare-exporting[scheme/help scheme/init]
@defmodule*/no-declare[(scheme/help)]{The @scheme[help] form documented
in this section is provided by the @schememodname[scheme/help] and
@schememodname[scheme/init] libraries, which means that it is
available when @exec{mzscheme} is started with no command-line
arguments. It is not provided by @scheme[scheme] or
@scheme[scheme/base].}
@deftogether[(
@defidform[help]
@defform/none[#:literals (help) (help id)]
@defform/none[#:literals (help) (help id #:from module-path)]
@defform/none[#:literals (help) (help #:search datum ...)]
)]{
Searches the documentation, and opens a web browser (using the user's
selected browser) to display the results. See
@schememodname[net/sendurl] for information on how the user's browser
is launched.
A simple @scheme[help] or @scheme[(help)] form opens this page.
A @scheme[(help id)] form looks for documentation specific to the
current binding of @scheme[id]. For example,
@schemeblock[
(require net/url)
(help url->string)
]
opens a web browser to show the documentation for @scheme[url->string]
from the @schememodname[net/url] library.
For the purposes of @scheme[help], a @scheme[for-label] require
introduces a binding without actually executing the
@schememodname[net/url] library---for cases when you want to check
documentation, but cannot or do not want to run the providing module.
@schemeblock[
(require scheme/gui) (code:comment #, @t{does not work in @exec{mzscheme}})
(require (for-label scheme/gui)) (code:comment #, @t{ok in @exec{mzscheme}})
(help frame%)
]
If @scheme[id] has no for-label and normal binding, then @scheme[help]
lists all libraries that are known to export a binding for
@scheme[id].
The @scheme[(help id #:from module-path)] variant is similar to
@scheme[(help id)], but using only the exports of
@scheme[module-path]. (The @scheme[module-path] module is required
@scheme[for-label] in a temporary namespace.)
@schemeblock[
(help frame% #:from scheme/gui) (code:comment #, @t{equivalent to the above})
]
The @scheme[(help #:search datum ...)] form performs a general
search. Searching uses strings; each string @scheme[datum] is used
as-is, and any other form of @scheme[datum] is converted to a string
using @scheme[display]. No @scheme[datum] is evaluated as an
expression.
For example,
@schemeblock[
(help #:search "web browser" firefox)
]
searches the documentation index for references that include the
phrase ``web browser'' or ``firefox.''
}