Moved unstable/cce/drscheme to unstable/gui/language-level.
This commit is contained in:
parent
fb53d5d191
commit
904f80cd44
|
@ -22,5 +22,4 @@
|
|||
|
||||
@include-section["scribble.scrbl"]
|
||||
|
||||
@include-section["drscheme.scrbl"]
|
||||
@include-section["slideshow.scrbl"]
|
||||
|
|
|
@ -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)
|
|
@ -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"]
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue
Block a user