racket/collects/macro-debugger/syntax-browser/interfaces.ss
Ryan Culpepper d91e2b4502 Added the macro stepper
svn: r3987
2006-08-08 20:32:58 +00:00

124 lines
2.6 KiB
Scheme

(module interfaces mzscheme
(require (lib "class.ss"))
(provide (all-defined))
;; syntax-controller<%>
;; A syntax-controller coordinates state shared by many different syntax views.
;; Syntax views can share:
;; - selection
;; - partitioning configuration
;; - property display
(define syntax-controller<%>
(interface ()
;; select-syntax : syntax -> void
select-syntax
;; get-selected-syntax : -> syntax/#f
get-selected-syntax
;; get-properties-controller : -> syntax-properties-controller<%>
get-properties-controller
;; add-view-colorer : syntax-colorer<%> -> void
add-view-colorer
;; get-view-colorers : -> (list-of syntax-colorer<%>)
get-view-colorers
;; add-selection-listener : syntax -> void
add-selection-listener
))
;; syntax-properties-controller<%>
(define syntax-properties-controller<%>
(interface ()
;; set-syntax : syntax -> void
set-syntax
;; show : boolean -> void
#;show
;; is-shown? : -> boolean
#;is-shown?))
;; syntax-configuration<%>
(define syntax-configuration<%>
(interface ()
;; get-primary-partition : -> partition<%>
get-primary-partition
;; get-secondary-partition : -> partition<%>
get-secondary-partition
;; update-identifier=? : ... -> void
update-identifier=?))
;; syntax-colorer<%>
(define syntax-colorer<%>
(interface ()
select-syntax
apply-styles))
;;----------
;; Convenience widget, specialized for displaying stx and not much else
(define syntax-browser<%>
(interface ()
add-syntax
add-text
add-separator
erase-all
select-syntax
get-text
))
(define partition<%>
(interface ()
;; get-partition : any -> number
get-partition
;; same-partition? : any any -> number
same-partition?
;; count : -> number
count))
;; Internal interfaces
(define syntax-pp-snip-controller<%>
(interface ()
on-select-syntax
))
(define color-controller<%>
(interface ()
get-primary-partition
get-secondary-partition
))
(define syntax-pp<%>
(interface ()
pretty-print-syntax
get-range
get-identifier-list
flat=>stx
stx=>flat))
(define typesetter<%>
(interface ()
get-output-port
get-current-position))
(define range<%>
(interface ()
get-start
set-start
get-ranges
add-range
all-ranges))
)