Some random tidyings.

This commit is contained in:
Eli Barzilay 2011-02-16 15:26:11 -05:00
parent 8886b87876
commit 1be26400cb
7 changed files with 1279 additions and 1531 deletions

View File

@ -9,216 +9,223 @@
The preferences dialog consists of several panels. The preferences dialog consists of several panels.
@section{@onscreen{Font}} @section{@onscreen{Font}}
This panel controls the main font used by DrRacket. This panel controls the main font used by DrRacket.
@section{@onscreen{Colors}} @section{@onscreen{Colors}}
The @onscreen{Colors} panel has several sub-panels that let you The @onscreen{Colors} panel has several sub-panels that let you
configure the colors that DrRacket uses for the editor background, configure the colors that DrRacket uses for the editor background, for
for highlighting matching parentheses, for the online coloring for highlighting matching parentheses, for the online coloring for Racket
Racket and Java modes, for @onscreen{Check Syntax}, and for the and Java modes, for @onscreen{Check Syntax}, and for the colors of the
colors of the text in the @tech{interactions window}. text in the @tech{interactions window}.
It also has two buttons, @onscreen{White on Black} and @onscreen{Black
on White}, which set a number of defaults for the color preferences and
change a few other aspects of DrRacket's behavior to make DrRacket's
colors look nicer for those two modes.
It also has two buttons, @onscreen{White on Black} and
@onscreen{Black on White}, which set a number of defaults for the
color preferences and change a few other aspects of DrRacket's
behavior to make DrRacket's colors look nicer for those two modes.
@section{@onscreen{Editing}} @section{@onscreen{Editing}}
The @onscreen{Editing} panel consists of several sub-panels: The @onscreen{Editing} panel consists of several sub-panels:
@itemize[ @itemize[
@item{@onscreen{Indenting} @item{@onscreen{Indenting}
This panel controls which keywords DrRacket recognizes for This panel controls which keywords DrRacket recognizes for
indenting, and how each keyword is treated.} indenting, and how each keyword is treated.}
@item{@onscreen{Square bracket} @item{@onscreen{Square bracket}
This panel controls which keywords DrRacket uses to determine This panel controls which keywords DrRacket uses to determine when
when to rewrite @litchar["["] to @litchar["("]. For to rewrite @litchar["["] to @litchar["("]. For @racket[cond]-like
@racket[cond]-like keywords, the number in parenthesis indicates keywords, the number in parenthesis indicates how many
how many sub-expressions are skipped before square brackets are sub-expressions are skipped before square brackets are started.
started.
See @secref["editor"] for details on how the entries in the See @secref["editor"] for details on how the entries in the
columns behave.} columns behave.}
@item{@onscreen{General} @item{@onscreen{General}
@itemize[@item{@PrefItem{Map delete to backspace} --- If checked, the editor
treats the Delete key like the Backspace key.}
@item{@PrefItem{Wrap words in editor buffers} --- If checked, @itemize[
DrRacket editors auto-wrap text lines by default. Changing this @item{@PrefItem{Map delete to backspace} --- If checked, the editor
preference affects new windows only.} treats the Delete key like the Backspace key.}
@item{@PrefItem{Wrap words in editor buffers} --- If checked,
DrRacket editors auto-wrap text lines by default. Changing
this preference affects new windows only.}
@item{@PrefItem{Reuse existing frames when opening new files} ---
If checked, new files are opened in the same DrRacket
window, rather than creating a new DrRacket window for each
new file.}
@item{@PrefItem{Enable keybindings in menus} --- If checked, some
DrRacket menu items have keybindings. Otherwise, no menu
items have key bindings. This preference is designed for
people who are comfortable editing in Emacs and find the
standard menu keybindings interfere with the Emacs
keybindings.}
@item{@PrefItem{Treat command key as meta} --- If checked,
DrRacket will use the command key for some Emacs-like
keybindings, instead of using it for menu shortcuts. This
option is only available under Mac OS X.}
@item{@PrefItem{Color syntax interactively} --- If checked,
DrRacket colors your syntax as you type.}
@item{@PrefItem{Search using anchors} --- If checked, DrRacket's
searching mode will jump directly to the first search hit,
using an ``anchor'' to determine where to search if the
search string changes.}
@item{@PrefItem{Normalize pasted strings} --- If checked, DrRacket
adjusts strings that are pasted into the editor to avoid
confusion. For example, non-breaking spaces look just like
spaces but are not considered separators like ordinary
spaces are. If this is checked DrRacket will automatically
turn those non-breaking spaces into regular spaces.
Similarly with other (less common) characters.}
@item{@PrefItem{Enable overwrite mode keybindings} --- If checked,
DrRacket enables the insert keybinding to swap into
overwrite mode}
@item{@PrefItem{Show line numbers} --- If checked, DrRacket shows
line numbers for the file being edited in the left-hand
column}]}
@item{@PrefItem{Reuse existing frames when opening new files} --- @item{@onscreen{Racket}
If checked, new files are opened in the same DrRacket window,
rather than creating a new DrRacket window for each new file.}
@item{@PrefItem{Enable keybindings in menus} --- If checked, some @itemize[
DrRacket menu items have keybindings. Otherwise, no menu items @item{@PrefItem{Highlight between matching parens} --- If checked,
have key bindings. This preference is designed for people who are the editor marks the region between matching parenthesis
comfortable editing in Emacs and find the standard menu with a gray background (in color) or a stipple pattern (in
keybindings interfere with the Emacs keybindings.} monochrome) when the blinking caret is next to a
parenthesis.}
@item{@PrefItem{Automatically adjust closing parens} --- If
checked, the editor automatically converts a typed
@litchar[")"] to @litchar["]"] to match @litchar["["], or it
converts a typed @litchar["]"] to @litchar[")"] to match
@litchar["("].}
@item{@PrefItem{Automatically adjust opening square brackets} If
checked, the editor changes typed @litchar["["] to match the
context (as explained in @secref["editor"]).}
@item{@PrefItem{Flash paren match} --- If checked, typing a
closing parenthesis, square bracket, or quotation mark
flashes the matching open parenthesis/bracket/quote.}]}
]
@item{@PrefItem{Treat command key as meta} --- If checked, DrRacket will use the command key for some Emacs-like keybindings, instead of using it for menu shortcuts. This option is only available under Mac OS X.}
@item{@PrefItem{Color syntax interactively} --- If checked, DrRacket
colors your syntax as you type.}
@item{@PrefItem{Search using anchors} --- If checked, DrRacket's searching mode will jump directly to the first search hit, using an ``anchor'' to determine where to search if the search string changes.}
@item{@PrefItem{Normalize pasted strings} --- If checked, DrRacket adjusts strings that are pasted into the editor to avoid confusion. For example, non-breaking spaces look just like spaces but are not considered separators like ordinary spaces are. If this is checked DrRacket will automatically turn those non-breaking spaces into regular spaces. Similarly with other (less common) characters.}
@item{@PrefItem{Enable overwrite mode keybindings} --- If checked, DrRacket enables the insert keybinding to swap into overwrite mode}
@item{@PrefItem{Show line numbers} --- If checked, DrRacket shows line numbers for the file being edited in the left-hand column}
]}
@item{@onscreen{Racket}
@itemize[
@item{@PrefItem{Highlight between matching parens} --- If checked, the
editor marks the region between matching parenthesis with a gray
background (in color) or a stipple pattern (in monochrome) when
the blinking caret is next to a parenthesis.}
@item{@PrefItem{Automatically adjust closing parens} --- If checked, the editor
automatically converts a typed @litchar[")"] to @litchar["]"] to
match @litchar["["], or it converts a typed @litchar["]"] to
@litchar[")"] to match @litchar["("].}
@item{@PrefItem{Automatically adjust opening square brackets} If checked, the editor changes
typed @litchar["["] to match the context (as explained in
@secref["editor"]).}
@item{@PrefItem{Flash paren match} --- If checked, typing a closing
parenthesis, square bracket, or quotation mark flashes the
matching open parenthesis/bracket/quote.}
]}]
@section{@onscreen{Warnings}} @section{@onscreen{Warnings}}
@itemize[ @itemize[
@item{@PrefItem{Ask before changing save format} --- If checked, @item{@PrefItem{Ask before changing save format} --- If checked,
DrRacket consults the user before saving a file in non-text format DrRacket consults the user before saving a file in non-text format
(see @secref["drracket-file-formats"]).} (see @secref["drracket-file-formats"]).}
@item{@PrefItem{Verify exit} --- If checked, DrRacket consults the @item{@PrefItem{Verify exit} --- If checked, DrRacket consults the
user before exiting.} user before exiting.}
@item{@PrefItem{Ask about normalizing strings} --- If checked, DrRacket @item{@PrefItem{Ask about normalizing strings} --- If checked, DrRacket
consults the user before normalizing a string pasted into the editor.} consults the user before normalizing a string pasted into the
editor.}
@item{@PrefItem{Only warn once when executions and interactions are @item{@PrefItem{Only warn once when executions and interactions are not
not synchronized} --- If checked, DrRacket warns the user on the synchronized} --- If checked, DrRacket warns the user on the first
first interaction after the definitions window, language, or interaction after the definitions window, language, or teachpack
teachpack is changed without a corresponding click on is changed without a corresponding click on @onscreen{Run}.
@onscreen{Run}. Otherwise, the warning appears on every Otherwise, the warning appears on every interaction.}
interaction.}
@item{@PrefItem{Ask about clearing test coverage} --- If checked, @item{@PrefItem{Ask about clearing test coverage} --- If checked, when
when test coverage annotations are displayed DrRacket prompts test coverage annotations are displayed DrRacket prompts about
about removing them. This setting only applies to the PLT removing them. This setting only applies to the PLT languages.
languages. DrRacket never asks in the teaching languages.} DrRacket never asks in the teaching languages.}
@item{@PrefItem{Check for newer Racket versions} --- If @item{@PrefItem{Check for newer Racket versions} --- If checked,
checked, DrRacket periodically polls a server to determine DrRacket periodically polls a server to determine whether a newer
whether a newer version of DrRacket is available.} version of DrRacket is available.}
]
]
@section{@onscreen{General}} @section{@onscreen{General}}
@itemize[ @itemize[
@item{@PrefItem{Number of recent items} --- controls the @item{@PrefItem{Number of recent items} --- controls the length of the
length of the @onscreen{Open Recent} menu (in the @onscreen{File} @onscreen{Open Recent} menu (in the @onscreen{File} menu).}
menu).}
@item{@PrefItem{Auto-save files} --- If checked, the editor @item{@PrefItem{Auto-save files} --- If checked, the editor generates
generates autosave files (see @secref["drracket-autosave-files"]) autosave files (see @secref["drracket-autosave-files"]) for files
for files that have not been saved after five minutes.} that have not been saved after five minutes.}
@item{@PrefItem{Backup files} --- If checked, when saving a file for @item{@PrefItem{Backup files} --- If checked, when saving a file for the
the first time in each editing session, the original copy of the first time in each editing session, the original copy of the file
file is copied to a backup file in the same directory. The backup is copied to a backup file in the same directory. The backup
files have the same name as the original, except that they end in files have the same name as the original, except that they end in
either @indexed-file{.bak} or @indexed-file{~}.} either @indexed-file{.bak} or @indexed-file{~}.}
@item{@PrefItem{Show status-line} --- If checked, DrRacket shows a @item{@PrefItem{Show status-line} --- If checked, DrRacket shows a
status line at the bottom of each window.} status line at the bottom of each window.}
@item{@PrefItem{Count column numbers from one} --- If checked, the @item{@PrefItem{Count column numbers from one} --- If checked, the
status line's column counter counts from one. Otherwise, it counts status line's column counter counts from one. Otherwise, it
from zero.} counts from zero.}
@item{@PrefItem{Display line numbers in buffer; not character @item{@PrefItem{Display line numbers in buffer; not character offsets}
offsets} --- If checked, the status line shows a --- If checked, the status line shows a
@nonterm{line}:@nonterm{column} display for the current selection @nonterm{line}:@nonterm{column} display for the current selection
rather than the character offset into the text.} rather than the character offset into the text.}
@item{@PrefItem{Automatically print to PostScript file} --- If @item{@PrefItem{Automatically print to PostScript file} --- If checked,
checked, printing will automatically save PostScript files. If printing will automatically save PostScript files. If not,
not, printing will use the standard printing mechanisms for your printing will use the standard printing mechanisms for your
computer.} computer.}
@item{@PrefItem{Open files in separate tabs (not separate windows)} @item{@PrefItem{Open files in separate tabs (not separate windows)} ---
-- If checked, DrRacket will use tabs in the front-most window to If checked, DrRacket will use tabs in the front-most window to
open new files, rather than creating new windows for new files.} open new files, rather than creating new windows for new files.}
@item{@PrefItem{Automatically open interactions window when running @item{@PrefItem{Automatically open interactions window when running a
a program} -- If checked, DrRacket shows the interactions window program} --- If checked, DrRacket shows the interactions window
(if it is hidden) when a program is run.} (if it is hidden) when a program is run.}
@item{@PrefItem{Automatically switch to the module language when opening a module} -- @item{@PrefItem{Automatically switch to the module language when opening
If checked, DrRacket will recognize files that have a @tt{#lang} line a module} --- If checked, DrRacket will recognize files that have
and adjust the language setting automatically.} a @tt{#lang} line and adjust the language setting automatically.}
@item{@PrefItem{Put the interactions window beside the definitions @item{@PrefItem{Put the interactions window beside the definitions
window} -- If checked, DrRacket puts the interactions window to the window} --- If checked, DrRacket puts the interactions window to
right of the definitions window. By default, the interactions the right of the definitions window. By default, the interactions
window is below the definitions window.} window is below the definitions window.}
@item{@PrefItem{Always show the #lang line in the Module language} -- @item{@PrefItem{Always show the #lang line in the Module language} ---
If checked, the module language always shows the @hash-lang[] If checked, the module language always shows the @hash-lang[] line
line (even when it would ordinarily be scrolled off of the page), assuming (even when it would ordinarily be scrolled off of the page),
that the @hash-lang[] line is the first line in the file. assuming that the @hash-lang[] line is the first line in the file.}
}
]
]
@section{@onscreen{Profiling}} @section{@onscreen{Profiling}}
This preference panel configures the profiling report. The band of This preference panel configures the profiling report. The band of
color shows the range of colors that profiled functions take color shows the range of colors that profiled functions take on. Colors
on. Colors near the right are used for code that is not invoked near the right are used for code that is not invoked often and colors on
often and colors on the right are used for code that is invoked the right are used for code that is invoked often.
often.
If you are interested in more detail at the low end, choose the
@onscreen{Square root} check box. If you are interested in more detail
at the upper end, choose the @onscreen{Square} check box.
If you are interested in more detail at the low end, choose the
@onscreen{Square root} check box. If you are interested in more
detail at the upper end, choose the @onscreen{Square} check box.
@section{@onscreen{Browser}} @section{@onscreen{Browser}}
This preferences panel allows you to configure your HTTP This preferences panel allows you to configure your HTTP proxy. Contact
proxy. Contact your system administrator for details. your system administrator for details.
@section{@onscreen{Tools}} @section{@onscreen{Tools}}
This preference panel allows you to configure the currently active plugins. This preference panel allows you to configure the currently active
plugins.

View File

@ -25,7 +25,7 @@
for more info about edit sequences. for more info about edit sequences.
} }
@defmethod*[(((run-after-edit-sequence (thunk (-> void)) (tag (union symbol? |#f|) |#f|)) void))]{ @defmethod*[(((run-after-edit-sequence (thunk (-> void)) (tag (union symbol? #f) #f)) void))]{
This method is used to install callbacks that will be run after any This method is used to install callbacks that will be run after any
edit-sequence completes. edit-sequence completes.
@ -40,7 +40,7 @@
@method[editor:basic<%> run-after-edit-sequence]'s argument will be called. @method[editor:basic<%> run-after-edit-sequence]'s argument will be called.
} }
@defmethod*[(((get-top-level-window) (union |#f| (is-a?/c top-level-window<%>))))]{ @defmethod*[(((get-top-level-window) (union #f (is-a?/c top-level-window<%>))))]{
Returns the Returns the
@scheme[top-level-window<%>] @scheme[top-level-window<%>]
currently associated with this buffer. currently associated with this buffer.
@ -53,7 +53,7 @@
Returns @scheme[#t] if the file on disk has been modified, by some other program. Returns @scheme[#t] if the file on disk has been modified, by some other program.
} }
@defmethod*[(((save-file/gui-error (filename (union path |#f|) |#f|) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) same copy) (quote same)) (show-errors? boolean |#t|)) boolean?))]{ @defmethod*[(((save-file/gui-error (filename (union path #f) #f) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) same copy) (quote same)) (show-errors? boolean |#t|)) boolean?))]{
This method is an alternative to This method is an alternative to
@method[editor<%> save-file]. Rather than showing errors via the original stdout, it @method[editor<%> save-file]. Rather than showing errors via the original stdout, it
opens a dialog with an error message showing the error. opens a dialog with an error message showing the error.
@ -63,7 +63,7 @@
no error occurred and @scheme[#f] if an error occurred. no error occurred and @scheme[#f] if an error occurred.
} }
@defmethod*[(((load-file/gui-error (filename (union string |#f|) |#f|) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) (quote same) (quote copy)) (quote guess)) (show-errors? boolean |#t|)) boolean?))]{ @defmethod*[(((load-file/gui-error (filename (union string #f) #f) (format (union (quote guess) (quote standard) (quote text) (quote text-force-cr) (quote same) (quote copy)) (quote guess)) (show-errors? boolean |#t|)) boolean?))]{
This method is an alternative to This method is an alternative to
@method[editor<%> load-file]. Rather than showing errors via the original stdout, it @method[editor<%> load-file]. Rather than showing errors via the original stdout, it
opens a dialog with an error message showing the error. opens a dialog with an error message showing the error.
@ -347,7 +347,7 @@
The class that this mixin produces uses the same initialization The class that this mixin produces uses the same initialization
arguments as its input. arguments as its input.
@defmethod*[#:mode override (((set-filename (name string) (temp? boolean |#f|)) void))]{ @defmethod*[#:mode override (((set-filename (name string) (temp? boolean #f)) void))]{
Updates the filename on each frame displaying this editor, for each Updates the filename on each frame displaying this editor, for each
frame that matches frame that matches
@ -399,7 +399,7 @@
Returns @scheme[#t]. Returns @scheme[#t].
} }
@defmethod*[(((do-autosave) (union |#f| string)))]{ @defmethod*[(((do-autosave) (union #f string)))]{
This method is called to perform the autosaving. This method is called to perform the autosaving.
See also See also
@scheme[autosave:register] @scheme[autosave:register]

View File

@ -7,272 +7,251 @@
@definterface[scheme:sexp-snip<%> ()]{ @definterface[scheme:sexp-snip<%> ()]{
@defmethod*[(((get-saved-snips) (listof snip%)))]{ @defmethod*[(((get-saved-snips) (listof snip%)))]{
This returns the list of snips hidden by the sexp snip. This returns the list of snips hidden by the sexp snip.
} }
} }
@defclass[scheme:sexp-snip% snip% (scheme:sexp-snip<%> readable-snip<%>)]{ @defclass[scheme:sexp-snip% snip% (scheme:sexp-snip<%> readable-snip<%>)]{
@defmethod*[#:mode override
@defmethod*[#:mode override (((get-text (offset number) (num number) (flattened? boolean |#f|)) string))]{ (((get-text (offset number) (num number)
(flattened? boolean #f))
Returns the concatenation of the text for all of the hidden string))]{
snips. Returns the concatenation of the text for all of the hidden snips.
} }
@defmethod*[#:mode override (((copy) (is-a?/c scheme:sexp-snip%)))]{ @defmethod*[#:mode override (((copy) (is-a?/c scheme:sexp-snip%)))]{
Returns a copy of this snip that includes the hidden snips. Returns a copy of this snip that includes the hidden snips.
} }
@defmethod*[#:mode override (((write (stream-out editor-stream-out%)) void))]{ @defmethod*[#:mode override (((write (stream-out editor-stream-out%)) void))]{
Saves the embedded snips Saves the embedded snips
} }
@defmethod*[#:mode override (((draw (dc dc<%>) (x real) (y real) (left real) (top real) (right real) (bottom real) (dx real) (dy real) (draw-caret symbol?)) void))]{ @defmethod*[#:mode override
(((draw (dc dc<%>) (x real) (y real)
(left real) (top real) (right real) (bottom real)
(dx real) (dy real) (draw-caret symbol?))
void))]{
Draws brackets with a centered ellipses between them. Draws brackets with a centered ellipses between them.
} }
@defmethod*[#:mode override (((get-extent (dc (is-a?/c dc<%>)) (x real) (y real) (w boxed |#f|) (h boxed |#f|) (descent boxed |#f|) (space boxed |#f|) (lspace boxed |#f|) (rspace boxed |#f|)) void))]{ @defmethod*[#:mode override
(((get-extent (dc (is-a?/c dc<%>)) (x real) (y real)
(w boxed #f) (h boxed #f)
(descent boxed #f) (space boxed #f)
(lspace boxed #f) (rspace boxed #f))
void))]{
Returns a size corresponding to what this snip draws. Returns a size corresponding to what this snip draws.
} }
} }
@definterface[scheme:text<%> (text:basic<%> mode:host-text<%> color:text<%>)]{ @definterface[scheme:text<%> (text:basic<%> mode:host-text<%> color:text<%>)]{
Texts matching this interface support Racket mode operations. Texts matching this interface support Racket mode operations.
@defmethod*[(((get-limit (start exact-integer)) int))]{ @defmethod*[(((get-limit (start exact-integer)) int))]{
Returns a limit for backward-matching parenthesis starting at
Returns a limit for backward-matching parenthesis starting at position position @scheme[start].
@scheme[start].
} }
@defmethod*[(((balance-parens (key-event (instance key-event%))) void))]{ @defmethod*[(((balance-parens (key-event (instance key-event%))) void))]{
This function is called when the user types a close parenthesis in the This function is called when the user types a close parenthesis in
@scheme[text%]. If the close parenthesis that the user inserted does not match the the @scheme[text%]. If the close parenthesis that the user inserted
corresponding open parenthesis and the @scheme['framework:fixup-parens] preference is does not match the corresponding open parenthesis and the
@scheme[#t] (see @scheme['framework:fixup-parens] preference is @scheme[#t] (see
@scheme[preferences:get]) the correct closing parenthesis is inserted. @scheme[preferences:get]) the correct closing parenthesis is
If the @scheme['framework:paren-match] preference is inserted. If the @scheme['framework:paren-match] preference is
@scheme[#t] (see @scheme[#t] (see @scheme[preferences:get]) the matching open
@scheme[preferences:get]) the matching open parenthesis is flashed. parenthesis is flashed.
} }
@defmethod*[(((tabify-on-return?) boolean?))]{ @defmethod*[(((tabify-on-return?) boolean?))]{
The result of this method is used to determine if the return key The result of this method is used to determine if the return key
automatically tabs over to the correct position. automatically tabs over to the correct position.
Override it to change its behavior. Override it to change its behavior.
} }
@defmethod*[(((tabify (start-pos exact-integer (send this text get-start-position))) void))]{ @defmethod*[(((tabify (start-pos exact-integer
(send this text get-start-position)))
void))]{
Tabs the line containing by @scheme[start-pos] Tabs the line containing by @scheme[start-pos]
} }
@defmethod*[(((tabify-selection (start exact-integer) (end exact-integer)) void))]{ @defmethod*[(((tabify-selection (start exact-integer) (end exact-integer))
void))]{
Sets the tabbing for the lines containing positions @scheme[start] Sets the tabbing for the lines containing positions @scheme[start]
through @scheme[end]. through @scheme[end].
} }
@defmethod*[(((tabify-all) void))]{ @defmethod*[(((tabify-all) void))]{
Tabs all lines. Tabs all lines.
} }
@defmethod*[(((insert-return) void))]{ @defmethod*[(((insert-return) void))]{
Inserts a newline into the buffer. If
Inserts a newline into the buffer. If @method[scheme:text<%> tabify-on-return?] returns @scheme[#t], this
@method[scheme:text<%> tabify-on-return?] will tabify the new line.
returns @scheme[#t], this will tabify the new line.
} }
@defmethod*[(((box-comment-out-selection (start-pos (or/c (symbols 'start) exact-integer?)) (end-pos (or/c (symbols 'end) exact-integer?))) void))]{ @defmethod*[(((box-comment-out-selection
This method comments out a selection in the text by putting it into a comment box. (start-pos (or/c (symbols 'start) exact-integer?))
(end-pos (or/c (symbols 'end) exact-integer?)))
void))]{
This method comments out a selection in the text by putting it into
a comment box.
Removes the region from @scheme[start-pos] to @scheme[end-pos] from
the editor and inserts a comment box with that region of text
inserted into the box.
Removes the region from @scheme[start-pos] to @scheme[end-pos] If @scheme[start-pos] is @scheme['start], the starting point of the
from the editor and inserts a comment box with that region selection is used. If @scheme[end-pos] is @scheme['end], the ending
of text inserted into the box. point of the selection is used.
If @scheme[start-pos] is @scheme['start], the starting point of
the selection is used. If @scheme[end-pos] is @scheme['end],
the ending point of the selection is used.
} }
@defmethod*[(((comment-out-selection (start exact-integer) (end exact-integer)) void))]{ @defmethod*[(((comment-out-selection (start exact-integer)
(end exact-integer))
Comments the lines containing positions @scheme[start] through @scheme[end] void))]{
by inserting a semi-colon at the front of each line. Comments the lines containing positions @scheme[start] through
@scheme[end] by inserting a semi-colon at the front of each line.
} }
@defmethod*[(((uncomment-selection (start int) (end int)) void))]{ @defmethod*[(((uncomment-selection (start int) (end int)) void))]{
Uncomments the lines containing positions @scheme[start] through
Uncomments the lines containing positions @scheme[start] through @scheme[end]. @scheme[end].
} }
@defmethod*[(((get-forward-sexp (start exact-integer)) (union |#f| exact-integer)))]{ @defmethod*[(((get-forward-sexp (start exact-integer))
(union #f exact-integer)))]{
Returns the position of the end of next S-expression after position Returns the position of the end of next S-expression after position
@scheme[start], or @scheme[#f] if there is no appropriate answer. @scheme[start], or @scheme[#f] if there is no appropriate answer.
} }
@defmethod*[(((remove-sexp (start exact-integer)) void))]{ @defmethod*[(((remove-sexp (start exact-integer)) void))]{
Forward-deletes the S-expression starting after the position
Forward-deletes the S-expression starting after the position @scheme[start]. @scheme[start].
} }
@defmethod*[(((forward-sexp (start |#t|)) exact-integer))]{ @defmethod*[(((forward-sexp (start |#t|)) exact-integer))]{
Moves forward over the S-expression starting at position
Moves forward over the S-expression starting at position @scheme[start]. @scheme[start].
} }
@defmethod*[(((flash-forward-sexp (start-pos exact-integer)) void))]{ @defmethod*[(((flash-forward-sexp (start-pos exact-integer)) void))]{
Flashes the parenthesis that closes the sexpression at Flashes the parenthesis that closes the sexpression at
@scheme[start-pos]. @scheme[start-pos].
} }
@defmethod*[(((get-backward-sexp (start exact-integer)) (union exact-integer |#f|)))]{ @defmethod*[(((get-backward-sexp (start exact-integer))
(union exact-integer #f)))]{
Returns the position of the start of the S-expression before or Returns the position of the start of the S-expression before or
containing @scheme[start], or @scheme[#f] if there is no appropriate containing @scheme[start], or @scheme[#f] if there is no appropriate
answer. answer.
} }
@defmethod*[(((flash-backward-sexp (start-pos exact-integer)) void))]{ @defmethod*[(((flash-backward-sexp (start-pos exact-integer)) void))]{
Flashes the parenthesis that opens the sexpression at Flashes the parenthesis that opens the sexpression at
@scheme[start-pos]. @scheme[start-pos].
} }
@defmethod*[(((backward-sexp (start-pos exact-integer)) void))]{ @defmethod*[(((backward-sexp (start-pos exact-integer)) void))]{
Move the caret backwards one sexpression Move the caret backwards one sexpression
Moves the caret to the beginning of the sexpression that ends at Moves the caret to the beginning of the sexpression that ends at
@scheme[start-pos]. @scheme[start-pos].
} }
@defmethod*[(((find-up-sexp (start-pos exact-integer)) (union |#f| exact-integer)))]{ @defmethod*[(((find-up-sexp (start-pos exact-integer))
(union #f exact-integer)))]{
Returns the position of the beginning of the next sexpression outside Returns the position of the beginning of the next sexpression
the sexpression that contains @scheme[start-pos]. If there is no such outside the sexpression that contains @scheme[start-pos]. If there
sexpression, it returns @scheme[#f]. is no such sexpression, it returns @scheme[#f].
} }
@defmethod*[(((up-sexp (start exact-integer)) void))]{ @defmethod*[(((up-sexp (start exact-integer)) void))]{
Moves backward out of the S-expression containing the position
Moves backward out of the S-expression containing the position @scheme[start]. @scheme[start].
} }
@defmethod*[(((find-down-sexp (start-pos exact-integer)) (union |#f| exact-integer)))]{ @defmethod*[(((find-down-sexp (start-pos exact-integer))
(union #f exact-integer)))]{
Returns the position of the beginning of the next sexpression inside Returns the position of the beginning of the next sexpression inside
the sexpression that contains @scheme[start-pos]. If there is no such the sexpression that contains @scheme[start-pos]. If there is no
sexpression, it returns @scheme[#f]. such sexpression, it returns @scheme[#f].
} }
@defmethod*[(((down-sexp (start exact-integer)) void))]{ @defmethod*[(((down-sexp (start exact-integer)) void))]{
Moves forward into the next S-expression after the position
Moves forward into the next S-expression after the position @scheme[start]. @scheme[start].
} }
@defmethod*[(((remove-parens-forward (start exact-integer)) void))]{ @defmethod*[(((remove-parens-forward (start exact-integer)) void))]{
Removes the parentheses from the S-expression starting after the Removes the parentheses from the S-expression starting after the
position @scheme[start]. position @scheme[start].
} }
@defmethod*[(((select-forward-sexp (start exact-integer)) |#t|))]{ @defmethod*[(((select-forward-sexp (start exact-integer)) |#t|))]{
Selects the next S-expression, starting at position @scheme[start]. Selects the next S-expression, starting at position @scheme[start].
} }
@defmethod*[(((select-backward-sexp (start exact-integer)) |#t|))]{ @defmethod*[(((select-backward-sexp (start exact-integer)) |#t|))]{
Selects the previous S-expression, starting at position
Selects the previous S-expression, starting at position @scheme[start]. @scheme[start].
} }
@defmethod*[(((select-up-sexp (start exact-integer)) |#t|))]{ @defmethod*[(((select-up-sexp (start exact-integer)) |#t|))]{
Selects the region to the enclosing S-expression, starting at
Selects the region to the enclosing S-expression, starting at position @scheme[start]. position @scheme[start].
} }
@defmethod*[(((select-down-sexp (start exact-integer)) |#t|))]{ @defmethod*[(((select-down-sexp (start exact-integer)) |#t|))]{
Selects the region to the next contained S-expression, starting at
Selects the region to the next contained S-expression, starting at position @scheme[start]. position @scheme[start].
} }
@defmethod*[(((transpose-sexp (start exact-integer)) void))]{ @defmethod*[(((transpose-sexp (start exact-integer)) void))]{
Swaps the S-expression beginning before the position @scheme[start]
Swaps the S-expression beginning before the position @scheme[start] with with the next S-expression following @scheme[start].
the next S-expression following @scheme[start].
} }
@defmethod*[(((mark-matching-parenthesis (pos exact-positive-integer)) void))]{ @defmethod*[(((mark-matching-parenthesis (pos exact-positive-integer))
If the paren after @scheme[pos] is matched, this method void))]{
highlights it and its matching counterpart in dark green. If the paren after @scheme[pos] is matched, this method highlights
it and its matching counterpart in dark green.
} }
@defmethod*[(((get-tab-size) exact-integer))]{ @defmethod*[(((get-tab-size) exact-integer))]{
This method returns the current size of the tabs for scheme mode. This method returns the current size of the tabs for scheme mode.
See also See also @method[scheme:text<%> set-tab-size].
@method[scheme:text<%> set-tab-size].
} }
@defmethod*[(((set-tab-size (new-size exact-integer)) void))]{ @defmethod*[(((set-tab-size (new-size exact-integer)) void))]{
This method sets the tab size for this This method sets the tab size for this text.
text.
} }
@defmethod*[(((introduce-let-ans) void))]{ @defmethod*[(((introduce-let-ans) void))]{
Adds a let around the current s-expression and a printf into the body Adds a let around the current s-expression and a printf into the
of the let. body of the let.
} }
@defmethod*[(((move-sexp-out) void))]{ @defmethod*[(((move-sexp-out) void))]{
Replaces the sexpression surrounding the insertion point with the Replaces the sexpression surrounding the insertion point with the
sexpression following the insertion point. sexpression following the insertion point.
} }
} }
@defmixin[scheme:text-mixin (text:basic<%> mode:host-text<%> color:text<%> text:autocomplete<%>) (scheme:text<%>)]{ @defmixin[scheme:text-mixin
(text:basic<%> mode:host-text<%> color:text<%> text:autocomplete<%>)
(scheme:text<%>)]{
This mixin adds functionality for editing Racket files. This mixin adds functionality for editing Racket files.
The result of this mixin uses the same initialization arguments as the The result of this mixin uses the same initialization arguments as the
mixin's argument. mixin's argument.
@defmethod*[#:mode override (((get-word-at (pos positive-exact-integer)) string))]{
Returns the word just before @scheme[pos], which is then used
as the prefix for auto-completion.
@defmethod*[#:mode override
(((get-word-at (pos positive-exact-integer)) string))]{
Returns the word just before @scheme[pos], which is then used as the
prefix for auto-completion.
} }
@defmethod[#:mode override (get-start-of-line [pos exact-nonnegative-integer?]) exact-nonnegative-integer?]{ @defmethod[#:mode override
Returns the first non-whitespace character in the paragraph containing @racket[pos], (get-start-of-line [pos exact-nonnegative-integer?])
unless the position is already there, in which case it returns the first position of the paragraph. exact-nonnegative-integer?]{
Returns the first non-whitespace character in the paragraph
containing @racket[pos], unless the position is already there, in
which case it returns the first position of the paragraph.
} }
} }
@definterface[scheme:text-mode<%> ()]{ @definterface[scheme:text-mode<%> ()]{
The result of The result of @scheme[scheme:text-mode-mixin] implements this
@scheme[scheme:text-mode-mixin] interface.
implements this interface.
} }
@defmixin[scheme:text-mode-mixin (color:text-mode<%> mode:surrogate-text<%>) (scheme:text-mode<%>)]{ @defmixin[scheme:text-mode-mixin
This mixin adds Racket mode functionality (color:text-mode<%> mode:surrogate-text<%>)
to the mode that it is mixed into. The resulting (scheme:text-mode<%>)]{
mode assumes that it is only set to an editor This mixin adds Racket mode functionality to the mode that it is mixed
that is the result of into. The resulting mode assumes that it is only set to an editor
@scheme[scheme:text-mixin]. that is the result of @scheme[scheme:text-mixin].
@defmethod*[#:mode override (((on-disable-surrogate) void))]{
Removes the scheme keymap (see also @defmethod*[#:mode override (((on-disable-surrogate) void))]{
@scheme[scheme:get-keymap]) and disables any parenthesis Removes the scheme keymap (see also @scheme[scheme:get-keymap]) and
highlighting in the host editor. disables any parenthesis highlighting in the host editor.
} }
@defmethod*[#:mode override (((on-enable-surrogate) void))]{ @defmethod*[#:mode override (((on-enable-surrogate) void))]{
Adds the scheme keymap (see also @scheme[scheme:get-keymap]) and
Adds the scheme keymap (see also enables a parenthesis highlighting in the host editor.
@scheme[scheme:get-keymap]) and enables a parenthesis
highlighting in the host editor.
} }
} }
@defmixin[scheme:set-mode-mixin (scheme:text<%> mode:host-text<%>) ()]{ @defmixin[scheme:set-mode-mixin (scheme:text<%> mode:host-text<%>) ()]{
This mixin creates a new instance of This mixin creates a new instance of @scheme[scheme:text-mode%] and
@scheme[scheme:text-mode%] installs it, by calling its own @method[mode:host-text<%>
and installs it, by calling its own set-surrogate] method with the object.
@method[mode:host-text<%> set-surrogate]
method with the object.
} }
@defclass[scheme:text% (scheme:set-mode-mixin (scheme:text-mixin (text:autocomplete-mixin (mode:host-text-mixin color:text%)))) ()]{} @defclass[scheme:text%
(scheme:set-mode-mixin
(scheme:text-mixin
(text:autocomplete-mixin (mode:host-text-mixin color:text%))))
()]{}
@defclass[scheme:text-mode% (scheme:text-mode-mixin color:text-mode%) ()]{} @defclass[scheme:text-mode% (scheme:text-mode-mixin color:text-mode%) ()]{}
@(include-previously-extracted "main-extracts.ss" #rx"^scheme:") @(include-previously-extracted "main-extracts.ss" #rx"^scheme:")

View File

@ -107,7 +107,7 @@
moved. A snip may refuse to be moved by returning @scheme[#f] from moved. A snip may refuse to be moved by returning @scheme[#f] from
@method[snip% release-from-owner]. @method[snip% release-from-owner].
} }
@defmethod*[(((initial-autowrap-bitmap) (union |#f| (instance bitmap%))))]{ @defmethod*[(((initial-autowrap-bitmap) (union #f (instance bitmap%))))]{
The result of this method is used as the initial autowrap The result of this method is used as the initial autowrap
bitmap. Override this method to change the initial bitmap. Override this method to change the initial
@scheme[bitmap%]. See also @scheme[bitmap%]. See also
@ -488,13 +488,13 @@
The contents of the two The contents of the two
editor are kept in sync, as modifications editor are kept in sync, as modifications
to this object happen. to this object happen.
@defmethod*[(((get-delegate) (union |#f| (instanceof text%))))]{ @defmethod*[(((get-delegate) (union #f (instanceof text%))))]{
The result of this method is the @scheme[text%] object The result of this method is the @scheme[text%] object
that the contents of this editor are being delegated to, or that the contents of this editor are being delegated to, or
@scheme[#f], if there is none. @scheme[#f], if there is none.
} }
@defmethod*[(((set-delegate (delegate (union |#f| (instanceof text%)))) void))]{ @defmethod*[(((set-delegate (delegate (union #f (instanceof text%)))) void))]{
This method sets the current delegate. This method sets the current delegate.
@ -531,7 +531,17 @@
Creates and returns an instance of Creates and returns an instance of
@scheme[text:1-pixel-string-snip%]. @scheme[text:1-pixel-string-snip%].
} }
@defmethod*[#:mode override (((get-extent (dc (instanceof dc<%>)) (x real) (y real) (w (box (union non-negative-real-number |#f|)) |#f|) (h (box (union non-negative-real-number |#f|)) |#f|) (descent (box (union non-negative-real-number |#f|)) |#f|) (space (box (union non-negative-real-number |#f|)) |#f|) (lspace (box (union non-negative-real-number |#f|)) |#f|) (rspace (box (union non-negative-real-number |#f|)) |#f|)) void))]{ @defmethod*[#:mode override
(((get-extent
(dc (instanceof dc<%>))
(x real) (y real)
(w (box (union non-negative-real-number #f)) #f)
(h (box (union non-negative-real-number #f)) #f)
(descent (box (union non-negative-real-number #f)) #f)
(space (box (union non-negative-real-number #f)) #f)
(lspace (box (union non-negative-real-number #f)) #f)
(rspace (box (union non-negative-real-number #f)) #f))
void))]{
Sets the descent, space, lspace, and rspace to zero. Sets Sets the descent, space, lspace, and rspace to zero. Sets
the height to 1. Sets the width to the number of characters the height to 1. Sets the width to the number of characters
@ -573,7 +583,7 @@
Creates and returns an instance of Creates and returns an instance of
@scheme[text:1-pixel-tab-snip%]. @scheme[text:1-pixel-tab-snip%].
} }
@defmethod*[#:mode override (((get-extent (dc (instanceof dc<%>)) (x real) (y real) (w (box (union non-negative-real-number |#f|)) |#f|) (h (box (union non-negative-real-number |#f|)) |#f|) (descent (box (union non-negative-real-number |#f|)) |#f|) (space (box (union non-negative-real-number |#f|)) |#f|) (lspace (box (union non-negative-real-number |#f|)) |#f|) (rspace (box (union non-negative-real-number |#f|)) |#f|)) void))]{ @defmethod*[#:mode override (((get-extent (dc (instanceof dc<%>)) (x real) (y real) (w (box (union non-negative-real-number #f)) #f) (h (box (union non-negative-real-number #f)) #f) (descent (box (union non-negative-real-number #f)) #f) (space (box (union non-negative-real-number #f)) #f) (lspace (box (union non-negative-real-number #f)) #f) (rspace (box (union non-negative-real-number #f)) #f)) void))]{
Sets the descent, space, lspace, and rspace to zero. Sets Sets the descent, space, lspace, and rspace to zero. Sets
the height to 1. Sets the width to the width of tabs as the height to 1. Sets the width to the width of tabs as

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -713,7 +713,10 @@ that the button is not referenced by this frame and thus can be gc'd.
} }
@defclass[drracket:unit:definitions-text% (drracket:rep:drs-bindings-keymap-mixin (drracket:unit:program-editor-mixin (scheme:text-mixin text:info%))) (drracket:unit:definitions-text<%>)]{ @defclass[drracket:unit:definitions-text%
(drracket:rep:drs-bindings-keymap-mixin
(drracket:unit:program-editor-mixin (scheme:text-mixin text:info%)))
(drracket:unit:definitions-text<%>)]{
@defconstructor[()]{ @defconstructor[()]{
Passes all arguments to @scheme[super-init]. Passes all arguments to @scheme[super-init].