A VS Code extension for writing ABL scratch files (a.k.a. Scratchpad / ABL Dojo).
This extension depends on the OpenEdge ABL extension by Riverside Software.
It lets you quickly create and run short Progress OpenEdge ABL sratch snippets.
The ABL Scratches view, which is automatically opened after installation, detects the OpenEdge projects in your workspace and allows each scratch to run in the context of a selected project.
To add a new scratch, use the action New scratch or click the + button. When the workspace has multiple OpenEdge projects, a drop-down is shown where you can pick the target OpenEdge project.
Scratch files are stored inside your project in the .scratches folder. When creating a scratch for the first time, you will be prompted to include .scratches to your .gitignore file (if the project uses Git).
The ABL Scratches view allows you to manage your scratch files. From this view you can create, open, run and delete scratches. For each scratch, the last run timestamp is displayed in the list. It's also possible to set a custom 'Description' to the scratch and to choose a different Mode (gui, chui, batch).
- New scratch
Creates a new scratch file and opens it in the editor
Default keybinding:
Win+F3(orCmd+F3for macOS) (Also available via the Command Palette, context menu of the Explorer and Status Bar when a default OpenEdge project is set) - New scratch (run procedure)
Creates a new scratch with initial text to
RUNthe selected procedure (only for*.pfiles) - Run Scratch
Executes the selected scratch in the context of its assigned project
Default keybinding:
Win+F2(orCmd+F2for macOS) (Also available via the Command Palette) - Debug Scratch Executes the selected scratch in the context of its assigned project and attaches it to the debugger (Also available via the Command Palette)
- Delete Scratch Removes the selected scratch and automatically closes the editor tab if it is currently open
- Open Scratch Double-click (or right-click) to open the scratch file in the editor
- Set as description In the context menu of an opened scratch editor, the selected text can be used to set the 'Description' of the scratch
- Run Mode
The run mode when creating a new scratch (
Project setting,CHUI,GUIorBatch) Defaults toProject setting - Initial Scratch Content The initial text inserted when creating a new scratch
- Debug Port The debug port for attaching the debugger
- Sort Column
Sort column in the scratch grid (
ScratchorLast run) Defaults toScratch - Sort Direction
The sort direction of the sort column (
ascordesc) Defaults to 'desc'
With the Debug action (button / Command Palette), a scratch (with modes gui and chui) can be started with the debugReady port. For that, the port number has to be entered in the settings first. Also, set up a launch configuration, example:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to ABL process",
"type": "abl",
"request": "attach",
"hostname": "localhost",
"mode": "legacy",
"port": 3099,
"pause": true,
"localRoot": "${workspaceFolder}",
"refProjects": [ "ProjectA", "ProjectB" ]
}
]
}Use optional refProjects if your project relies on other workspace projects.
When the warning message 11725 (Use port 3099 for the Debugger to connect to) appears, the debug launch configuration (F11) can be started. The debugger will wait on the first executable line. Click 'Continue' (F5) to go to the first breakpoint.
More info here: Debugger
To check debug logging, open the 'ABL Scratch Playground' logging channel in the OUTPUT view and set the log-level to Debug
Please report issues and feature requests via the GitHub repository.
You may also be interested in my other extension: ABL DataDigger Launcher.
- This extension is licensed under the MIT License.
- OpenEdge and ABL are registered trademarks of Progress Software Corporation.

