On this page:
Dr  Racket Plugins

DrRacket Plugins🔗

Robert Bruce Findler

 (require drracket/tool-lib) package: drracket
 (require drracket/tool)
 (require drscheme/tool-lib)
 (require drscheme/tool)

This manual describes DrRacket’s plugins interface. It assumes familiarity with Racket, as described in the The Racket Guide, and the The Racket Reference, DrRacket, as described in DrRacket: The Racket Programming Environment and the GUI library, as described in The Racket Graphical Interface Toolkit. The Framework, as described in Framework: Racket GUI Application Framework, may also come in handy.

The drscheme/tool-lib and drscheme/tool libraries are for backward compatibility; they export all of the bindings of their drracket counterpart.

    1 Tool support for #lang-based Languages

      1.1 Syntax Coloring

      1.2 Indentation


      1.4 Keystrokes

      1.5 Filename Extensions

      1.6 REPL Submit Predicate

      1.7 Show Big “Definitions” and “Interactions” Labels

      1.8 Opting Out of Standard Toolbar Buttons

      1.9 Opting In to Language-Specific Toolbar Buttons

      1.10 Adding New Toolbar Buttons

      1.11 Definition Popup-Menu Navigation

      1.12 Definitions Text Surrogate

    2 Implementing DrRacket Plugins

    3 Adding Languages to DrRacket

      3.1 Adding Module-based Languages to DrRacket

      3.2 Adding Arbitrary Languages to DrRacket

      3.3 Language Extensions

    4 Creating New Kinds of DrRacket Frames

    5 Extending the Existing DrRacket Classes

    6 Expanding the User’s Program Text and Breaking

    7 Editor Modes

      7.1 Color Schemes

      7.2 General-purpose Modes

    8 Plugin Capabilities

    9 Check Syntax

      9.1 Check Syntax Button

      9.2 Syntax Properties that Check Syntax Looks For

    10 Cooperating with Background Check Syntax

    11 Teaching Languages

    12 Signatures

    13 drracket:get/extend

    14 drracket:unit

    15 drracket:language

    16 drracket:language-configuration

    17 drracket:debug

    18 drracket:rep

    19 drracket:frame

    20 drracket:help-desk

    21 drracket:eval

    22 drracket:modes

    23 drracket:module-language-tools

    24 drracket:module-language

    25 drracket:tracing

    26 drracket:init

    27 Backwards Compatibility



Thanks to PLT and the early adopters of the tools interface for their feedback and help.

A special thanks to Eli Barzilay, John Clements, Matthias Felleisen, Cormac Flanagan, Matthew Flatt, Max Hailperin, Philippe Meunier, and Christian Queinnec for their help being early clients for DrRacket plugins.