Version: 5.2.1

DrRacket Plugins

Robert Bruce Findler

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

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 library is for backward compatibility; it exports all of the bindings of drracket/tool-lib.

    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

    7 Language-specific capabilities

      7.1 Customizing DrRacket’s behavior

      7.2 Customizing DrRacket’s GUI

    8 Check Syntax

      8.1 Accessing Check Syntax Programmatically

      8.2 Check Syntax Button

      8.3 Disappeared uses and bindings

    9 Teaching Languages

    10 drracket:get/extend

    11 drracket:unit

    12 drracket:language

    13 drracket:language-configuration

    14 drracket:debug

    15 drracket:rep

    16 drracket:frame

    17 drracket:help-desk

    18 drracket:eval

    19 drracket:modes

    20 drracket:module-language-tools

    21 drracket:module-language

    22 Documentation Utilities

      22.1 Searching in the Docs

      22.2 Bug Reporting

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