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 help-desk: drracket:help-desk-cm^))
(open (prefix eval: drracket:eval-cm^))
(open (prefix font: drracket:font-cm^))
(open (prefix modes: drracket:modes-cm^))
(open (prefix tracing: drracket:tracing-cm^))
(open (prefix module-language: drracket:module-language-cm^))

View File

@ -47,8 +47,13 @@
help-desk@ tracing@ app@
main@))
(define-signature drscheme/drracket:tool^
((open drracket:tool^)
(open drscheme:tool^)))
(define-unit/new-import-export drracket@
(import) (export drracket:tool^)
(import)
(export drscheme/drracket:tool^)
(((prefix drracket:debug: drracket:debug^)
(prefix drracket:unit: drracket:unit^)
(prefix drracket:rep: drracket:rep^)
@ -61,5 +66,19 @@
(prefix drracket:modes: drracket:modes^)
(prefix drracket:tracing: drracket:tracing^)
(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@))

View File

@ -1,12 +1,11 @@
#lang at-exp racket/base
#|
This first time this is loaded, it loads all of DrRacket and invokes
the main unit, starting up DrRacket. After that, it just provides
all of the names in the tools library, for use defining keybindings
|#
(require racket/class
racket/gui/base
(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@)
(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)
(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
(regexp-replace #rx"^drracket:" (symbol->string (syntax-e stx)) "drscheme:"))
stx))]
[definitions '()]
[defthings
(syntax-case stx ()
[(_ 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)])])
(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.")))))
(syntax->list #'(case ...)))])])
(syntax-case stx ()
[(_ rst ...)
#`(begin
#,@definitions
(provide/doc #,@defthings rst ...))])))
#`(provide/doc #,@defthings rst ...)])))
(provide/dr/doc

View File

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

View File

@ -1,6 +1,7 @@
#lang scribble/doc
@(begin
(require scribble/manual
"common.rkt"
(for-label scheme/gui/base)
(for-label drracket/tool-lib)
(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.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[]