more drs scribble
svn: r8495
This commit is contained in:
parent
d963f4c39e
commit
62d301e87e
93
collects/scribblings/drscheme/custom.scrbl
Normal file
93
collects/scribblings/drscheme/custom.scrbl
Normal 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.
|
|
@ -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"]
|
||||
|
||||
@; ----------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
}
|
399
collects/scribblings/drscheme/interface-ref.scrbl
Normal file
399
collects/scribblings/drscheme/interface-ref.scrbl
Normal 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.}
|
||||
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user