
being edited in DrRacket (via places) Added an API to let tools have access to that information (and compute more stuff) Used that to make an online version of Check Syntax which led to a separately callable Check Syntax API.
36 lines
884 B
Racket
36 lines
884 B
Racket
#lang at-exp racket/base
|
|
(require racket/contract
|
|
racket/class
|
|
"private/syncheck/traversals.rkt"
|
|
"private/syncheck/intf.rkt")
|
|
|
|
(provide/contract
|
|
[make-traversal
|
|
(-> namespace?
|
|
(or/c path-string? #f)
|
|
(values (->* (syntax?) ((-> syntax? void?)) void?)
|
|
(-> void?)))]
|
|
[syncheck-annotations<%>
|
|
interface?]
|
|
[current-annotations
|
|
(parameter/c (or/c #f (is-a?/c syncheck-annotations<%>)))]
|
|
[annotations-mixin
|
|
(and/c mixin-contract
|
|
(-> any/c (implementation?/c syncheck-annotations<%>)))])
|
|
|
|
;; methods in syncheck-annotations<%>
|
|
(provide
|
|
syncheck:find-source-object
|
|
syncheck:add-background-color
|
|
syncheck:add-require-open-menu
|
|
syncheck:add-docs-menu
|
|
syncheck:add-rename-menu
|
|
syncheck:add-arrow
|
|
syncheck:add-tail-arrow
|
|
syncheck:add-mouse-over-status
|
|
syncheck:add-jump-to-definition
|
|
syncheck:color-range)
|
|
|
|
|
|
|