25 lines
19 KiB
HTML
25 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=0.8"/><title>rackedit</title><link rel="stylesheet" type="text/css" href="scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="racket.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-racket.css" title="default"/><script type="text/javascript" src="scribble-common.js"></script><script type="text/javascript" src="manual-racket.js"></script></head><body id="scribble-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">►</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">rackedit</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="#%28part._.Opening_an_editor%29" class="tocviewlink" data-pltdoc="x">Opening an editor</a></td></tr><tr><td align="right">2 </td><td><a href="#%28part._.Examples%29" class="tocviewlink" data-pltdoc="x">Examples</a></td></tr><tr><td align="right">3 </td><td><a href="#%28part._.Window_behavior%29" class="tocviewlink" data-pltdoc="x">Window behavior</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._rackedit%29" class="tocsubseclink" data-pltdoc="x">rackedit</a></td></tr><tr><td><span class="tocsublinknumber">1<span class="stt"> </span></span><a href="#%28part._.Opening_an_editor%29" class="tocsubseclink" data-pltdoc="x">Opening an editor</a></td></tr><tr><td><a href="#%28def._%28%28lib._rackedit%2Fmain..rkt%29._rkdt%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="badlink"><span class="RktValLink">rkdt</span></span></span></a></td></tr><tr><td><span class="tocsublinknumber">2<span class="stt"> </span></span><a href="#%28part._.Examples%29" class="tocsubseclink" data-pltdoc="x">Examples</a></td></tr><tr><td><span class="tocsublinknumber">3<span class="stt"> </span></span><a href="#%28part._.Window_behavior%29" class="tocsubseclink" data-pltdoc="x">Window behavior</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="versionNoNav">9.2</span></div><section class="SsectionLevel1" id="section 0"><h1 class="heading"><a name="(part._rackedit)"></a><a name="(mod-path._rackedit)"></a>rackedit<span class="button-group"><a href="#(part._rackedit)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h1><div class="SAuthorListBox"><div class="SAuthorList"><p class="author">Hans Dijkema <<a href="mailto:hans@dijkewijk.nl">hans@dijkewijk.nl</a>></p></div></div><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left" colspan="2"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">rackedit</span></a><span class="RktPn">)</span></td></tr></table></p><p><span class="stt">rackedit</span> provides a small editor window based on Racket’s GUI framework.
|
|
It is intended for situations where a program, DrRacket interaction, or command
|
|
line session needs to open a file in a simple Racket editor without starting a
|
|
separate full editor application.</p><section class="SsectionLevel2" id="section 1"><h2 class="heading">1<span class="stt"> </span><a name="(part._.Opening_an_editor)"></a>Opening an editor<span class="button-group"><a href="#(part._.Opening_an_editor)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._rackedit/main..rkt)._rkdt))"></a><span title="Provided from: rackedit"><span class="RktSym"><span class="badlink"><span class="RktValLink">rkdt</span></span></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">filename</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span><span class="RktOpt">[</span></td><td valign="top"><span class="RktPn">#:wait?</span><span class="hspace"> </span><span class="RktVar">wait?</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:width</span><span class="hspace"> </span><span class="RktVar">width</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:height</span><span class="hspace"> </span><span class="RktVar">height</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:x</span><span class="hspace"> </span><span class="RktVar">x</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:y</span><span class="hspace"> </span><span class="RktVar">y</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:frame-cb</span><span class="hspace"> </span><span class="RktVar">frame-cb</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">filename</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/Manipulating_Paths.html#%28def._%28%28lib._racket%2Fprivate%2Fmisc..rkt%29._path-string~3f%29%29" class="RktValLink" data-pltdoc="x">path-string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">wait?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">width</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">900</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">height</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">650</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">x</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">100</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">y</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktVal">100</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">frame-cb</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure~3f%29%29" class="RktValLink" data-pltdoc="x">procedure?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~ce~bb%29%29" class="RktStxLink" data-pltdoc="x">λ</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">frame</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Opens an editor window for <span class="RktVar">filename</span>. The file name is passed to the
|
|
Racket editor frame and the editor is shown immediately.</div></p><p>The <span class="RktPn">#:width</span>, <span class="RktPn">#:height</span>, <span class="RktPn">#:x</span>, and <span class="RktPn">#:y</span>
|
|
arguments specify the initial geometry for a window for which no stored geometry
|
|
is available. When an editor window is closed, <span class="stt">rackedit</span> stores its position
|
|
and size. A later editor window with the same internal window number restores
|
|
that geometry.</p><p>Stored geometry is associated with the current screen configuration. The screen
|
|
configuration is derived from the number and dimensions of the displays visible
|
|
to Racket. Consequently, changing the monitor configuration causes the default
|
|
geometry, or geometry previously stored for that configuration, to be used.</p><p>If <span class="RktVar">wait?</span> is <span class="RktVal">#f</span>, the procedure returns after the editor has
|
|
been shown. If <span class="RktVar">wait?</span> is <span class="RktVal">#t</span>, the current event handler waits
|
|
until the editor window is closed before the procedure continues.</p><p>The <span class="RktVar">frame-cb</span> procedure receives the editor frame. With the default
|
|
<span class="RktPn">#:wait?</span> value it is called after the frame has been shown and can be
|
|
used to customize the frame, for example to change its title. When
|
|
<span class="RktVar">wait?</span> is <span class="RktVal">#t</span>, the callback is called only after the window has
|
|
been closed. Its return value is ignored.</p><p>Each open editor has an internal number. That number is shown in the window
|
|
title and is also used to distinguish stored window geometries. Numbers of
|
|
closed editor windows are reused.</p></section><section class="SsectionLevel2" id="section 2"><h2 class="heading">2<span class="stt"> </span><a name="(part._.Examples)"></a>Examples<span class="button-group"><a href="#(part._.Examples)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p>The simplest use opens a file and returns immediately:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="hspace"> </span><span class="RktSym">rackedit</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><span class="badlink"><span class="RktValLink">rkdt</span></span></span><span class="hspace"> </span><span class="RktVal">"notes.rkt"</span><span class="RktPn">)</span></td></tr></table></blockquote><p>Use <span class="RktPn">#:wait?</span><span class="stt"> </span><span class="RktVal">#t</span> when execution should continue only after the editor is
|
|
closed:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><span class="badlink"><span class="RktValLink">rkdt</span></span></span><span class="hspace"> </span><span class="RktVal">"notes.rkt"</span><span class="hspace"> </span><span class="RktPn">#:wait?</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="RktPn">)</span></p></blockquote><p>A frame callback can customize the editor frame:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="hspace"> </span><span class="RktSym">racket/class</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rackedit</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><span class="badlink"><span class="RktValLink">rkdt</span></span></span><span class="hspace"> </span><span class="RktVal">"notes.rkt"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:frame-cb</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~ce~bb%29%29" class="RktStxLink" data-pltdoc="x">λ</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">frame</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="file:///C:/Program%20Files/Racket/doc/reference/ivaraccess.html#%28form._%28%28lib._racket%2Fprivate%2Fclass-internal..rkt%29._send%29%29" class="RktStxLink" data-pltdoc="x">send</a></span><span class="hspace"> </span><span class="RktSym">frame</span><span class="hspace"> </span><span class="RktSym">set-label</span><span class="hspace"> </span><span class="RktVal">"Notes"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote><p>The initial window geometry can be supplied explicitly:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><span class="badlink"><span class="RktValLink">rkdt</span></span></span><span class="hspace"> </span><span class="RktVal">"notes.rkt"</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:width</span><span class="hspace"> </span><span class="RktVal">1200</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:height</span><span class="hspace"> </span><span class="RktVal">800</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:x</span><span class="hspace"> </span><span class="RktVal">50</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:y</span><span class="hspace"> </span><span class="RktVal">50</span><span class="RktPn">)</span></td></tr></table></blockquote></section><section class="SsectionLevel2" id="section 3"><h2 class="heading">3<span class="stt"> </span><a name="(part._.Window_behavior)"></a>Window behavior<span class="button-group"><a href="#(part._.Window_behavior)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p>The editor uses Racket’s standard editor menus, except that the standard
|
|
<span class="ssansserif">Exit</span> or <span class="ssansserif">Quit</span> command is not added to the File menu.
|
|
Closing an editor window closes only that window and releases its internal
|
|
window number for reuse by a later editor window.</p></section></section></div></div><div id="contextindicator"> </div></body></html> |