Moved unstable/cce/drscheme to unstable/gui/language-level.

This commit is contained in:
Carl Eastlund 2010-05-29 22:01:44 -04:00
parent fb53d5d191
commit 904f80cd44
4 changed files with 61 additions and 60 deletions

View File

@ -22,5 +22,4 @@
@include-section["scribble.scrbl"]
@include-section["drscheme.scrbl"]
@include-section["slideshow.scrbl"]

View File

@ -1,6 +1,6 @@
#lang scheme/gui
#lang racket/gui
(require drscheme/tool
(require drracket/tool
string-constants
unstable/dict
(only-in test-engine/scheme-gui make-formatter)
@ -23,7 +23,7 @@
(define (read-module-body [port (current-input-port)]
[source (object-name port)]
[reader read-syntax]
[path 'scheme]
[path 'racket]
[name 'program])
(let*-values ([(line-1 col-1 pos-1) (port-next-location port)]
[(terms) (read-all-syntax port source reader)]
@ -48,7 +48,7 @@
language-level-metadata-mixin))
(define-unit language-level@
(import drscheme:tool^)
(import drracket:tool^)
(export language-level^)
(define (make-language-level
@ -59,7 +59,7 @@
#:url [url #f]
#:reader [reader read-syntax]
. mixins)
(let* ([mx-default (drscheme:language:get-default-mixin)]
(let* ([mx-default (drracket:language:get-default-mixin)]
[mx-custom (apply compose (reverse mixins))])
(new (mx-custom (mx-default simple-language-level%))
[module path]
@ -70,12 +70,12 @@
[reader (make-namespace-syntax-reader reader)])))
(define simple-language-level%
(drscheme:language:module-based-language->language-mixin
(drscheme:language:simple-module-based-language->module-based-language-mixin
drscheme:language:simple-module-based-language%)))
(drracket:language:module-based-language->language-mixin
(drracket:language:simple-module-based-language->module-based-language-mixin
drracket:language:simple-module-based-language%)))
(define (language-level-render-mixin to-sexp show-void?)
(mixin (drscheme:language:language<%>) ()
(mixin (drracket:language:language<%>) ()
(super-new)
(define/override (render-value/format value settings port width)
@ -83,18 +83,18 @@
(super render-value/format (to-sexp value) settings port width)))))
(define (language-level-capability-mixin dict)
(mixin (drscheme:language:language<%>) ()
(mixin (drracket:language:language<%>) ()
(super-new)
(define/augment (capability-value key)
(dict-ref/failure
dict key
(lambda ()
(inner (drscheme:language:get-capability-default key)
(inner (drracket:language:get-capability-default key)
capability-value key))))))
(define language-level-no-executable-mixin
(mixin (drscheme:language:language<%>) ()
(mixin (drracket:language:language<%>) ()
(super-new)
(inherit get-language-name)
@ -106,8 +106,8 @@
#f '(ok stop)))))
(define language-level-eval-as-module-mixin
(mixin (drscheme:language:language<%>
drscheme:language:module-based-language<%>) ()
(mixin (drracket:language:language<%>
drracket:language:module-based-language<%>) ()
(super-new)
(inherit get-reader get-module)
@ -134,29 +134,29 @@
(list (cons 'macro-stepper:enabled #t)))))
(define language-level-check-expect-mixin
(mixin (drscheme:language:language<%>) ()
(mixin (drracket:language:language<%>) ()
(super-new)
(inherit render-value/format)
(define/augment (capability-value key)
(case key
[(tests:test-menu tests:dock-menu) #t]
[else (inner (drscheme:language:get-capability-default key)
[else (inner (drracket:language:get-capability-default key)
capability-value
key)]))
(define/override (on-execute settings run-in-user-thread)
(let* ([drscheme-namespace (current-namespace)]
(let* ([drracket-namespace (current-namespace)]
[test-engine-path
((current-module-name-resolver)
'test-engine/scheme-tests #f #f)])
(run-in-user-thread
(lambda ()
(namespace-attach-module drscheme-namespace test-engine-path)
(namespace-attach-module drracket-namespace test-engine-path)
(namespace-require test-engine-path)
(scheme-test-data
(list (drscheme:rep:current-rep)
drscheme-eventspace
(list (drracket:rep:current-rep)
drracket-eventspace
test-display%))
(test-execute (get-preference 'tests:enable? (lambda () #t)))
(test-format
@ -168,7 +168,7 @@
meta-lines
meta->settings
settings->meta)
(mixin (drscheme:language:language<%>) ()
(mixin (drracket:language:language<%>) ()
(inherit default-settings)
(super-new)
@ -191,7 +191,7 @@
(let ([stx (apply reader args)])
(if (syntax? stx) (namespace-syntax-introduce stx) stx))))
(define drscheme-eventspace (current-eventspace))
(define drracket-eventspace (current-eventspace))
(define experimental-language-hierarchy
(list (cons (string-constant experimental-languages)

View File

@ -7,6 +7,7 @@
@local-table-of-contents[#:style 'immediate-only]
@include-section["gui/language-level.scrbl"]
@include-section["gui/notify.scrbl"]
@include-section["gui/prefs.scrbl"]
@include-section["gui/window.scrbl"]

View File

@ -1,17 +1,19 @@
#lang scribble/doc
@(require scribble/manual
"../scribble.ss"
(for-label scheme/gui
drscheme/tool-lib
unstable/cce/drscheme))
#lang scribble/manual
@(require "../utils.rkt"
(for-label racket/gui
drracket/tool-lib
unstable/class
unstable/gui/language-level))
@title[#:style 'quiet #:tag "cce-drscheme"]{DrScheme Plugins}
@title{DrRacket Language Levels}
@defmodule[unstable/cce/drscheme]
@defmodule[unstable/gui/language-level]
@unstable[@author+email["Carl Eastlund" "cce@racket-lang.org"]]
@defthing[language-level@ unit?]{
This unit imports @scheme[drscheme:tool^] and exports @scheme[language-level^].
This unit imports @scheme[drracket:tool^] and exports @scheme[language-level^].
}
@ -28,12 +30,12 @@ This unit imports @scheme[drscheme:tool^] and exports @scheme[language-level^].
[#:reader reader
(->* [] [any/c input-port?] (or/c syntax? eof-object?))
read-syntax])
(object-provides/c drscheme:language:language<%>)]{
(object-provides/c drracket:language:language<%>)]{
Constructs a language level as an instance of
@scheme[drscheme:language:language<%>] with the given @scheme[name] based on the
@scheme[drracket:language:language<%>] with the given @scheme[name] based on the
language defined by the module at @scheme[path]. Applies
@scheme[(drscheme:language:get-default-mixin)] and the given @scheme[mixin]s to
@scheme[(drracket:language:get-default-mixin)] and the given @scheme[mixin]s to
@sigelem[language-level^ simple-language-level%] to construct the class, and
uses the optional keyword arguments to fill in the language's description and
reader.
@ -41,23 +43,23 @@ reader.
}
@defthing[simple-language-level%
(class-provides/c drscheme:language:language<%>
drscheme:language:module-based-language<%>
drscheme:language:simple-module-based-language<%>)]{
(class-provides/c drracket:language:language<%>
drracket:language:module-based-language<%>
drracket:language:simple-module-based-language<%>)]{
Equal to
@scheme[
(drscheme:language:module-based-language->language-mixin
(drscheme:language:simple-module-based-language->module-based-language-mixin
drscheme:language:simple-module-based-language%))].
(drracket:language:module-based-language->language-mixin
(drracket:language:simple-module-based-language->module-based-language-mixin
drracket:language:simple-module-based-language%))].
}
@defproc[(language-level-render-mixin [to-sexp (-> any/c any/c)]
[show-void? boolean?])
(mixin-provides/c [drscheme:language:language<%>] [])]{
(mixin-provides/c [drracket:language:language<%>] [])]{
Produces a mixin that overrides @method[drscheme:language:language<%>
Produces a mixin that overrides @method[drracket:language:language<%>
render-value/format] to apply @scheme[to-sexp] to each value before printing it,
and to skip @scheme[void?] values (pre-transformation) if @scheme[show-void?] is
@scheme[#f].
@ -65,9 +67,9 @@ and to skip @scheme[void?] values (pre-transformation) if @scheme[show-void?] is
}
@defproc[(language-level-capability-mixin [dict dict?])
(mixin-provides/c [drscheme:language:language<%>] [])]{
(mixin-provides/c [drracket:language:language<%>] [])]{
Produces a mixin that augments @method[drscheme:language:language<%>
Produces a mixin that augments @method[drracket:language:language<%>
capability-value] to look up each key in @scheme[dict], producing the
corresponding value if the key is found and deferring to @scheme[inner]
otherwise.
@ -75,19 +77,19 @@ otherwise.
}
@defthing[language-level-no-executable-mixin
(mixin-provides/c [drscheme:language:language<%>] [])]{
(mixin-provides/c [drracket:language:language<%>] [])]{
Overrides @method[drscheme:language:language<%> create-executable] to print an
Overrides @method[drracket:language:language<%> create-executable] to print an
error message in a dialog box.
}
@defthing[language-level-eval-as-module-mixin
(mixin-provides/c [drscheme:language:language<%>
drscheme:language:module-based-language<%>]
(mixin-provides/c [drracket:language:language<%>
drracket:language:module-based-language<%>]
[])]{
Overrides @method[drscheme:language:language<%> front-end/complete-program] to
Overrides @method[drracket:language:language<%> front-end/complete-program] to
wrap terms from the definition in a module based on the language level's
definition module. This duplicates the behavior of the HtDP teaching languages,
for instance.
@ -95,8 +97,7 @@ for instance.
}
@defthing[language-level-macro-stepper-mixin
(mixin-provides/c [drscheme:language:language<%>
language/macro-stepper<%>]
(mixin-provides/c [drracket:language:language<%>]
[])]{
This mixin enables the macro stepper for its language level.
@ -104,9 +105,9 @@ This mixin enables the macro stepper for its language level.
}
@defthing[language-level-check-expect-mixin
(mixin-provides/c [drscheme:language:language<%>] [])]{
(mixin-provides/c [drracket:language:language<%>] [])]{
This mixin overrides @method[drscheme:language:language<%> on-execute] to set up
This mixin overrides @method[drracket:language:language<%> on-execute] to set up
the @scheme[check-expect] test engine to a language level similarly to the HtDP
teaching languages.
@ -117,14 +118,14 @@ teaching languages.
[meta-lines exact-nonnegative-integer?]
[meta->settings (-> string? any/c any/c)]
[settings->meta (-> symbol? any/c string?)])
(mixin-provides/c [drscheme:language:language<%>] [])]{
(mixin-provides/c [drracket:language:language<%>] [])]{
This mixin constructs a language level that stores metadata in saved files
allowing DrScheme to automatically switch back to this language level upon
opening them. It overrides @method[drscheme:language:language<%>
get-reader-module], @method[drscheme:language:language<%> get-metadata],
@method[drscheme:language:language<%> metadata->settings], and
@method[drscheme:language:language<%> get-metadata-lines].
allowing Drracket to automatically switch back to this language level upon
opening them. It overrides @method[drracket:language:language<%>
get-reader-module], @method[drracket:language:language<%> get-metadata],
@method[drracket:language:language<%> metadata->settings], and
@method[drracket:language:language<%> get-metadata-lines].
The resulting language level uses the reader from @scheme[reader-module], and is
recognized in files that start with a reader directive for that module path