Skip to content

Latest commit

 

History

History
47 lines (31 loc) · 2.41 KB

README.md

File metadata and controls

47 lines (31 loc) · 2.41 KB

Quickscript: Scripting engine for DrRacket

Quickscript [docs] is a tool for DrRacket which allows to quickly and easily extend DrRacket features, without having to restart it. The scripts are automatically accessible from a new menu in DrRacket.

The slides from RacketCon 2018 provide more context on the why of Quickscript.

1. Installation

Quickscript comes bundled with DrRacket.

You may want to install additional scripts (also here), but Quickscript can also be used alone.

2. Usage

Have a look at the Scripts menu in DrRacket.

See the docs for more information.

3. Developing Quickscript

If you want to modify how Quickscript works, here's how to replace the bundled collection with the development one:

  1. Fork quickscript on github
  2. In some local folder on your computer, clone from the forked repo:
git clone https://github.com/<your-github-username>/quickscript.git
  1. Without changing directory,
raco pkg update --link quickscript

This may require sudo if it was used when installing racket.

Now the quickscript collection refers to the cloned repository.

4. History

Quickscript is the successor to Script Plugin, with some differences:

  • Each Quickscript script is a single file (instead of 2), which makes it easier to share and modify.
    • This is possible thanks to Racket's submodule system: the submodule containing the script's properties can be loaded without loading the script itself.
  • There is still one main directory for the user's new scripts, but Quickscript can look for scripts in various directories.
  • The script library can be managed with a GUI, making it easy to de/activate specific scripts, and add/remove script directories.
  • Racket's package system can be used to easily share sets of scripts.
  • 'Shadow' scripts allow the user to install third-party scripts (e.g., from a package), change their properties for his/her needs, but still make sure these third-party scripts can be updated.