racket/collects/drracket/private/syncheck/intf.rkt
Robby Findler c9724446e6 adjust check syntax keyboard shortcuts
- make them use the same names as the context menu items
- add c:x;a to tack/untack arrows
2013-05-01 07:18:12 -05:00

69 lines
2.7 KiB
Racket

#lang racket/base
(require racket/class
"local-member-names.rkt")
(define syncheck-annotations<%>
(interface ()
syncheck:find-source-object
syncheck:add-background-color
syncheck:add-require-open-menu
syncheck:add-docs-menu
syncheck:add-id-set
syncheck:add-arrow
syncheck:add-tail-arrow
syncheck:add-mouse-over-status
syncheck:add-jump-to-definition
syncheck:add-definition-target
syncheck:color-range
syncheck:add-rename-menu))
(define syncheck-text<%>
(interface (syncheck-annotations<%>)
syncheck:init-arrows
syncheck:clear-arrows
syncheck:arrows-visible?
syncheck:get-bindings-table
syncheck:jump-to-next-bound-occurrence
syncheck:jump-to-binding-occurrence
syncheck:jump-to-definition
syncheck:rename-identifier
syncheck:tack/untack-arrows))
;; use this to communicate the frame being
;; syntax checked w/out having to add new
;; parameters to all of the functions
(define current-annotations (make-parameter #f))
(define annotations-mixin
(mixin () (syncheck-annotations<%>)
(define/public (syncheck:find-source-object stx) #f)
(define/public (syncheck:add-background-color source start end color) (void))
(define/public (syncheck:add-require-open-menu source start end key) (void))
(define/public (syncheck:add-id-set all-ids new-name-intereferes?)
(define fst (car all-ids))
(define src (list-ref fst 0))
(define sym
(cond
[(syntax? src) (syntax-e src)]
[(object? src) (send src get-text (list-ref fst 1) (list-ref fst 2))]
[else 'just-a-random-guess-as-to-a-good-id]))
(syncheck:add-rename-menu sym all-ids new-name-intereferes?))
(define/public (syncheck:add-rename-menu sym all-ids new-name-intereferes?) (void))
(define/public (syncheck:add-docs-menu text start-pos end-pos key the-label path definition-tag tag) (void))
(define/public (syncheck:add-arrow start-text start-pos-left start-pos-right
end-text end-pos-left end-pos-right
actual? level)
(void))
(define/public (syncheck:add-tail-arrow from-text from-pos to-text to-pos) (void))
(define/public (syncheck:add-mouse-over-status text pos-left pos-right str) (void))
(define/public (syncheck:add-jump-to-definition text start end id filename submods) (void))
(define/public (syncheck:add-definition-target source pos-left pos-right id mods) (void))
(define/public (syncheck:color-range source start finish style-name) (void))
(super-new)))
(provide syncheck-text<%>
syncheck-annotations<%>
current-annotations
annotations-mixin)