
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.
398 lines
11 KiB
Racket
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^))))
|