improved the backwards compatibility documentation for the drscheme: names

This commit is contained in:
Robby Findler 2010-06-01 20:58:19 -05:00
parent 880fa2df0d
commit ac69f11a58
5 changed files with 71 additions and 15 deletions

View File

@ -338,6 +338,7 @@
(open (prefix language: drracket:language-cm^)) (open (prefix language: drracket:language-cm^))
(open (prefix help-desk: drracket:help-desk-cm^)) (open (prefix help-desk: drracket:help-desk-cm^))
(open (prefix eval: drracket:eval-cm^)) (open (prefix eval: drracket:eval-cm^))
(open (prefix font: drracket:font-cm^))
(open (prefix modes: drracket:modes-cm^)) (open (prefix modes: drracket:modes-cm^))
(open (prefix tracing: drracket:tracing-cm^)) (open (prefix tracing: drracket:tracing-cm^))
(open (prefix module-language: drracket:module-language-cm^)) (open (prefix module-language: drracket:module-language-cm^))

View File

@ -47,8 +47,13 @@
help-desk@ tracing@ app@ help-desk@ tracing@ app@
main@)) main@))
(define-signature drscheme/drracket:tool^
((open drracket:tool^)
(open drscheme:tool^)))
(define-unit/new-import-export drracket@ (define-unit/new-import-export drracket@
(import) (export drracket:tool^) (import)
(export drscheme/drracket:tool^)
(((prefix drracket:debug: drracket:debug^) (((prefix drracket:debug: drracket:debug^)
(prefix drracket:unit: drracket:unit^) (prefix drracket:unit: drracket:unit^)
(prefix drracket:rep: drracket:rep^) (prefix drracket:rep: drracket:rep^)
@ -61,5 +66,19 @@
(prefix drracket:modes: drracket:modes^) (prefix drracket:modes: drracket:modes^)
(prefix drracket:tracing: drracket:tracing^) (prefix drracket:tracing: drracket:tracing^)
(prefix drracket:module-language: drracket:module-language^) (prefix drracket:module-language: drracket:module-language^)
(prefix drracket:module-language-tools: drracket:module-language-tools^)) (prefix drracket:module-language-tools: drracket:module-language-tools^)
(prefix drscheme:debug: drracket:debug^)
(prefix drscheme:unit: drracket:unit^)
(prefix drscheme:rep: drracket:rep^)
(prefix drscheme:frame: drracket:frame^)
(prefix drscheme:get/extend: drracket:get/extend^)
(prefix drscheme:language-configuration: drracket:language-configuration^)
(prefix drscheme:language: drracket:language^)
(prefix drscheme:help-desk: drracket:help-desk^)
(prefix drscheme:eval: drracket:eval^)
(prefix drscheme:modes: drracket:modes^)
(prefix drscheme:tracing: drracket:tracing^)
(prefix drscheme:module-language: drracket:module-language^)
(prefix drscheme:module-language-tools: drracket:module-language-tools^))
drracket-unit@)) drracket-unit@))

View File

@ -1,12 +1,11 @@
#lang at-exp racket/base #lang at-exp racket/base
#| #|
This first time this is loaded, it loads all of DrRacket and invokes This first time this is loaded, it loads all of DrRacket and invokes
the main unit, starting up DrRacket. After that, it just provides the main unit, starting up DrRacket. After that, it just provides
all of the names in the tools library, for use defining keybindings all of the names in the tools library, for use defining keybindings
|# |#
(require racket/class (require racket/class
racket/gui/base racket/gui/base
(except-in scheme/unit struct) (except-in scheme/unit struct)
@ -36,6 +35,7 @@ all of the names in the tools library, for use defining keybindings
(define-values/invoke-unit/infer drracket@) (define-values/invoke-unit/infer drracket@)
(provide-signature-elements drracket:tool-cm^) ;; provide all of the classes & interfaces (provide-signature-elements drracket:tool-cm^) ;; provide all of the classes & interfaces
(provide-signature-elements drscheme:tool-cm^) ;; provide the classes & interfaces w/ drscheme: prefix
(provide drracket:unit:program-editor-mixin) (provide drracket:unit:program-editor-mixin)
(define-syntax (drracket:unit:program-editor-mixin stx) (define-syntax (drracket:unit:program-editor-mixin stx)
@ -54,7 +54,6 @@ all of the names in the tools library, for use defining keybindings
(string->symbol (string->symbol
(regexp-replace #rx"^drracket:" (symbol->string (syntax-e stx)) "drscheme:")) (regexp-replace #rx"^drracket:" (symbol->string (syntax-e stx)) "drscheme:"))
stx))] stx))]
[definitions '()]
[defthings [defthings
(syntax-case stx () (syntax-case stx ()
[(_ case ...) [(_ case ...)
@ -71,14 +70,11 @@ all of the names in the tools library, for use defining keybindings
[_ [_
(raise-syntax-error 'provide/dr/doc "unknown thing" case)])]) (raise-syntax-error 'provide/dr/doc "unknown thing" case)])])
(with-syntax ([mid (munge-id #'id)]) (with-syntax ([mid (munge-id #'id)])
(set! definitions (cons #`(define mid id) definitions))
#'(thing-doc mid ctc ("This is provided for backwards compatibility; new code should use " (scheme id) " instead."))))) #'(thing-doc mid ctc ("This is provided for backwards compatibility; new code should use " (scheme id) " instead.")))))
(syntax->list #'(case ...)))])]) (syntax->list #'(case ...)))])])
(syntax-case stx () (syntax-case stx ()
[(_ rst ...) [(_ rst ...)
#`(begin #`(provide/doc #,@defthings rst ...)])))
#,@definitions
(provide/doc #,@defthings rst ...))])))
(provide/dr/doc (provide/dr/doc

View File

@ -27,19 +27,25 @@
(all-from-out mrlib/switchable-button) (all-from-out mrlib/switchable-button)
(all-from-out framework))) (all-from-out framework)))
(provide tools-title tools-include) (provide tools-title tools-include tools-include/drs)
(define (tools-title name) (define (tools-title name)
(title (tt (format "drracket:~a" name)))) (title (tt (format "drracket:~a" name))))
(define-syntax (tools-include stx) (define-syntax (tools-include stx)
(syntax-case stx () (syntax-case stx ()
[(_ name) [(_ name)
(string? (syntax-e #'name)) (string? (syntax-e #'name))
(let ([name (syntax-e #'name)]) (let ([name (syntax-e #'name)])
(with-syntax ([rx-drr (regexp (format "^~a" (regexp-quote (format "drracket:~a:" name))))] (with-syntax ([rx-drr (regexp (format "^~a" (regexp-quote (format "drracket:~a:" name))))])
[rx-drs (regexp (format "^~a" (regexp-quote (format "drscheme:~a:" name))))]) #'(include-previously-extracted scribblings/tools/tool-lib-extracts rx-drr)))]))
#'(begin
(include-previously-extracted scribblings/tools/tool-lib-extracts rx-drr) (define-syntax (tools-include/drs stx)
(include-previously-extracted scribblings/tools/tool-lib-extracts rx-drs))))])) (syntax-case stx ()
[(_ name)
(string? (syntax-e #'name))
(let ([name (syntax-e #'name)])
(with-syntax ([rx-drs (regexp (format "^~a" (regexp-quote (format "drscheme:~a:" name))))])
#'(include-previously-extracted scribblings/tools/tool-lib-extracts rx-drs)))]))
(provide docs-get/extend) (provide docs-get/extend)
(define-syntax (docs-get/extend stx) (define-syntax (docs-get/extend stx)

View File

@ -1,6 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(begin @(begin
(require scribble/manual (require scribble/manual
"common.rkt"
(for-label scheme/gui/base) (for-label scheme/gui/base)
(for-label drracket/tool-lib) (for-label drracket/tool-lib)
(for-label scheme/unit scheme/contract scheme/class) (for-label scheme/unit scheme/contract scheme/class)
@ -518,4 +519,37 @@ Check Syntax is a part of the DrRacket collection, but is implemented via the to
@include-section["module-language-tools.scrbl"] @include-section["module-language-tools.scrbl"]
@include-section["module-language.scrbl"] @include-section["module-language.scrbl"]
@section{Backwards compatibility}
This section lists the bindings that begin with @tt{drscheme:} provided by the tools
library; they are here for backwards compatibility and to provide links to the
@tt{drracket:} versions of the names.
@(require drracket/private/drsig
(for-syntax racket/base
racket/unit-exptime))
@(define-syntax (drs-compat stx)
(let-values ([(drs-parent drs-vars drs-var-defs-in-sig drs-stx-defs-in-sig) (signature-members #'drscheme:tool-cm^ #'here)]
[(drr-parent drr-vars drr-var-defs-in-sig drr-stx-defs-in-sig) (signature-members #'drracket:tool-cm^ #'here)])
(with-syntax ([(drs-id ...) drs-vars]
[(drr-id ...) drr-vars])
#'(begin
(defthing drs-id any/c
"This is provided for backwards compatibility; new code should use " (scheme drr-id) " instead.")
...))))
@drs-compat[]
@(tools-include/drs "debug")
@(tools-include/drs "eval")
@(tools-include/drs "frame")
@(tools-include/drs "get/extend")
@(tools-include/drs "help-desk")
@(tools-include/drs "language-configuration")
@(tools-include/drs "language")
@(tools-include/drs "modes")
@(tools-include/drs "module-language-tools")
@(tools-include/drs "module-language")
@(tools-include/drs "rep")
@(tools-include/drs "unit")
@index-section[] @index-section[]