29 Racket
|
method
(send a-racket:sexp-snip get-saved-snips)
→ (listof (is-a?/c snip%)) This returns the list of snips hidden by the sexp snip.
| ||||
superclass: snip% | ||||
|
method
(send a-racket:sexp-snip get-text offset num [ flattened?]) → string? offset : number? num : number? flattened? : boolean? = #f Returns the concatenation of the text for all of the hidden snips.
method
(send a-racket:sexp-snip copy) → (is-a?/c racket:sexp-snip%)
Returns a copy of this snip that includes the hidden snips.
method
stream-out : (is-a?/c editor-stream-out%) Saves the embedded snips
method
(send a-racket:sexp-snip draw dc x y left top right bottom dx dy draw-caret) → void? dc : dc<%> x : real? y : real? left : real? top : real? right : real? bottom : real? dx : real? dy : real? draw-caret : symbol? Draws brackets with a centered ellipses between them.
method
(send a-racket:sexp-snip get-extent dc x y [ w h descent space lspace rspace]) → void? dc : (is-a?/c dc<%>) x : real? y : real? w : (or/c (box/c (and/c real? (not/c negative?))) #f) = #f h : (or/c (box/c (and/c real? (not/c negative?))) #f) = #f
descent : (or/c (box/c (and/c real? (not/c negative?))) #f) = #f space : (or/c (box/c (and/c real? (not/c negative?))) #f) = #f
lspace : (or/c (box/c (and/c real? (not/c negative?))) #f) = #f
rspace : (or/c (box/c (and/c real? (not/c negative?))) #f) = #f Overrides get-extent in snip%.Returns a size corresponding to what this snip draws.
| ||||||
|
method
(send a-racket:text get-limit start) → exact-integer?
start : exact-integer? Returns a limit for backward-matching parenthesis starting at position start.
method
(send a-racket:text get-backward-navigation-limit start)
→ exact-integer? start : exact-integer? Overrides get-backward-navigation-limit in color:text<%>.Calls get-limit.
method
(send a-racket:text balance-parens key-event) → void?
key-event : (is-a?/c key-event%) This function is called when the user types a close parenthesis in the text%. If the close parenthesis that the user inserted does not match the corresponding open parenthesis and the 'framework:fixup-parens preference is #t (see preferences:get) the correct closing parenthesis is inserted. If the 'framework:paren-match preference is #t (see preferences:get) the matching open parenthesis is flashed.
method
(send a-racket:text tabify-on-return?) → boolean?
The result of this method is used to determine if the return key automatically tabs over to the correct position.Override it to change its behavior.
method
start-pos : exact-integer? = (send this get-start-position) Tabs the line containing by start-pos
method
(send a-racket:text tabify-selection [ start end]) → void? start : exact-integer? = (send this get-start-position) end : exact-integer? = (send this get-end-position) Sets the tabbing for the lines containing positions start through end.
method
(send a-racket:text tabify-selection/reverse-choices [ start end]) → void? start : exact-integer? = (send this get-start-position) end : exact-integer? = (send this get-end-position) Sets the tabbing for the lines containing positions start through end, but if there are multiple valid tabbings to cycle through, this method should cycle through the choices in reverse order. The default implementation calls tabify-selection.Added in version 1.77 of package gui-lib.
method
(send a-racket:text tabify-all) → void?
Tabs all lines.Indentation results depend on the graphical context associated with the object; if there is not one, the indentation is based on the assumption that a fixed-width font is used. If the object is viewed in an editor-canvas% and top-level-window<%>, the actual font information is used to determine the initial number of spaces on a line.
method
(send a-racket:text compute-racket-amount-to-indent pos [ get-head-sexp-type]) → exact-nonnegative-integer? pos : exact-nonnegative-integer?
get-head-sexp-type : (-> string? (or/c #f 'lambda 'define 'begin 'for/fold 'other)) = (λ (x) #f) This method is final, so it cannot be overridden.Computes the amount of space to indent the line containing pos, using the default s-expression indentation strategy.The function get-head-sexp-type is consulted for each symbol/keyword that follows an open parenthesis. If it returns #f, then the user’s preferences (from the Indenting panel of the Editing panel in the preferences dialog) are used.
Indentation results depend on the graphical context associated with the object; if there is not one, the indentation is based on the assumption that a fixed-width font is used. If the object is viewed in an editor-canvas% and top-level-window<%>, the actual font information is used to determine the initial number of spaces on a line.
Added in version 1.9 of package gui-lib.
Changed in version 1.26: Added the get-head-sexp-type argument.
method
(send a-racket:text compute-amount-to-indent pos)
→ exact-nonnegative-integer? pos : exact-nonnegative-integer? Refine this method with augment.Computes the amount of space to indent the line containing pos.Defaults to using using the default s-expression indentation strategy via compute-racket-amount-to-indent.
Added in version 1.9 of package gui-lib.
method
(send a-racket:text insert-return) → void?
Inserts a newline into the buffer. If tabify-on-return? returns #t, this will tabify the new line. Deletes any trailing whitespace from the old line.
method
(send a-racket:text box-comment-out-selection [ start-pos end-pos]) → #t start-pos : (or/c 'start exact-integer?) = 'start end-pos : (or/c 'end exact-integer?) = 'end This method comments out a selection in the text by putting it into a comment box.Removes the region from start-pos to end-pos from the editor and inserts a comment box with that region of text inserted into the box.
If start-pos is 'start, the starting point of the selection is used. If end-pos is 'end, the ending point of the selection is used.
method
(send a-racket:text comment-out-selection [ start-pos end-pos #:start start #:padding padding]) → #t start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : (and/c string? (not/c #rx"[\r\n]")) = ";" padding : (and/c string? (not/c #rx"[\r\n]")) = "" Comments the lines containing positions start-pos through end-pos by inserting a start followed by padding at the start of each paragraph.
method
(send a-racket:text region-comment-out-selection [ start-pos end-pos #:start start #:end end #:continue continue #:padding padding]) → #t start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : (and/c string? (not/c #rx"[\r\n]")) = "#|" end : (and/c string? (not/c #rx"[\r\n]")) = "|#" continue : (and/c string? (not/c #rx"[\r\n]")) = "" padding : (and/c string? (not/c #rx"[\r\n]")) = " " Comments the region between start-pos and end-pos by inserting a start at start-pos, end at end-pos, and continue followed by padding at the start of each paragraph between start-pos and end-pos.
method
(send a-racket:text uncomment-box/selection [ #:start start #:padding padding]) → #t start : (and/c string? (not/c #rx"[\r\n]")) = ";" padding : (and/c string? (not/c #rx"[\r\n]")) = "" If the result of get-focus-snip is a comment snip, then removes the comment snip. Otherwise, calls uncomment-selection with start and padding.
method
(send a-racket:text uncomment-selection [ start-pos end-pos #:start start]) → void? start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : string = ";" Uncomments the paragraphs containing positions start-pos through end-pos if it has line-based comments or a box comment.Specifically, checks for a box comment and, if present removes it. If a box comment is not present, then removes line-based comments (if any) on the paragraphs between start-pos and end-pos.
method
(send a-racket:text uncomment-selection/box [ start-pos end-pos]) → boolean? start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) Checks for a box comment and, if present removes it. Returns #t if it found (and removed) a box comment, and #f if it did not find a box comment.
method
(send a-racket:text uncomment-selection/line [ start-pos end-pos #:start start #:padding padding]) → #t start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : (and/c string? (not/c #rx"[\r\n]")) = ";" padding : (and/c string? (not/c #rx"[\r\n]")) = "" Removes each occurrence of start that appears (potentially following whitespace) at the start of each paragraph that enclose the range between start-pos and end-pos.
method
(send a-racket:text uncomment-selection/region [ start-pos end-pos #:start start #:end end #:continue continue #:padding padding]) → #t start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : (and/c string? (not/c #rx"[\r\n]")) = "#|" end : (and/c string? (not/c #rx"[\r\n]")) = "|#" continue : (and/c string? (not/c #rx"[\r\n]")) = "" padding : (and/c string? (not/c #rx"[\r\n]")) = " " Removes the region comment on the paragraphs between start-pos and end-pos.
method
(send a-racket:text commented-out/line? [ start-pos end-pos #:start start #:padding padding]) → boolean? start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : (and/c string? (not/c #rx"[\r\n]")) = ";" padding : (and/c string? (not/c #rx"[\r\n]")) = "" Considers each paragraph between start-pos and end-pos, returning #t if any of them have the line comment start commenting any portion of them out.
method
(send a-racket:text commented-out/region? [ start-pos end-pos #:start start #:end end #:continue continue]) → boolean? start-pos : exact-nonnegative-integer? = (get-start-position) end-pos : exact-nonnegative-integer? = (get-end-position) start : (and/c string? (not/c #rx"[\r\n]")) = "#|" end : (and/c string? (not/c #rx"[\r\n]")) = "|#" continue : (and/c string? (not/c #rx"[\r\n]")) = "" Returns #t if the paragraphs at start-pos and end-pos have start and end in them and the paragraphs in between start with continue.
method
(send a-racket:text get-forward-sexp start)
→ (or/c #f exact-integer?) start : exact-integer? Returns the position of the end of next S-expression after position start, or #f if there is no appropriate answer.
method
(send a-racket:text remove-sexp start) → void?
start : exact-integer? Forward-deletes the S-expression starting after the position start.
method
(send a-racket:text forward-sexp start) → void?
start : exact-integer? Moves forward over the S-expression starting at position start.
method
(send a-racket:text flash-forward-sexp start-pos) → void?
start-pos : exact-integer? Flashes the parenthesis that closes the sexpression at start-pos.
method
(send a-racket:text get-backward-sexp start)
→ (or/c exact-integer? #f) start : exact-integer? Returns the position of the start of the S-expression before or containing start, or #f if there is no appropriate answer.
method
(send a-racket:text flash-backward-sexp start-pos) → void?
start-pos : exact-integer? Flashes the parenthesis that opens the sexpression at start-pos.
method
(send a-racket:text backward-sexp start-pos) → void?
start-pos : exact-integer? Move the caret backwards one sexpressionMoves the caret to the beginning of the sexpression that ends at start-pos.
method
(send a-racket:text find-up-sexp start-pos)
→ (or/c #f exact-integer?) start-pos : exact-integer? Returns the position of the beginning of the next sexpression outside the sexpression that contains start-pos. If there is no such sexpression, it returns #f.
method
start : exact-integer? Moves backward out of the S-expression containing the position start.
method
(send a-racket:text find-down-sexp start-pos)
→ (or/c #f exact-integer?) start-pos : exact-integer? Returns the position of the beginning of the next sexpression inside the sexpression that contains start-pos. If there is no such sexpression, it returns #f.
method
start : exact-integer? Moves forward into the next S-expression after the position start.
method
(send a-racket:text remove-parens-forward start) → void?
start : exact-integer? Removes the parentheses from the S-expression starting after the position start.
method
(send a-racket:text select-forward-sexp) → void?
Selects the next S-expression, starting at the start of the current selection.
method
(send a-racket:text select-backward-sexp) → void?
Selects the previous S-expression, starting at the start of the current selection.
method
(send a-racket:text select-up-sexp) → void?
Selects the region to the enclosing S-expression, starting at the start of the current selection.
method
(send a-racket:text select-down-sexp) → void?
Selects the region to the next contained S-expression, starting at the start of the current selection.
method
(send a-racket:text transpose-sexp start) → void?
start : exact-integer? Swaps the S-expression beginning before the position start with the next S-expression following start.
method
(send a-racket:text mark-matching-parenthesis pos) → void?
pos : exact-positive-integer? If the paren after pos is matched, this method highlights it and its matching counterpart in dark green.
method
(send a-racket:text get-tab-size) → exact-integer?
This method returns the current size of the tabs for scheme mode. See also set-tab-size.
method
(send a-racket:text set-tab-size new-size) → void?
new-size : exact-integer? This method sets the tab size for this text.
method
(send a-racket:text introduce-let-ans start-pos) → void?
start-pos : exact-integer? Adds a let around the current s-expression and a printf into the body of the let.
method
(send a-racket:text move-sexp-out start-pos) → void?
start-pos : exact-integer? Replaces the sexpression surrounding the insertion point with the sexpression following the insertion point.
| ||||||||||
| ||||||||||
|
method
(send a-racket:text get-word-at pos) → string?
pos : exact-positive-integer? Overrides get-word-at in text:autocomplete<%>.Returns the word just before pos, which is then used as the prefix for auto-completion.
method
(send a-racket:text get-start-of-line pos)
→ exact-nonnegative-integer? pos : exact-nonnegative-integer? Overrides get-start-of-line in text:basic<%>.Returns the first non-whitespace character in the paragraph containing pos, unless the position is already there, in which case it returns the first position of the paragraph.
|
| ||||
| ||||
|
constructor
(new racket:text-mode-mixin [[include-paren-keymap? include-paren-keymap?]])
→ (is-a?/c racket:text-mode-mixin) include-paren-keymap? : boolean? = #t If include-paren-keymap? is #f only the result of racket:get-non-paren-keymap is used by on-enable-surrogate; otherwise the result of racket:get-keymap is used.Added in version 1.64 of package gui-lib.
method
(send a-racket:text-mode on-disable-surrogate) → void?
Overrides on-disable-surrogate in mode:surrogate-text<%>.Removes the racket keymap (see also racket:get-keymap) and disables any parenthesis highlighting in the host editor.
method
(send a-racket:text-mode on-enable-surrogate) → void?
Overrides on-enable-surrogate in mode:surrogate-text<%>.Adds the racket keymap (see also racket:get-keymap) and enables a parenthesis highlighting in the host editor.
| ||||
|
|
superclass: (racket:set-mode-mixin (racket:text-mixin (text:autocomplete-mixin (mode:host-text-mixin color:text%)))) |
|
superclass: (racket:text-mode-mixin color:text-mode%) |
procedure
(racket:text-balanced? text [start end]) → boolean?
text : (is-a?/c text%) start : number? = 0 end : (or/c false/c number?) = #f
value
racket:default-paren-matches : (listof (list/c symbol? symbol?))
Added in version 1.60 of package gui-lib.
procedure
procedure
(racket:get-keymap) → (is-a?/c keymap%)
procedure
Added in version 1.64 of package gui-lib.
procedure
Added in version 1.64 of package gui-lib.
procedure
(racket:add-pairs-keybinding-functions keymap) → void?
keymap : (is-a?/c keymap%)
Added in version 1.64 of package gui-lib.
procedure
(racket:map-pairs-keybinding-functions keymap open close [ #:alt-as-meta-keymap alt-as-meta-keymap]) → void? keymap : (is-a?/c keymap%) open : char? close : char? alt-as-meta-keymap : (or/c #f (is-a?/c keymap%)) = #f
binds the keystroke of the character open to a function named (format "maybe-insert-~a~a-pair" open close), unless open is #\[, in which case it is mapped to "maybe-insert-[]-pair-maybe-fixup-[]",
binds close to "balance-parens" unless open and close are the same character,
binds open with the meta key modifier to (format "insert-~a~a-pair" open close),
binds close with the meta key modifier to to "balance-parens-forward" unless the opening and closing characters are the same,
binds close, but with the prefix "~g:c:" (e.g., "~g:c:)") to the keystroke with the name (format "non-clever-~a" close), and
if open is #\[, binds "~g:c:[" to "non-clever-open-square-bracket".
If any of these functions are no present in keymap, they are also added to it.
The alt-as-meta-keymap argument is treated as keymap:setup-global treats it.
Added in version 1.64 of package gui-lib.
procedure
These symbols are suitable for input to racket:short-sym->pref-name and racket:short-sym->style-name.
procedure
(racket:short-sym->pref-name short-sym) → symbol?
short-sym : symbol?
procedure
(racket:short-sym->style-name short-sym) → string?
short-sym : symbol?
procedure
(racket:get-wordbreak-map) → (is-a?/c editor-wordbreak-map%)
procedure
(racket:init-wordbreak-map key) → void?
key : (is-a?/c keymap%)
procedure
(racket:setup-keymap keymap [ #:alt-as-meta-keymap alt-as-meta-keymap #:paren-keymap paren-keymap #:paren-alt-as-meta-keymap paren-alt-as-meta-keymap]) → void? keymap : (is-a?/c keymap%) alt-as-meta-keymap : (or/c #f (is-a?/c keymap%)) = #f paren-keymap : (or/c #f (is-a?/c keymap%)) = #f paren-alt-as-meta-keymap : (or/c #f (is-a?/c keymap%)) = #f
The alt-as-meta-keymap argument is treated the same as for keymap:setup-global. The paren-alt-as-meta-keymap argument is similar, but matched up with paren-keymap and used only when paren-keymap is not #f.
The paren-keymap is filled with the keybindings that are bound to parentheses in the default racket keymap, which is done by calling racket:map-pairs-keybinding-functions with the keymap and the characters #\[ and #\], #\( and #\), #\{ and #\}, #\| and #\|, and #\" and #\".
Changed in version 1.40 of package gui-lib: Added the #:alt-as-meta-keymap argument.
Changed in version 1.64: Added the #:paren-keymap and paren-alt-as-meta-keymap arguments.