racket/collects/drracket/private/drsig.rkt
Robby Findler b972a0940d Added online expansion and compilation of files
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.
2011-08-02 16:28:16 -05:00

398 lines
11 KiB
Racket

#lang racket/base
(require racket/unit)
(provide drracket:eval^
drracket:debug^
drracket:module-language^
drracket:module-language/int^
drracket:module-language-tools^
drracket:get-collection^
drracket:main^
drracket:init^
drracket:language-configuration^
drracket:language-configuration/internal^
drracket:tools^
drracket:tools-drs^
drracket:get/extend^
drracket:unit^
drracket:frame^
drracket:program^
drracket:text^
drracket:rep^
drracket:app^
drracket:draw-arrow^
drracket:help-desk^
drracket:language^
drracket:multi-file-search^
drracket:module-overview^
drracket:font^
drracket:modes^
drracket:tracing^
drracket:tool-exports^
drracket:tool^
drracket:tool-cm^
drscheme:tool^
drscheme:tool-cm^
drracket:interface^)
(define-signature drracket:modes-cm^
())
(define-signature drracket:modes^ extends drracket:modes-cm^
(add-mode
get-modes
add-initial-modes
make-mode
(struct mode (name surrogate repl-submit matches-language)
#:omit-constructor)))
(define-signature drracket:font-cm^
())
(define-signature drracket:font^ extends drracket:font-cm^
(setup-preferences))
(define-signature drracket:debug-cm^
(profile-definitions-text-mixin
profile-tab-mixin
profile-unit-frame-mixin
test-coverage-interactions-text-mixin
test-coverage-definitions-text-mixin
test-coverage-tab-mixin))
(define-signature drracket:debug^ extends drracket:debug-cm^
(make-debug-error-display-handler
make-debug-eval-handler
error-display-handler/stacktrace
bug-info->ticket-url
test-coverage-enabled
profiling-enabled
add-prefs-panel
get-error-color
hide-backtrace-window
show-backtrace-window
show-backtrace-window/edition-pairs
open-and-highlight-in-file
small-planet-bitmap
srcloc->edition/pair
test-coverage-on-style-name
test-coverage-off-style-name
;show-error-and-highlight
;print-bug-to-stderr
;display-srclocs-in-error
;show-syntax-error-context
))
(define-signature drracket:module-language-cm^
(module-language<%>))
(define-signature drracket:module-language^ extends drracket:module-language-cm^
(add-module-language
module-language-put-file-mixin))
(define-signature drracket:module-language/int^ extends drracket:module-language^
(module-language-online-expand-text-mixin
module-language-online-expand-frame-mixin
module-language-online-expand-tab-mixin))
(define-signature drracket:module-language-tools-cm^
(frame-mixin
tab-mixin
definitions-text-mixin))
(define-signature drracket:module-language-tools^ extends drracket:module-language-tools-cm^
(add-opt-out-toolbar-button
add-online-expansion-handler
;; the below should be hidden from tools
(struct online-expansion-handler (mod-path id local-handler))
get-online-expansion-handlers
no-more-online-expansion-handlers))
(define-signature drracket:get-collection-cm^ ())
(define-signature drracket:get-collection^ extends drracket:get-collection-cm^
(get-file/collection))
(define-signature drracket:main-cm^ ())
(define-signature drracket:main^ extends drracket:main-cm^ ())
(define-signature drracket:init-cm^
())
(define-signature drracket:init^ extends drracket:init-cm^
(original-output-port
original-error-port
original-error-display-handler
primitive-eval
primitive-load
error-display-handler-message-box-title
system-logger
system-custodian
system-eventspace
system-namespace
system-security-guard
first-dir))
(define-signature drracket:language-configuration-cm^
())
(define-signature drracket:language-configuration^ extends drracket:language-configuration-cm^
(add-language
get-languages
(struct language-settings (language settings))
make-language-settings
get-settings-preferences-symbol
language-dialog
fill-language-dialog))
(define-signature drracket:language-configuration/internal^ extends drracket:language-configuration^
(add-info-specified-languages
get-default-language-settings
settings-preferences-symbol
get-all-scheme-manual-keywords
get-all-manual-keywords
add-built-in-languages
not-a-language-language<%>))
(define-signature drracket:tools-cm^
())
(define-signature drracket:tools^ extends drracket:tools-cm^
((struct successful-tool (spec bitmap name url))
make-successful-tool
get-successful-tools
only-in-phase
load/invoke-all-tools
add-prefs-panel))
(define-signature drracket:tools-drs-cm^
())
(define-signature drracket:tools-drs^ extends drracket:tools-drs-cm^
(invoke-drs-tool))
(define-signature drracket:get/extend-cm^
())
(define-signature drracket:get/extend^ extends drracket:get/extend-cm^
(extend-tab
extend-interactions-text
extend-definitions-text
extend-interactions-canvas
extend-definitions-canvas
extend-unit-frame
get-tab
get-interactions-text
get-definitions-text
get-interactions-canvas
get-definitions-canvas
get-unit-frame))
(define-signature drracket:unit-cm^
(tab%
frame%
definitions-canvas%
get-definitions-text%
interactions-canvas%))
(define-signature drracket:unit^ extends drracket:unit-cm^
(open-drscheme-window
find-symbol
get-program-editor-mixin
add-to-program-editor-mixin
forget-saved-bug-report
record-saved-bug-report
(struct teachpack-callbacks (get-names remove add))
make-teachpack-callbacks
add-search-help-desk-menu-item))
(define-signature drracket:frame-cm^
(mixin
basics-mixin))
(define-signature drracket:frame^ extends drracket:frame-cm^
(create-root-menubar
add-keybindings-item
planet-spec?))
(define-signature drracket:program-cm^
(frame%))
(define-signature drracket:program^ extends drracket:program-cm^
())
(define-signature drracket:eval-cm^
())
(define-signature drracket:eval^ extends drracket:eval-cm^
(expand-program
expand-program/multiple
traverse-program/multiple
build-user-eventspace/custodian
set-basic-parameters
get-snip-classes))
(define-signature drracket:text-cm^
(text<%>
text%))
(define-signature drracket:text^ extends drracket:text-cm^
())
(define-signature drracket:setup-cm^
())
(define-signature drracket:setup^ extends drracket:setup-cm^
(do-setup))
(define-signature drracket:rep-cm^
(drs-bindings-keymap-mixin
text%
text<%>))
(define-signature drracket:rep^ extends drracket:rep-cm^
(current-rep
current-language-settings
current-value-port
get-drs-bindings-keymap
error-delta
get-welcome-delta
get-dark-green-delta
drs-autocomplete-mixin))
(define-signature drracket:app-cm^
())
(define-signature drracket:app^ extends drracket:app-cm^
(about-drscheme
add-language-items-to-help-menu
add-important-urls-to-help-menu
switch-language-to))
(define-signature drracket:draw-arrow-cm^
())
(define-signature drracket:draw-arrow^ extends drracket:draw-arrow-cm^
(draw-arrow))
(define-signature drracket:help-desk-cm^
())
(define-signature drracket:help-desk^ extends drracket:help-desk-cm^
(help-desk
goto-plt-license
get-docs))
(define-signature drracket:language-cm^
(language<%>
module-based-language<%>
simple-module-based-language<%>
simple-module-based-language%
simple-module-based-language->module-based-language-mixin
module-based-language->language-mixin))
(define-signature drracket:language^ extends drracket:language-cm^
(get-default-mixin
extend-language-interface
get-language-extensions
create-module-based-launcher
create-module-based-stand-alone-executable
create-module-based-distribution
create-distribution-for-executable
create-executable-gui
put-executable
;(struct loc (source position line column span))
make-text/pos
(struct text/pos (text start end))
make-simple-settings
(struct simple-settings (case-sensitive
printing-style
fraction-style
show-sharing
insert-newlines
annotations))
simple-settings->vector
simple-module-based-language-config-panel
simple-module-based-language-convert-value
setup-printing-parameters
add-snip-value
setup-setup-values
register-capability
capability-registered?
get-capability-default
get-capability-contract))
(define-signature drracket:multi-file-search-cm^
())
(define-signature drracket:multi-file-search^ extends drracket:multi-file-search-cm^
(multi-file-search
search-type-params
search-types))
(define-signature drracket:module-overview-cm^
())
(define-signature drracket:module-overview^ extends drracket:module-overview-cm^
(module-overview
module-overview/file
make-module-overview-pasteboard
fill-pasteboard))
(define-signature drracket:tracing-cm^
(tab-mixin
frame-mixin))
(define-signature drracket:tracing^ extends drracket:tracing-cm^
(annotate))
(define-signature drracket:interface^
(frame:basics<%>
frame:<%>
unit:frame<%>
unit:definitions-text<%>
unit:tab<%>
rep:context<%>
module-language-tools:definitions-text<%>
module-language-tools:tab<%>
module-language-tools:frame<%>))
(define-signature drracket:tool-exports-cm^
())
(define-signature drracket:tool-exports^ extends drracket:tool-exports-cm^
(phase1
phase2))
(define-signature no-prefix:tool-cm^
((open (prefix debug: drracket:debug-cm^))
(open (prefix unit: drracket:unit-cm^))
(open (prefix rep: drracket:rep-cm^))
(open (prefix frame: drracket:frame-cm^))
(open (prefix get/extend: drracket:get/extend-cm^))
(open (prefix language-configuration: drracket:language-configuration-cm^))
(open (prefix language: drracket:language-cm^))
(open (prefix help-desk: drracket:help-desk-cm^))
(open (prefix eval: drracket:eval-cm^))
(open (prefix font: drracket:font-cm^))
(open (prefix modes: drracket:modes-cm^))
(open (prefix tracing: drracket:tracing-cm^))
(open (prefix module-language: drracket:module-language-cm^))
(open (prefix module-language-tools: drracket:module-language-tools-cm^))
(open drracket:interface^)))
(define-signature drracket:tool-cm^
((open (prefix drracket: no-prefix:tool-cm^))))
(define-signature drscheme:tool-cm^
((open (prefix drscheme: no-prefix:tool-cm^))))
(define-signature no-prefix:tool^
((open (prefix debug: drracket:debug^))
(open (prefix unit: drracket:unit^))
(open (prefix rep: drracket:rep^))
(open (prefix frame: drracket:frame^))
(open (prefix get/extend: drracket:get/extend^))
(open (prefix language-configuration: drracket:language-configuration^))
(open (prefix language: drracket:language^))
(open (prefix help-desk: drracket:help-desk^))
(open (prefix eval: drracket:eval^))
(open (prefix modes: drracket:modes^))
(open (prefix tracing: drracket:tracing^))
(open (prefix module-language: drracket:module-language^))
(open (prefix module-language-tools: drracket:module-language-tools^))
(open drracket:interface^)))
(define-signature drracket:tool^
((open (prefix drracket: no-prefix:tool^))))
(define-signature drscheme:tool^
((open (prefix drscheme: no-prefix:tool^))))