a little progress on the tools manual

svn: r9724
This commit is contained in:
Robby Findler 2008-05-07 17:57:14 +00:00
parent 42dcfbc79a
commit 06463490f3
9 changed files with 161 additions and 205 deletions

View File

@ -1,19 +1,15 @@
#lang scheme/unit #lang scheme/unit
(require mzlib/class
"drsig.ss"
mred
mzlib/etc)
(require scheme/class
"drsig.ss")
(import [prefix drscheme:unit: drscheme:unit^]
(import [prefix drscheme:unit: drscheme:unit^]
[prefix drscheme:frame: drscheme:frame^] [prefix drscheme:frame: drscheme:frame^]
[prefix drscheme:rep: drscheme:rep^] [prefix drscheme:rep: drscheme:rep^]
[prefix drscheme:debug: drscheme:debug^]) [prefix drscheme:debug: drscheme:debug^])
(export drscheme:get/extend^) (export drscheme:get/extend^)
(define make-extender (define make-extender
(λ (get-base% name) (λ (get-base% name)
(let ([extensions (λ (x) x)] (let ([extensions (λ (x) x)]
[built-yet? #f] [built-yet? #f]
@ -28,7 +24,7 @@
(error 'extend-% "expected output of extension to create a subclass of its input, got: ~a" (error 'extend-% "expected output of extension to create a subclass of its input, got: ~a"
new%)))))]) new%)))))])
(values (values
(rec add-extender (letrec ([add-extender
(case-lambda (case-lambda
[(extension) (add-extender extension #t)] [(extension) (add-extender extension #t)]
[(extension before?) [(extension before?)
@ -38,50 +34,51 @@
(set! extensions (set! extensions
(if before? (if before?
(compose (verify extension) extensions) (compose (verify extension) extensions)
(compose extensions (verify extension))))])) (compose extensions (verify extension))))])])
add-extender)
(λ () (λ ()
(unless built-yet? (unless built-yet?
(set! built-yet? #t) (set! built-yet? #t)
(set! built (extensions (get-base%)))) (set! built (extensions (get-base%))))
built))))) built)))))
(define (get-base-tab%) (define (get-base-tab%)
(drscheme:debug:test-coverage-tab-mixin (drscheme:debug:test-coverage-tab-mixin
(drscheme:debug:profile-tab-mixin (drscheme:debug:profile-tab-mixin
drscheme:unit:tab%))) drscheme:unit:tab%)))
(define-values (extend-tab get-tab) (make-extender get-base-tab% 'tab%)) (define-values (extend-tab get-tab) (make-extender get-base-tab% 'tab%))
(define (get-base-interactions-canvas%) (define (get-base-interactions-canvas%)
drscheme:unit:interactions-canvas%) drscheme:unit:interactions-canvas%)
(define-values (extend-interactions-canvas get-interactions-canvas) (define-values (extend-interactions-canvas get-interactions-canvas)
(make-extender get-base-interactions-canvas% 'interactions-canvas%)) (make-extender get-base-interactions-canvas% 'interactions-canvas%))
(define (get-base-definitions-canvas%) (define (get-base-definitions-canvas%)
drscheme:unit:definitions-canvas%) drscheme:unit:definitions-canvas%)
(define-values (extend-definitions-canvas get-definitions-canvas) (define-values (extend-definitions-canvas get-definitions-canvas)
(make-extender get-base-definitions-canvas% 'definitions-canvas%)) (make-extender get-base-definitions-canvas% 'definitions-canvas%))
(define (get-base-unit-frame%) (define (get-base-unit-frame%)
(drscheme:debug:profile-unit-frame-mixin (drscheme:debug:profile-unit-frame-mixin
drscheme:unit:frame%)) drscheme:unit:frame%))
(define-values (extend-unit-frame get-unit-frame) (define-values (extend-unit-frame get-unit-frame)
(make-extender get-base-unit-frame% 'drscheme:unit:frame)) (make-extender get-base-unit-frame% 'drscheme:unit:frame))
(define (get-base-interactions-text%) (define (get-base-interactions-text%)
(drscheme:debug:test-coverage-interactions-text-mixin (drscheme:debug:test-coverage-interactions-text-mixin
drscheme:rep:text%)) drscheme:rep:text%))
(define-values (extend-interactions-text get-interactions-text) (define-values (extend-interactions-text get-interactions-text)
(make-extender get-base-interactions-text% 'interactions-text%)) (make-extender get-base-interactions-text% 'interactions-text%))
(define (get-base-definitions-text%) (define (get-base-definitions-text%)
(drscheme:debug:test-coverage-definitions-text-mixin (drscheme:debug:test-coverage-definitions-text-mixin
(drscheme:debug:profile-definitions-text-mixin (drscheme:debug:profile-definitions-text-mixin
(drscheme:unit:get-definitions-text%)))) (drscheme:unit:get-definitions-text%))))
(define-values (extend-definitions-text get-definitions-text) (define-values (extend-definitions-text get-definitions-text)
(make-extender get-base-definitions-text% 'definitions-text%)) (make-extender get-base-definitions-text% 'definitions-text%))

View File

@ -18,4 +18,13 @@ all of the names in the tools library, for use defining keybindings
(shutdown-splash) (shutdown-splash)
(define-values/invoke-unit/infer drscheme@) (define-values/invoke-unit/infer drscheme@)
(close-splash) (close-splash)
(provide-signature-elements drscheme:tool^)) (provide-signature-elements drscheme:tool^)
(provide drscheme:unit:program-editor-mixin)
(define-syntax (drscheme:unit:program-editor-mixin stx)
(syntax-case stx ()
[(_ a ...)
#'((drscheme:unit:get-program-editor-mixin) a ...)]
[_ #'(drscheme:unit:get-program-editor-mixin)])))

View File

@ -1,21 +1,47 @@
(module common scheme/base #reader scribble/reader
(require scribble/manual #lang scheme/base
(require (for-syntax scheme/base))
(require scribble/manual
scribble/basic scribble/basic
scheme/class scheme/class
scheme/contract) scheme/contract)
(provide (all-from-out scribble/manual) (provide (all-from-out scribble/manual)
(all-from-out scribble/basic) (all-from-out scribble/basic)
(all-from-out scheme/class) (all-from-out scheme/class)
(all-from-out scheme/contract)) (all-from-out scheme/contract))
(require (for-label scheme/gui/base (require (for-label scheme/gui/base
scheme/class scheme/class
scheme/contract scheme/contract
scheme/base scheme/base
drscheme/tool-lib
framework)) framework))
(provide (for-label (all-from-out scheme/gui/base) (provide (for-label (all-from-out scheme/gui/base)
(all-from-out scheme/class) (all-from-out scheme/class)
(all-from-out scheme/contract) (all-from-out scheme/contract)
(all-from-out scheme/base) (all-from-out scheme/base)
(all-from-out framework)))) (all-from-out drscheme/tool-lib)
(all-from-out framework)))
(provide docs-get/extend)
(define-syntax (docs-get/extend stx)
(syntax-case stx ()
[(_ id)
(identifier? #'id)
(with-syntax ([get (datum->syntax
#'id
(string->symbol
(format "drscheme:get/extend:get-~a" (syntax-e #'id))))]
[extend (datum->syntax
#'id
(string->symbol
(format "drscheme:get/extend:extend-~a" (syntax-e #'id))))])
#'(begin
@defproc*[([(extend (mixin mixin-contract))
void?]
[(extend (mixin mixin-contract) (before boolean?))
void?])]{
Does stuff.
}
@defproc[(get) class?]{Returns the class.}))]))

View File

@ -1,19 +1,20 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.ss")
@title{@tt{drscheme:debug}} @title{@tt{drscheme:debug}}
@(defmodule drscheme/tool-lib)
@defmixin[drscheme:debug:profile-unit-frame-mixin () ((domain . drscheme:frame:) (domain . drscheme:unit:frame))]{ @defmixin[drscheme:debug:profile-unit-frame-mixin (drscheme:frame:<%> drscheme:unit:frame<%>) ()]{
} }
@defmixin[drscheme:debug:profile-interactions-text-mixin () ((domain . drscheme:rep:text))]{ @defmixin[drscheme:debug:profile-interactions-text-mixin (drscheme:rep:text<%>) ()]{
%% %% drscheme:unit %% %% %% drscheme:unit %%
} }
@defmixin[drscheme:debug:profile-definitions-text-mixin () ((domain . drscheme:unit:definitions-text) (domainc . text))]{ @defmixin[drscheme:debug:profile-definitions-text-mixin (drscheme:unit:definitions-text<%> text%) ()]{
} }

View File

@ -1,6 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.ss")
@title{@tt{drscheme:frame}} @title{@tt{drscheme:frame}}
@(defmodule drscheme/tool-lib)
@defclass[drscheme:frame:name-message% canvas% ()]{ @defclass[drscheme:frame:name-message% canvas% ()]{
@ -31,7 +32,7 @@ hasn't been saved is shown.
}}} }}}
@defmixin[drscheme:frame:mixin (drscheme:frame:<%>) ((domain . drscheme:frame:basics) (domain . frame:text-info) (domain . frame:editor))]{ @defmixin[drscheme:frame:mixin (drscheme:frame:basics<%> frame:text-info<%> frame:editor<%>) (drscheme:frame:<%>)]{
Provides an implementation of Provides an implementation of
@scheme[drscheme:frame:<%>] @scheme[drscheme:frame:<%>]
@ -39,7 +40,7 @@ Provides an implementation of
} }
@defmixin[drscheme:frame:basics-mixin (drscheme:frame:basics<%>) ((domain . frame:standard-menus))]{ @defmixin[drscheme:frame:basics-mixin (frame:standard-menus<%>) (drscheme:frame:basics<%>)]{
Use this mixin to establish some common menu items across various DrScheme windows. Use this mixin to establish some common menu items across various DrScheme windows.

View File

@ -1,92 +1,11 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.ss")
@title{@tt{drscheme:get/extend}} @title{@tt{drscheme:get/extend}}
@(defmodule drscheme/tool-lib)
@defclass[drscheme:get/extend:base-unit-frame% (drscheme:debug:profile-unit-frame-mixin) ()]{ @docs-get/extend[definitions-text]
@docs-get/extend[interactions-text]
@docs-get/extend[unit-frame]
@docs-get/extend[definitions-canvas]
@defconstructor[()]{ @docs-get/extend[interactions-canvas]
Passes all arguments to @scheme[super-init]. @docs-get/extend[tab]
}}
@defclass[drscheme:get/extend:base-tab% () ()]{
@defconstructor[()]{
Passes all arguments to @scheme[super-init].
}}
@defclass[drscheme:get/extend:base-interactions-text% (drscheme:debug:profile-interactions-text-mixin) ()]{
@defconstructor[()]{
Passes all arguments to @scheme[super-init].
}}
@defclass[drscheme:get/extend:base-interactions-canvas% (canvas:delegate-mixin canvas:info-mixin) ()]{
@defconstructor/make[()]{
Calls @scheme[super-new], adding @scheme['hide-hscroll] to the style argument.
}
@defconstructor[()]{
Passes all arguments to @scheme[super-init].
}
@defmethod[#:mode override
(on-focus)
void?]{
When the focus is on, calls
@method[drscheme:unit:frame% make-searchable] with @scheme[this].
}}
@defclass[drscheme:get/extend:base-definitions-text% (drscheme:debug:profile-definitions-text-mixin) ()]{
@defconstructor[()]{
Passes all arguments to @scheme[super-init].
}}
@defclass[drscheme:get/extend:base-definitions-canvas% (canvas:delegate-mixin canvas:info-mixin) ()]{
@defconstructor/make[()]{
Calls @scheme[super-new], adding @scheme['hide-hscroll] to the style argument.
}
@defconstructor[()]{
Passes all arguments to @scheme[super-init].
}
@defmethod[#:mode override
(on-focus)
void?]{
When the focus is on, calls
@method[drscheme:unit:frame% make-searchable] with @scheme[this].
%% %% drscheme:debug %%
}}

View File

@ -1,6 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.ss")
@title{@tt{drscheme:language}} @title{@tt{drscheme:language}}
@(defmodule drscheme/tool-lib)
@definterface[drscheme:language:simple-module-based-language<%> ()]{ @definterface[drscheme:language:simple-module-based-language<%> ()]{
@ -131,7 +132,7 @@ returns the corresponding init arg.
}} }}
@defmixin[drscheme:language:simple-module-based-language->module-based-language-mixin (drscheme:language:module-based-language<%>) ((domain . drscheme:language:simple-module-based-language))]{ @defmixin[drscheme:language:simple-module-based-language->module-based-language-mixin (drscheme:language:simple-module-based-language<%>) (drscheme:language:module-based-language<%>)]{
\index{drscheme:language:simple-settings} \index{drscheme:language:simple-settings}
\label{tools:simple-settings} \label{tools:simple-settings}
@ -492,7 +493,7 @@ Defaultly returns @scheme[#f].
}}} }}}
@defmixin[drscheme:language:module-based-language->language-mixin (drscheme:language:language<%>) ((domain . drscheme:language:module-based-language))]{ @defmixin[drscheme:language:module-based-language->language-mixin (drscheme:language:module-based-language<%>) (drscheme:language:language<%>)]{

View File

@ -1,6 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.ss")
@title{@tt{drscheme:rep}} @title{@tt{drscheme:rep}}
@(defmodule drscheme/tool-lib)
@definterface[drscheme:rep:text<%> ()]{ @definterface[drscheme:rep:text<%> ()]{
@ -312,7 +313,7 @@ in the user's eventspace
}} }}
@defmixin[drscheme:rep:drs-bindings-keymap-mixin () ((domain . editor:keymap))]{ @defmixin[drscheme:rep:drs-bindings-keymap-mixin (editor:keymap<%>) ()]{
This mixin adds some drscheme-specific keybindings to the This mixin adds some drscheme-specific keybindings to the
editor it is mixed onto. editor it is mixed onto.

View File

@ -1,6 +1,7 @@
#lang scribble/doc #lang scribble/doc
@(require "common.ss") @(require "common.ss")
@title{@tt{drscheme:unit}} @title{@tt{drscheme:unit}}
@(defmodule drscheme/tool-lib)
@definterface[drscheme:unit:tab<%> (drscheme:rep:context<%>)]{ @definterface[drscheme:unit:tab<%> (drscheme:rep:context<%>)]{
@ -175,7 +176,7 @@ Clears any error highlighting.
}} }}
@defmixin[drscheme:unit:program-editor-mixin () ((domainc . text) (domain . editor:basic))]{ @defmixin[drscheme:unit:program-editor-mixin (text% editor:basic<%>) ()]{
This mixes in the ability to reset the highlighting for This mixes in the ability to reset the highlighting for
error message when the user modifies the buffer. Use it for error message when the user modifies the buffer. Use it for
@ -220,7 +221,7 @@ Passes all arguments to @scheme[super-init].
}} }}
@defclass[drscheme:unit:frame% (drscheme:frame:mixin drscheme:frame:basics-mixin drscheme:unit:frame<%>) ()]{ @defclass[drscheme:unit:frame% (drscheme:frame:basics-mixin (drscheme:frame:mixin frame:searchable%)) (drscheme:unit:frame<%>)]{
This frame inserts the Scheme and Language menus into the menu bar as it is initialized. This frame inserts the Scheme and Language menus into the menu bar as it is initialized.
@ -688,7 +689,7 @@ Note that the capability must be registered separately, via
}} }}
@defclass[drscheme:unit:definitions-text% (scheme:text-mixin drscheme:unit:program-editor-mixin drscheme:rep:drs-bindings-keymap-mixin drscheme:unit:definitions-text<%>) ()]{ @defclass[drscheme:unit:definitions-text% (drscheme:rep:drs-bindings-keymap-mixin (drscheme:unit:program-editor-mixin (scheme:text-mixin text:info%))) (drscheme:unit:definitions-text<%>)]{