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 exports all of the bindings of their drracket counterpart.

    1 Implementing DrRacket Plugins

    2 Adding Languages to DrRacket

      2.1 #lang-based Languages in DrRacket

      2.2 Adding Module-based Languages to DrRacket

      2.3 Adding Arbitrary Languages to DrRacket

      2.4 Language Extensions

    3 Creating New Kinds of DrRacket Frames

    4 Extending the Existing DrRacket Classes

    5 Expanding the User’s Program Text and Breaking

    6 Editor Modes

      6.1 Color Schemes

      6.2 General-purpose Modes

    7 Language-Specific Capabilities

      7.1 Customizing DrRacket’s Behavior

      7.2 Customizing DrRacket’s GUI

    8 Check Syntax

      8.1 Check Syntax Button

      8.2 Syntax Properties that Check Syntax Looks For

    9 Cooperating with Background Check Syntax

    10 Teaching Languages

    11 Signatures

    12 drracket:get/extend

    13 drracket:unit

    14 drracket:language

    15 drracket:language-configuration

    16 drracket:debug

    17 drracket:rep

    18 drracket:frame

    19 drracket:help-desk

    20 drracket:eval

    21 drracket:modes

    22 drracket:module-language-tools

    23 drracket:module-language

    24 drracket:tracing

    25 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.