more drs scribble

svn: r8495
This commit is contained in:
Matthew Flatt 2008-02-01 16:10:08 +00:00
parent d963f4c39e
commit 62d301e87e
5 changed files with 566 additions and 123 deletions

View File

@ -0,0 +1,93 @@
#lang scribble/doc
@(require "common.ss"
scribble/struct)
@(define spacer (hspace 1))
@(define-syntax-rule (print-table [expr cons qq wr] ...)
(*print-table (list (list spacer (scheme expr) spacer (schemeresult cons) spacer (schemeresult qq) spacer (schemeresult wr)) ...)))
@(define (*print-table rows)
(make-table
#f
(cons
(list (make-flow (list (make-paragraph (list spacer))))
(make-flow (list @t{Input expression}))
(make-flow (list (make-paragraph (list spacer))))
(make-flow (list @t{@onscreen{Constructor}}))
(make-flow (list (make-paragraph (list spacer))))
(make-flow (list @t{@onscreen{Quasiquote}}))
(make-flow (list (make-paragraph (list spacer))))
(make-flow (list @t{@onscreen{write}})))
(map (lambda (row)
(map (lambda (e)
(make-flow (list (make-paragraph (list e)))))
row))
rows))))
@title[#:tag "custom" #:style 'toc]{Customizing Language Details}
Different languages supported by DrScheme offer different possible
customizations through the @onscreen{Show Details} button in the
dialog opened by @menuitem["Language" "Choose Language..."].
This chapter scribes some of the most common customizations that are
available, though the actual set available depends on each language,
which is in turn extensible through plug-ins.
@local-table-of-contents[]
@; ----------------------------------------
@section[#:tag "output-syntax"]{Output Syntax}
@section-index["printing format"]
Many Scheme languages support a @onscreen{Output Syntax} choice that
determines how evaluation results are printed in the
@tech{interactions window}. This setting also applies to output
generated by calling @scheme[print] explicitly.
The following table illustrates the difference between the different
output styles:
@print-table[
[(cons 1 2) (cons 1 2) `(1 . 2) (1 . 2)]
[(list 1 2) (list 1 2) `(1 2) (1 2)]
['(1 2) (list 1 2) `(1 2) (1 2)]
[(list (void)) (list (void)) `(,(void)) (#,(@schemeresultfont "#<void>"))]
[`(,(void)) (list (void)) `(,(void)) (#,(schemeresultfont "#<void>"))]
[(vector 1 2 3) (vector 1 2 3) (vector 1 2 3) #(1 2 3)]
[(box 1) (box 1) (box 1) #&1]
[(lambda (x) x) (lambda (a1) ...) (lambda (a1) ...) #,(schemeresultfont "#<procedure>")]
['sym 'sym 'sym sym]
[(make-s 1 2) (make-s 1 2) (make-s 1 2) #(struct:s 1 2)]
['() empty `() ()]
[add1 add1 add1 #,(schemeresultfont "#<procedure:add1>")]
[(delay 1) (delay ...) (delay ...) #,(schemeresultfont "#<promise>")]
[(regexp "a") (regexp "a") (regexp "a") #rx"a"]
]
The @as-index{@onscreen{Constructor} output} mode treats
@scheme[cons], @scheme[vector], and similar primitives as value
constructors, rather than functions. It also treats @scheme[list] as
shorthand for multiple @scheme[cons]'s ending with the empty list.
@onscreen{Constructor} output is especially valuable for beginning
programmers, because output values look the same as input values.
The @as-index{@onscreen{Quasiquote} output} mode is like
@onscreen{Constructor} output, but it uses @scheme[quasiquote]
(abbreviated with @litchar{`}) to print lists, and it uses
@scheme[unquote] (abbreviated with @litchar{,}) to escape back to
@onscreen{Constructor} printing as needed. This mode provides the same
benefit as @onscreen{Constructor} output, in that printed results are
expressions, but it is more convenient for many kinds of data,
especially data that represents expressions.
The @as-index{@onscreen{write} output} mode corresponds to traditional
Scheme printing via the @scheme[write] procedure.
The @as-index{@onscreen{current-print} output} mode, when available,
prints results using the value of the @scheme[current-print]
parameter, which allows the programming running in DrScheme to control
its own output format.

View File

@ -12,6 +12,8 @@ PLT Scheme programming languages.
@include-section["interface-essentials.scrbl"]
@include-section["languages.scrbl"]
@include-section["custom.scrbl"]
@include-section["interface-ref.scrbl"]
@; ----------------------------------------------------------------------

View File

@ -3,14 +3,15 @@
scribble/decode
scribble/eval
scribble/struct
(for-label htdp/convert))
(for-label htdp/convert
scheme/gui/base))
@(define (ioinputfont . s)
(apply tt s))
@(define (iooutputfont . s)
(make-element "schemestdout" (decode-content s)))
@title[#:tag "interface-essentials"]{Interface Essentials}
@title[#:tag "interface-essentials" #:style 'toc]{Interface Essentials}
The DrScheme window has three parts: a row of buttons at the top, two
editing panels in the middle, and a status line at the bottom.
@ -43,9 +44,11 @@ currently evaluating any expression. The @as-index{recycling icon}
flashes while DrScheme is ``recycling'' internal resources, such as
memory.
@local-table-of-contents[]
@; ----------------------------------------------------------------------
@section{Buttons}
@section[#:tag "buttons"]{Buttons}
The left end of the row of buttons in DrScheme contains a miniature
button with the @index['("filename button")]{current file's
@ -397,7 +400,8 @@ second @schemeresult[5] is colored blue, as usual for a result printed
by DrScheme. (The underscore indicates the location of the blinking
caret.)
Output goes into the interaction window directly. If you run the program
Output goes into the @tech{interactions window} directly. If you run
the program
@schememod[
scheme
@ -465,7 +469,62 @@ inserts a newline character into the input stream:
@; ----------------------------------------------------------------------
@section{Creating Executables}
@section{Graphical Syntax}
In addition to normal textual program, DrScheme supports certain
graphical elements as expressions within a program. Plug-in tools can
extend the available graphical syntax, but this section describes some
of the more commonly used elements.
@subsection{Images}
DrScheme's @menuitem["Insert" "Insert Image..."] menu item lets you
select an image file from disk (in various formats such as GIF, PNG,
and BMP), and the image is inserted at the current editing caret.
As an expression an image behaves like a number or string constant: it
evaluates to itself. DrScheme's @tech{interactions window} knows how
to draw image-value results or images displayed via @scheme[print].
A program can manipulate image values in various ways, such as using
the @schememodname[htdp/image] library or as an
@schememodname[image-snip%] value.
@subsection{XML Boxes and Scheme Boxes}
DrScheme has special support for XML concrete syntax. The
@menuitem["Special" "Insert XML Box"] menu item inserts an embedded
editor into your program. In that embedded editor, you type XML's
concrete syntax. When a program containing an XML box is evaluated,
the XML box is translated into an @deftech{x-expression} (or
@deftech{xexpr}), which is an s-expression representation of an XML
expression. Each xexpr is a list whose first element is a symbol
naming the tag, second element is an association list representing
attributes and remaining elements are the nested XML expressions.
XML boxes have two modes for handling whitespace. In one mode, all
whitespace is left intact in the resulting xexpr. In the other mode,
any tag that only contains nested XML expressions and whitespace has
the whitespace removed. You can toggle between these modes by
right-clicking or Control-clicking (Mac OS X) on the top portion of
the XML box.
In addition to containing XML text, XML boxes can also
contain Scheme boxes. Scheme boxes contain Scheme
expressions. These expressions are evaluated and their
contents are placed into the containing XML box's xexpr.
There are two varieties of Scheme box: the standard Scheme
box and the splicing Scheme box. The standard Scheme box
inserts its value into the containing xexpr. The contents of
the splice box must evaluate to a list and the elements of
the list are ``flattened'' into the containing xexpr.
Right-clicking or control-clicking (Mac OS X) on the top of a Scheme
box opens a menu to toggle the box between a Scheme box and
a Scheme splice box.
@; ----------------------------------------------------------------------
@section[#:tag "create-exe"]{Creating Executables}
DrScheme's @onscreen{Create Executable...} menu item lets you create
an executable for your program that you can start without first
@ -521,7 +580,7 @@ Each type has advantages and disadvantages:
In general, DrScheme's @drlang{Module} language gives you the most
options. Most other languages only allow one type of executable. The
teaching langauges create stand-alone executables in
distributions. The lagacy languages create launchers.
distributions. The legacy languages create launchers.
@bold{Tip:} Disable debugging in the language dialog before creating
your executable. With debugging enabled, you will see a stack trace
@ -530,114 +589,3 @@ disable debugging, open the language dialog, click the @onscreen{Show
Details} button, and select @onscreen{No debugging or profiling}, if
it is available.
@;{
@section[#:tag "drscheme:sec:printing"]{Printed Results}
\index{output format}\index{printing format}\index{read-eval-print loop}
This section describes the different formats that DrScheme
uses for printing results in the interactions window. Each
of the different settings here also apply to the
@scheme[print] primitive. That is, printing in the
interactions window is identical to output produced by the
@scheme[print] primitive.
@subsection[#:tag "drscheme:sec:printing:cons"]{Constructor-style Output}
\index{constructor-style output}
%
{\drscheme}'s @defterm{constructor-style output} treats @scheme[cons],
@scheme[vector], and similar primitives as value constructors, rather
than functions. It also treats @scheme[list] as shorthand for multiple
@scheme[cons]'s ending with the empty list. Constructor-style printing
is valuable for beginning computer science students, because output
values look the same as input values.
Results printed in DrScheme's interactions window using
constructor-style printing look different than results printed in
traditional Scheme implementations, which use @scheme[write] to print
results. The table in Figure~\ref{fig:constructor-printing} shows the
differences between values printed in constructor style and values
printed with @scheme[write].
\begin{figure}
\begin{center}
\input{drs-constructor-style-examples.tex}
\end{center}
\caption{Comparison of constructor-style output to @scheme[write]}\label{fig:constructor-printing}
\end{figure}
@subsection[#:tag "drscheme:sec:printing:quasi"]{Quasiquote-style Output}
\index{quasiquote-style output}
%
Constructor-style output is inconvenient for printing S-expression
results that represent programs. For example, the value @scheme['(lambda
(x) (lambda (y) (+ x y)))] prints as
%
\begin{center}
@scheme[(list 'lambda (list 'x) (list 'lambda (list 'y) (list '+ 'x 'y)))]
\end{center}
%
with constructor-style printing.
DrScheme's @defterm{quasiquote-style output} combines the
input--output invariance of constructor-style printing with the
S-expression readability of @scheme[write]. It uses @scheme[quasiquote] to
print lists, and uses @scheme[unquote] to escape back to constructor
style printing for non-lists and non-symbols.
With quasiquote-style printing, the above example prints as:
%
\begin{center}
@scheme[`(lambda (x) (lambda (y) (+ x y)))]
\end{center}
This example:
\begin{center}
@scheme[(list 'lambda (list 'x) (box '(lambda (y) (+ x y))))]
\end{center}
in quasiquote-style printing prints as:
\begin{center}
@scheme[`(lambda (x) ,(box `(lambda (y) (+ x y))))]
\end{center}
@section{XML}
\label{drscheme:sec:xml}
\index{XML}
%
DrScheme has special support for XML concrete syntax. The
@onscreen{Special} menu's @onscreen{Insert XML Box} menu inserts an
embedded editor into your program. In that embedded editor,
you type XML's concrete syntax. When a program containing an
XML box is evaluated, the XML box is translated into an
x-expression (or xexpr). Xexprs are s-expression
representation for XML expressions. Each xexpr is a list
whose first element is a symbol naming the tag, second
element is an association list representing attributes and
remaining elements are the nested XML expressions.
XML boxes have two modes for handling whitespace. In one
mode, all whitespace is left intact in the resulting xexpr.
In the other mode, any tag that only contains nested XML
expressions and whitespace has the whitespace removed. You
can toggle between these modes by right-clicking or
control-clicking (Mac OS X) on the top portion of the XML box.
In addition to containing XML text, XML boxes can also
contain Scheme boxes. Scheme boxes contain Scheme
expressions. These expressions are evaluated and their
contents are placed into the containing XML box's xexpr.
There are two varieties of Scheme box: the standard Scheme
box and the splicing Scheme box. The standard Scheme box
inserts its value into the containing xexpr. The contents of
the splice box must evaluate to a list and the elements of
the list are ``flattened'' into the containing xexpr.
Right-clicking or control-clicking (Mac OS X) on the top of a Scheme
box opens a menu to toggle the box between a Scheme box and
a Scheme splice box.
}

View File

@ -0,0 +1,399 @@
#lang scribble/doc
@(require "common.ss"
scribble/struct)
@(define (defmenuitem . s)
(let ([mi (apply onscreen s)])
@index*[(list (string-append (element->string mi) " menu item"))
(list (elem mi " menu item"))]{@|mi| :}))
@(define lam-str "\u03BB")
@title{Interface Reference}
@section{Menus}
@subsection{@onscreen{File}}
@itemize{
@item{@defmenuitem{New} Creates a new DrScheme window.}
@item{@defmenuitem{Open...} Opens a find-file dialog for choosing
a file to load into a @tech{definitions window}.}
@item{@defmenuitem{Open Recent} Lists recently opened
files. Choosing one of them opens that file for editing.}
@item{@defmenuitem{Install PLT File...} Opens a dialog asking for the
location of the @filepath{.plt} file (either on the local disk or
on the web) and installs the contents of the file.}
@item{@defmenuitem{Revert} Re-loads the file that is currently in the
@tech{definitions window}. All changes since the file was last saved
will be lost.}
@item{@defmenuitem{Save Definitions} Saves the program in the
@tech{definitions window}. If the program has never been saved
before, a save-file dialog appears.}
@item{@defmenuitem{Save Definitions As...} Opens a save-file dialog for
choosing a destination file to save the program in the definitions
window. Subsequent saves write to the newly-selected file.}
@item{@defmenuitem{Save Other} Contains these sub-items
@itemize{
@item{@defmenuitem{Save Definitions As Text...} Like @onscreen{Save
Definitions As...}, but the file is saved in plain-text format (see
@secref["drscheme-file-formats"]). Subsequent saves also write in
plain-text format.}
@item{@defmenuitem{Save Interactions} Saves the contents of the interactions
window to a file. If the interaction constants have never been saved
before, a save-file dialog appears.}
@item{@defmenuitem{Save Interactions As...} Opens a save-file dialog for
choosing a destination file to save the contents of the interactions
window. Subsequent saves write to the newly-selected file.}
@item{@defmenuitem{Save Interactions As Text...} Like @onscreen{Save
Interactions As...}, but the file is saved in plain-text format (see
@secref["drscheme-file-formats"]). Subsequent saves are write in
plain-text format.}
}}
@item{@defmenuitem{Log Definitions and Interactions...} Starts a
running of log of the text in the interactions and definitions
windows, organized by executions. In a directory of your choosing,
DrScheme saves files with the names @filepath{01-definitions},
@filepath{01-interactions}, @filepath{02-definitions},
@filepath{02-interactions}, @|etc| as you interact with various
programs.}
@item{@defmenuitem{Print Definitions...} Opens a dialog for printing
the current program in the @tech{definitions window}.}
@item{@defmenuitem{Print Interactions...} Opens a dialog for printing the
contents of the @tech{interactions window}.}
@item{@defmenuitem{Search in Files...} Opens a dialog where you can
specify the parameters of a multi-file search. The results of the
search are displayed in a separate window.}
@item{@defmenuitem{Close} Closes this DrScheme window. If this window
is the only open DrScheme window, then DrScheme quits, except under
Mac OS X.}
@item{{@onscreen{Quit} or @onscreen{Exit}} Exits DrScheme. (Under Mac
OS X, this menu item is in the Apple menu.)}
}
@; ----------------------------------------
@subsection{@onscreen{Edit}}
All @onscreen{Edit} menu items operate on either the definitions or
interactions window, depending on the location of the selection or
blinking caret. Each window maintains its own Undo and Redo history.
@itemize{
@item{@defmenuitem{Undo} Reverses an editing action. Each window
maintains a history of actions, so multiple @onscreen{Undo}
operations can reverse multiple editing actions.}
@item{@defmenuitem{Redo} Reverses an @onscreen{Undo} action. Each
window (and boxed-subwindow) maintains its own history of
@onscreen{Undo} actions, so multiple @onscreen{Redo} operations can
reverse multiple @onscreen{Undo} actions.}
@item{@defmenuitem{Cut} Copies the selected text to the clipboard and
deletes it from the window.}
@item{@defmenuitem{Copy} Copies the selected text to the clipboard.}
@item{@defmenuitem{Paste} Pastes the current clipboard contents into the
window.}
@item{@defmenuitem{Delete} or @defmenuitem{Clear} Deletes the selected text.}
@item{@defmenuitem{Select All} Highlights the entire text of the buffer.}
@item{@defmenuitem{Wrap Text} Toggles between wrapped text and
unwrapped text in the window.}
@item{@defmenuitem{Find...} Opens a search dialog or, depending on the
preferences, an interactive searching window attached to the frame.}
@item{@defmenuitem{Find Again} Finds the next occurrence of the text
that was last searched for.}
@item{@defmenuitem{Replace & Find Again} Replaces the selection with the
replace string (if it matches the find string) and finds the next
occurrence of the text that was last searched for.}
@item{@defmenuitem{Keybindings}
@itemize{
@item{@defmenuitem{Show Active Keybindings} Shows all of the
keybindings available in the current window.}
@item{@defmenuitem{Add User-defined Keybindings...} Choosing this menu
item opens a file dialog where you can select a file containing
Scheme-definitions of keybindings. See @secref["defining-shortcuts"]
for more information.}
}}
@item{@defmenuitem{Preferences...} Opens the preferences dialog. See
@secref["prefs-explanation"]. (Under Mac OS X, this menu item is in
the Apple menu.)} }
@; ----------------------------------------
@subsection{@onscreen{View}}
One each of the following show/hide pairs of menu items
appears at any time.
@itemize{
@item{@defmenuitem{Show Definitions} Shows the definitions window.}
@item{@defmenuitem{Hide Definitions} Hides the definitions window.}
@item{@defmenuitem{Show Interactions} Shows interactions window.}
@item{@defmenuitem{Hide Interactions} Hides interactions window.}
@item{@defmenuitem{Show Program Contour} Shows a ``20,000 foot''
overview window along the edge of the DrScheme
window. Each pixel in this window corresponds to a letter
in the program text.}
@item{@defmenuitem{Hide Program Contour} Hides the contour window.}
@item{@defmenuitem{Show Module Browser} Shows the module DAG rooted
at the currently opened file in DrScheme.}
@item{@defmenuitem{Hide Module Browser} Hides the module browser.}
@item{@defmenuitem{Show Toolbar} Makes the toolbar (along the top of
DrScheme's window) and the status line (along the bottom) visible.}
@item{@defmenuitem{Hide Toolbar} Hides the toolbar (along the top of
DrScheme's window) and the status line (along the bottom).}
@item{@defmenuitem{Show Profile} Shows the current profiling
report. This menu is useful only if you have enabled profiling in
the @onscreen{Choose Language...} dialog's @onscreen{Details}
section. Profiling does not apply to all languages.}
@item{@defmenuitem{Hide Profile} Hides any profiling
information currently displayed in the DrScheme window.}
@item{@defmenuitem{Show Tracing} Shows a trace of functions called since
the last time @onscreen{Run} was clicked. This menu is useful only if
you have enabled tracing in the @onscreen{Choose Language...} dialog's
@onscreen{Details} section. Profiling does not apply to all languages.}
@item{@defmenuitem{Hide Tracing} Hides the tracing display.}
@item{@defmenuitem{Split} Splits the current window in half to
allow for two different portions of the current window to
be visible simultaneously.}
@item{@defmenuitem{Collapse} If the window has been split before, this
menu item becomes enabled, allowing you to collapse the split
window.}
}
Note: whenever a program is run, the interactions window is made
visible if it is hidden.
@; ----------------------------------------
@subsection{@onscreen{Language}}
@itemize{
@item{@defmenuitem{Choose Language...} Opens a dialog for selecting
the current evaluation language. Click @onscreen{Run} to make the
language active in the interactions window. See
@secref["choose-language"] for more information about the
languages.}
@item{@defmenuitem{Add Teachpack...} Opens a find-file dialog for
choosing a teachpack to extend the current language. Click
@onscreen{Run} to make the teachpack available in the interactions
windows. See @secref["extending-drscheme"] for information on
creating teachpacks.}
@item{@defmenuitem{Clear All Teachpacks} Clears all of the current
teachpacks. Click @onscreen{Run} to clear the teachpack from the
interactions window.}
}
In addition to the above items, a menu item for each teachpack that
clears only the corresponding teachpack.
@; ----------------------------------------
@subsection{@onscreen{Scheme}}
@itemize{
@item{@defmenuitem{Run} Resets the interactions window and runs the
program in the definitions window.}
@item{@defmenuitem{Break} Breaks the current evaluation.}
@item{@defmenuitem{Kill} Terminates the current evaluation.}
@item{@defmenuitem{Clear Error Highlight} Removes the red
background that signals the source location of an error.}
@item{@defmenuitem{Create Executable...} Creates a separate launcher
for running your program. See @secref["executables"] for more
info.}
@item{@defmenuitem{Module Browser...} Prompts for a file and
then opens a window showing the module import structure
for the module import DAG starting at the selected module.
The module browser window contains a square for each
module. The squares are colored based on the number of
lines of code in the module. If a module has more lines of
code, it gets a darker color.
In addition, for each normal import, a blue line drawn is
from the module to the importing module. Similarly, purple
lines are drawn for each for-syntax import. In the initial
module layout, modules to the left import modules to the
right, but since modules can be moved around
interactively, that property might not be preserved.
To open the file corresponding to the module, right-click or
control-click (Mac OS X) on the box for that module.}
@item{@defmenuitem{Reindent} Indents the selected text according to
the standard Scheme formatting conventions. (Pressing the Tab key
has the same effect.)}
@item{@defmenuitem{Reindent All} Indents all of the text in either
the definitions or interactions window, depending on the location of
the selection or blinking caret.}
@item{@defmenuitem{Comment Out with Semicolons} Puts @litchar{;}
characters at each of the beginning of each selected line of text.}
@item{@defmenuitem{Comment Out with a Box} Boxes the selected
text with a comment box.}
@item{@defmenuitem{Uncomment} Removes all @litchar{;} characters at
the start of each selected line of text or removes a comment box
around the text. Uncommenting only removes a @litchar{;} if it
appears at the start of a line and it only removes the first
@litchar{;} on each line.}
}
@subsection{@onscreen{Insert}}
@itemize{
@item{@defmenuitem{Insert Comment Box} Inserts a box that is ignored
by DrScheme; use it to write comments for people who read your
program.}
@item{@defmenuitem{Insert Image...} Opens a find-file dialog for
selecting an image file in GIF, BMP, XBM, XPM, PNG, or JPG
format. The image is treated as a value.}
@item{@defmenuitem{Insert Fraction...} Opens a dialog for a
mixed-notation fraction, and inserts the given fraction into the
current editor.}
@item{@defmenuitem{Insert Large Letters...} Opens a dialog for a line of
text, and inserts a large version of the text (using semicolons and
spaces).}
@item{@defmenuitem{Insert @|lam-str|} Inserts the symbol @|lam-str|
(as a Unicode character) into the program. The @|lam-str| symbol is
normally bound the same as @scheme[lambda].}
@item{@defmenuitem{Insert Java Comment Box} Inserts a box that is
ignored by DrScheme. Unlike the @onscreen{Insert Comment Box} menu
item, this is designed for the ProfessorJ language levels. See
@secref["profj"].}
@item{@defmenuitem{Insert Java Interactions Box} Inserts a box that
will allows Java expressions and statements within Scheme
programs. The result of the box is a Scheme value corresponding to
the result(s) of the Java expressions. At this time, Scheme values
cannot enter the box. The box will accept one Java statement or
expression per line.}
@item{@defmenuitem{Insert XML Box} Inserts an XML; see
@secref["xml-boxes"] for more information.}
@item{@defmenuitem{Insert Scheme Box} Inserts a box to contain Scheme
code, typically used inside an XML box; see @secref["xml-boxes"].}
@item{@defmenuitem{Insert Scheme Splice Box} Inserts a box to contain Scheme
code, typically used inside an XML box; see also @secref["xml-boxes"].}
@item{@defmenuitem{Insert Pict Box} Creates a box for generating a
Slideshow picture. Inside the pict box, insert and arrange Scheme
boxes that produce picture values.}
}
@; ----------------------------------------
@subsection{@onscreen{Windows}}
@itemize{
@item{@defmenuitem{Bring Frame to Front...} Opens a window that lists
all of the opened DrScheme frames. Selecting one of them brings the
window to the front.}
@item{@defmenuitem{Most Recent Window} Toggles between the currently
focused window and the one that most recently had the focus.}
}
Additionally, after the above menu items, this menu contains
an entry for each window in DrScheme. Selecting a menu item
brings the corresponding window to the front.
@; ----------------------------------------
@subsection{@onscreen{Help}}
@itemize{
@item{@defmenuitem{Help Desk} Opens the Help Desk. This is the clearing
house for all documentation about DrScheme and its language.}
@item{@defmenuitem{About DrScheme...} Shows the credits for DrScheme.}
@item{@defmenuitem{Related Web Sites} Provides links to related web sites.}
@item{@defmenuitem{Tool Web Sites} Provides links to web sites for
installed tools.}
@item{@defmenuitem{Interact with DrScheme in English} Changes DrScheme's
interface to use English; the menu item appears only when the
current language is not English. Additional menu items switch
DrScheme to other languages.}
}

View File

@ -53,12 +53,13 @@ without a @hash-lang[] prefix:
DrScheme. It evaluates a program in the same way as @scheme[load],
and it starts by importing the following modules:
@schememodname[mzscheme], @schememodname[scheme/gui/base],
@schememodname[mzlib/etc], @schememodname[mzlib/file],
@schememodname[mzlib/list], @schememodname[mzlib/unit],
@schememodname[mzlib/include], @schememodname[mzlib/defmacro],
@schememodname[mzlib/pretty], @schememodname[mzlib/string],
@schememodname[mzlib/thread], @schememodname[mzlib/math],
@schememodname[mzlib/match], and @schememodname[mzlib/shared].}
@schememodname[mzlib/class], @schememodname[mzlib/etc],
@schememodname[mzlib/file], @schememodname[mzlib/list],
@schememodname[mzlib/unit], @schememodname[mzlib/include],
@schememodname[mzlib/defmacro], @schememodname[mzlib/pretty],
@schememodname[mzlib/string], @schememodname[mzlib/thread],
@schememodname[mzlib/math], @schememodname[mzlib/match], and
@schememodname[mzlib/shared].}
@item{The @as-index{@drlang{Swindle} language} starts with the same
bindings as @schememodname[swindle], and evaluates the program like