Made it possible not to give a filename
This commit is contained in:
@@ -1,13 +1,19 @@
|
|||||||
# rackedit
|
# rackedit
|
||||||
|
|
||||||
`rackedit` opens a simple Racket editor window for a file. It can be used from
|
`rackedit` opens a simple Racket editor window, optionally with a file. It can be
|
||||||
DrRacket, from a Racket program, or from the Racket command line.
|
used from DrRacket, from a Racket program, or from the Racket command line.
|
||||||
|
|
||||||
The package exports one procedure:
|
The package exports one procedure. With no filename, `rkdt` opens an empty editor:
|
||||||
|
|
||||||
```racket
|
```racket
|
||||||
(require rackedit)
|
(require rackedit)
|
||||||
|
|
||||||
|
(rkdt)
|
||||||
|
```
|
||||||
|
|
||||||
|
Pass a filename to open an existing file:
|
||||||
|
|
||||||
|
```racket
|
||||||
(rkdt "notes.rkt")
|
(rkdt "notes.rkt")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#lang info
|
#lang info
|
||||||
|
|
||||||
(define pkg-authors '(hnmdijkema))
|
(define pkg-authors '(hnmdijkema))
|
||||||
(define version "0.1.5")
|
(define version "0.1.7")
|
||||||
(define license 'MIT) ;
|
(define license 'MIT) ;
|
||||||
(define collection "rackedit")
|
(define collection "rackedit")
|
||||||
(define pkg-desc "rackedit exports the rkdt procedure, that can be used to open an editor window with a given file")
|
(define pkg-desc "rackedit exports the rkdt procedure, that can be used to open an editor window with a given file")
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
(define (rkdt filename
|
(define (rkdt [filename #f]
|
||||||
#:wait? [wait? #f]
|
#:wait? [wait? #f]
|
||||||
#:width [width 900]
|
#:width [width 900]
|
||||||
#:height [height 650]
|
#:height [height 650]
|
||||||
@@ -109,7 +109,9 @@
|
|||||||
(closed (make-semaphore 0))
|
(closed (make-semaphore 0))
|
||||||
(frame (new (make-editor-frame% closed
|
(frame (new (make-editor-frame% closed
|
||||||
(λ (num x y w h) (store-cfg num x y w h)))
|
(λ (num x y w h) (store-cfg num x y w h)))
|
||||||
[filename (format "~a" filename)]
|
[filename (if (eq? filename #f)
|
||||||
|
#f
|
||||||
|
(format "~a" filename))]
|
||||||
[editor% racket:text%]
|
[editor% racket:text%]
|
||||||
[width 900]
|
[width 900]
|
||||||
[height 650]
|
[height 650]
|
||||||
|
|||||||
+23
-9
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
@(require (for-label racket/base
|
@(require (for-label racket/base
|
||||||
racket/class
|
racket/class
|
||||||
|
racket/contract
|
||||||
"../main.rkt"))
|
"../main.rkt"))
|
||||||
|
|
||||||
@title{rackedit}
|
@title{rackedit}
|
||||||
@@ -11,12 +12,12 @@
|
|||||||
|
|
||||||
@tt{rackedit} provides a small editor window based on Racket's GUI framework.
|
@tt{rackedit} provides a small editor window based on Racket's GUI framework.
|
||||||
It is intended for situations where a program, DrRacket interaction, or command
|
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
|
line session needs a simple Racket editor, optionally for a specific file, without
|
||||||
separate full editor application.
|
starting a separate full editor application.
|
||||||
|
|
||||||
@section{Opening an editor}
|
@section{Opening an editor}
|
||||||
|
|
||||||
@defproc[(rkdt [filename path-string?]
|
@defproc[(rkdt [filename (or/c path-string? #f) #f]
|
||||||
[#:wait? wait? boolean? #f]
|
[#:wait? wait? boolean? #f]
|
||||||
[#:width width exact-positive-integer? 900]
|
[#:width width exact-positive-integer? 900]
|
||||||
[#:height height exact-positive-integer? 650]
|
[#:height height exact-positive-integer? 650]
|
||||||
@@ -26,11 +27,14 @@ separate full editor application.
|
|||||||
(λ (call-time frame) #t)])
|
(λ (call-time frame) #t)])
|
||||||
void?]{
|
void?]{
|
||||||
|
|
||||||
@bold{Purpose.} Opens an editor window for @racket[filename].
|
@bold{Purpose.} Opens an editor window. When @racket[filename] is a path or
|
||||||
|
string, that file is opened. When @racket[filename] is @racket[#f], which is the
|
||||||
|
default, an empty editor is opened.
|
||||||
|
|
||||||
@bold{Preconditions.} @racket[filename] identifies the file to open.
|
@bold{Preconditions.} When supplied, @racket[filename] identifies the file to
|
||||||
@racket[frame-cb] must accept two arguments: a lifecycle symbol and the editor
|
open. @racket[frame-cb] must accept two arguments: a lifecycle symbol and the
|
||||||
frame. The geometry arguments specify valid dimensions and screen coordinates.
|
editor frame. The geometry arguments specify valid dimensions and screen
|
||||||
|
coordinates.
|
||||||
|
|
||||||
@bold{Postconditions.} An editor frame has been created and shown. When
|
@bold{Postconditions.} An editor frame has been created and shown. When
|
||||||
@racket[wait?] is @racket[#f], @racket[rkdt] returns after the frame has been
|
@racket[wait?] is @racket[#f], @racket[rkdt] returns after the frame has been
|
||||||
@@ -40,7 +44,11 @@ shown and the @racket['after-show] callback has run. When @racket[wait?] is
|
|||||||
@bold{Result.} The procedure returns @racket[(void)]. The editor frame itself is
|
@bold{Result.} The procedure returns @racket[(void)]. The editor frame itself is
|
||||||
made available to @racket[frame-cb] during its lifecycle callbacks.
|
made available to @racket[frame-cb] during its lifecycle callbacks.
|
||||||
|
|
||||||
@bold{Internal workings.} Each open editor receives an internal number. That
|
@bold{Internal workings.} A non-false @racket[filename] is converted to a
|
||||||
|
string before it is supplied to the Framework editor frame. A false filename is
|
||||||
|
passed through as @racket[#f], causing the frame to start without a file.
|
||||||
|
|
||||||
|
Each open editor receives an internal number. That
|
||||||
number is appended to the window title and is used to distinguish stored window
|
number is appended to the window title and is used to distinguish stored window
|
||||||
geometry. Numbers belonging to closed editors are reused. On close, the current
|
geometry. Numbers belonging to closed editors are reused. On close, the current
|
||||||
position and size are stored for that internal number and the current screen
|
position and size are stored for that internal number and the current screen
|
||||||
@@ -85,11 +93,17 @@ between @racket['after-show] and @racket['on-close].
|
|||||||
|
|
||||||
@section{Examples}
|
@section{Examples}
|
||||||
|
|
||||||
The simplest use opens a file and returns immediately:
|
The simplest use opens an empty editor and returns immediately:
|
||||||
|
|
||||||
@racketblock[
|
@racketblock[
|
||||||
(require rackedit)
|
(require rackedit)
|
||||||
|
|
||||||
|
(rkdt)
|
||||||
|
]
|
||||||
|
|
||||||
|
Supply a filename to open a file:
|
||||||
|
|
||||||
|
@racketblock[
|
||||||
(rkdt "notes.rkt")
|
(rkdt "notes.rkt")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user