a little progress on the tools manual
svn: r9724
This commit is contained in:
parent
42dcfbc79a
commit
06463490f3
|
@ -1,87 +1,84 @@
|
|||
|
||||
#lang scheme/unit
|
||||
(require mzlib/class
|
||||
"drsig.ss"
|
||||
mred
|
||||
mzlib/etc)
|
||||
|
||||
|
||||
|
||||
(import [prefix drscheme:unit: drscheme:unit^]
|
||||
[prefix drscheme:frame: drscheme:frame^]
|
||||
[prefix drscheme:rep: drscheme:rep^]
|
||||
[prefix drscheme:debug: drscheme:debug^])
|
||||
(export drscheme:get/extend^)
|
||||
|
||||
(define make-extender
|
||||
(λ (get-base% name)
|
||||
(let ([extensions (λ (x) x)]
|
||||
[built-yet? #f]
|
||||
[built #f]
|
||||
[verify
|
||||
(λ (f)
|
||||
(λ (%)
|
||||
(let ([new% (f %)])
|
||||
(if (and (class? new%)
|
||||
(subclass? new% %))
|
||||
new%
|
||||
(error 'extend-% "expected output of extension to create a subclass of its input, got: ~a"
|
||||
new%)))))])
|
||||
(values
|
||||
(rec add-extender
|
||||
(case-lambda
|
||||
[(extension) (add-extender extension #t)]
|
||||
[(extension before?)
|
||||
(when built-yet?
|
||||
(error 'extender "cannot build a new extension of ~a after initialization"
|
||||
name))
|
||||
(set! extensions
|
||||
(if before?
|
||||
(compose (verify extension) extensions)
|
||||
(compose extensions (verify extension))))]))
|
||||
(λ ()
|
||||
(unless built-yet?
|
||||
(set! built-yet? #t)
|
||||
(set! built (extensions (get-base%))))
|
||||
built)))))
|
||||
|
||||
(define (get-base-tab%)
|
||||
(drscheme:debug:test-coverage-tab-mixin
|
||||
(drscheme:debug:profile-tab-mixin
|
||||
drscheme:unit:tab%)))
|
||||
|
||||
(define-values (extend-tab get-tab) (make-extender get-base-tab% 'tab%))
|
||||
|
||||
(define (get-base-interactions-canvas%)
|
||||
drscheme:unit:interactions-canvas%)
|
||||
|
||||
(define-values (extend-interactions-canvas get-interactions-canvas)
|
||||
(make-extender get-base-interactions-canvas% 'interactions-canvas%))
|
||||
|
||||
(define (get-base-definitions-canvas%)
|
||||
drscheme:unit:definitions-canvas%)
|
||||
|
||||
(define-values (extend-definitions-canvas get-definitions-canvas)
|
||||
(make-extender get-base-definitions-canvas% 'definitions-canvas%))
|
||||
|
||||
(define (get-base-unit-frame%)
|
||||
(drscheme:debug:profile-unit-frame-mixin
|
||||
drscheme:unit:frame%))
|
||||
|
||||
(define-values (extend-unit-frame get-unit-frame)
|
||||
(make-extender get-base-unit-frame% 'drscheme:unit:frame))
|
||||
|
||||
(define (get-base-interactions-text%)
|
||||
(drscheme:debug:test-coverage-interactions-text-mixin
|
||||
drscheme:rep:text%))
|
||||
|
||||
(define-values (extend-interactions-text get-interactions-text)
|
||||
(make-extender get-base-interactions-text% 'interactions-text%))
|
||||
|
||||
(define (get-base-definitions-text%)
|
||||
(drscheme:debug:test-coverage-definitions-text-mixin
|
||||
(drscheme:debug:profile-definitions-text-mixin
|
||||
(drscheme:unit:get-definitions-text%))))
|
||||
|
||||
(define-values (extend-definitions-text get-definitions-text)
|
||||
(make-extender get-base-definitions-text% 'definitions-text%))
|
||||
|
||||
(require scheme/class
|
||||
"drsig.ss")
|
||||
|
||||
(import [prefix drscheme:unit: drscheme:unit^]
|
||||
[prefix drscheme:frame: drscheme:frame^]
|
||||
[prefix drscheme:rep: drscheme:rep^]
|
||||
[prefix drscheme:debug: drscheme:debug^])
|
||||
(export drscheme:get/extend^)
|
||||
|
||||
(define make-extender
|
||||
(λ (get-base% name)
|
||||
(let ([extensions (λ (x) x)]
|
||||
[built-yet? #f]
|
||||
[built #f]
|
||||
[verify
|
||||
(λ (f)
|
||||
(λ (%)
|
||||
(let ([new% (f %)])
|
||||
(if (and (class? new%)
|
||||
(subclass? new% %))
|
||||
new%
|
||||
(error 'extend-% "expected output of extension to create a subclass of its input, got: ~a"
|
||||
new%)))))])
|
||||
(values
|
||||
(letrec ([add-extender
|
||||
(case-lambda
|
||||
[(extension) (add-extender extension #t)]
|
||||
[(extension before?)
|
||||
(when built-yet?
|
||||
(error 'extender "cannot build a new extension of ~a after initialization"
|
||||
name))
|
||||
(set! extensions
|
||||
(if before?
|
||||
(compose (verify extension) extensions)
|
||||
(compose extensions (verify extension))))])])
|
||||
add-extender)
|
||||
(λ ()
|
||||
(unless built-yet?
|
||||
(set! built-yet? #t)
|
||||
(set! built (extensions (get-base%))))
|
||||
built)))))
|
||||
|
||||
(define (get-base-tab%)
|
||||
(drscheme:debug:test-coverage-tab-mixin
|
||||
(drscheme:debug:profile-tab-mixin
|
||||
drscheme:unit:tab%)))
|
||||
|
||||
(define-values (extend-tab get-tab) (make-extender get-base-tab% 'tab%))
|
||||
|
||||
(define (get-base-interactions-canvas%)
|
||||
drscheme:unit:interactions-canvas%)
|
||||
|
||||
(define-values (extend-interactions-canvas get-interactions-canvas)
|
||||
(make-extender get-base-interactions-canvas% 'interactions-canvas%))
|
||||
|
||||
(define (get-base-definitions-canvas%)
|
||||
drscheme:unit:definitions-canvas%)
|
||||
|
||||
(define-values (extend-definitions-canvas get-definitions-canvas)
|
||||
(make-extender get-base-definitions-canvas% 'definitions-canvas%))
|
||||
|
||||
(define (get-base-unit-frame%)
|
||||
(drscheme:debug:profile-unit-frame-mixin
|
||||
drscheme:unit:frame%))
|
||||
|
||||
(define-values (extend-unit-frame get-unit-frame)
|
||||
(make-extender get-base-unit-frame% 'drscheme:unit:frame))
|
||||
|
||||
(define (get-base-interactions-text%)
|
||||
(drscheme:debug:test-coverage-interactions-text-mixin
|
||||
drscheme:rep:text%))
|
||||
|
||||
(define-values (extend-interactions-text get-interactions-text)
|
||||
(make-extender get-base-interactions-text% 'interactions-text%))
|
||||
|
||||
(define (get-base-definitions-text%)
|
||||
(drscheme:debug:test-coverage-definitions-text-mixin
|
||||
(drscheme:debug:profile-definitions-text-mixin
|
||||
(drscheme:unit:get-definitions-text%))))
|
||||
|
||||
(define-values (extend-definitions-text get-definitions-text)
|
||||
(make-extender get-base-definitions-text% 'definitions-text%))
|
||||
|
|
|
@ -18,4 +18,13 @@ all of the names in the tools library, for use defining keybindings
|
|||
(shutdown-splash)
|
||||
(define-values/invoke-unit/infer drscheme@)
|
||||
(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)])))
|
||||
|
||||
|
||||
|
|
|
@ -1,21 +1,47 @@
|
|||
(module common scheme/base
|
||||
(require scribble/manual
|
||||
scribble/basic
|
||||
scheme/class
|
||||
scheme/contract)
|
||||
(provide (all-from-out scribble/manual)
|
||||
(all-from-out scribble/basic)
|
||||
(all-from-out scheme/class)
|
||||
(all-from-out scheme/contract))
|
||||
#reader scribble/reader
|
||||
#lang scheme/base
|
||||
(require (for-syntax scheme/base))
|
||||
|
||||
(require (for-label scheme/gui/base
|
||||
scheme/class
|
||||
scheme/contract
|
||||
scheme/base
|
||||
framework))
|
||||
(provide (for-label (all-from-out scheme/gui/base)
|
||||
(all-from-out scheme/class)
|
||||
(all-from-out scheme/contract)
|
||||
(all-from-out scheme/base)
|
||||
(all-from-out framework))))
|
||||
(require scribble/manual
|
||||
scribble/basic
|
||||
scheme/class
|
||||
scheme/contract)
|
||||
(provide (all-from-out scribble/manual)
|
||||
(all-from-out scribble/basic)
|
||||
(all-from-out scheme/class)
|
||||
(all-from-out scheme/contract))
|
||||
|
||||
(require (for-label scheme/gui/base
|
||||
scheme/class
|
||||
scheme/contract
|
||||
scheme/base
|
||||
drscheme/tool-lib
|
||||
framework))
|
||||
(provide (for-label (all-from-out scheme/gui/base)
|
||||
(all-from-out scheme/class)
|
||||
(all-from-out scheme/contract)
|
||||
(all-from-out scheme/base)
|
||||
(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.}))]))
|
|
@ -1,19 +1,20 @@
|
|||
#lang scribble/doc
|
||||
@(require "common.ss")
|
||||
@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 %%
|
||||
}
|
||||
|
||||
|
||||
@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%) ()]{
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#lang scribble/doc
|
||||
@(require "common.ss")
|
||||
@title{@tt{drscheme:frame}}
|
||||
@(defmodule drscheme/tool-lib)
|
||||
|
||||
@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
|
||||
@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.
|
||||
|
||||
|
|
|
@ -1,92 +1,11 @@
|
|||
#lang scribble/doc
|
||||
@(require "common.ss")
|
||||
@title{@tt{drscheme:get/extend}}
|
||||
@(defmodule drscheme/tool-lib)
|
||||
|
||||
@defclass[drscheme:get/extend:base-unit-frame% (drscheme:debug:profile-unit-frame-mixin) ()]{
|
||||
|
||||
|
||||
|
||||
@defconstructor[()]{
|
||||
Passes all arguments to @scheme[super-init].
|
||||
}}
|
||||
|
||||
|
||||
@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 %%
|
||||
|
||||
}}
|
||||
|
||||
@docs-get/extend[definitions-text]
|
||||
@docs-get/extend[interactions-text]
|
||||
@docs-get/extend[unit-frame]
|
||||
@docs-get/extend[definitions-canvas]
|
||||
@docs-get/extend[interactions-canvas]
|
||||
@docs-get/extend[tab]
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#lang scribble/doc
|
||||
@(require "common.ss")
|
||||
@title{@tt{drscheme:language}}
|
||||
@(defmodule drscheme/tool-lib)
|
||||
|
||||
@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}
|
||||
\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<%>)]{
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#lang scribble/doc
|
||||
@(require "common.ss")
|
||||
@title{@tt{drscheme:rep}}
|
||||
@(defmodule drscheme/tool-lib)
|
||||
|
||||
@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
|
||||
editor it is mixed onto.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#lang scribble/doc
|
||||
@(require "common.ss")
|
||||
@title{@tt{drscheme:unit}}
|
||||
@(defmodule drscheme/tool-lib)
|
||||
|
||||
@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
|
||||
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.
|
||||
|
||||
|
@ -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<%>)]{
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user