Configure OpenEdge project settings
- Last Updated: December 23, 2025
- 3 minute read
- OpenEdge
- Version 12.8
- Documentation
- Create a configuration file named
openedge-project.jsonin the root directory of the project. This file defines key project settings such as project name, OpenEdge version, character set, and so on. As a JSON-formatted file, it is recommended to includeopenedge-project.jsonin your code repository for version control and team collaboration.Note: The configuration file must be namedopenedge-project.json. This specific filename is required by the Riverside plugin and cannot be changed. - To configure the ABL plugin for Windsurf, modify the configuration file.
The ABL plugin for Windsurf requires a configuration file to operate correctly. This plugin is not intended to replace the procedure editor, which allows direct file access and compilation. Instead, the plugin functions similar to Progress Developer Studio for OpenEdge, where
.projectand.propathfiles are required for project operations.To view or modify project attributes, open theopenedge-project.jsonfile that you created in step 1. Here is an example ofopenedge-project.jsonfile for themyProjectOpenEdge project:{ "name": "myProject", "version": "1.0", "oeversion": "12.8", "graphicalMode": true, "charset": "utf-8", "extraParameters": "-basekey ini", "numThreads": 1, "buildPath": [ { "path": "src", "type": "source", "build": "rcode" } ] }Note: These examples assume that your workspace contains ansrcdirectory for source code. Compiled code is placed in anrcodedirectory. - Restart the ABL language server to apply changes made to the
openedge-project.jsonfile. The language server monitors source directories for changes. If nor-codeexists in the build directory, procedures and classes are compiled at startup. During startup, the language server Output indicates which files are being compiled.You can restart the language server by either:
- Restarting Windsurf.
- Pressing
Ctrl+Shift+Pto execut the ABL: Restart Language Server command.
With correct configuration, the language server should start without error. If issues occur, review the following diagnostic files located in the
.builderdirectory:builder.lock—This file is managed by the ABL language server and is used to track active instances of Windsurf within a project. If you attempt to open multiple Windsurf sessions for the same project, the language server detects the locked state and report an error indicating that thebuilder.lockfile is in use.clientlog0.logandstdout0.log—These log files capture diagnostic output from the AVM. The AVM is launched with the-clientlog clientlog0.logoption, and its standard output is redirected tostdout0.log. Together, these logs provide valuable insights for troubleshooting issues and understanding the compilation process.
The language server Output reports any invalid attributes in the JSON configuration.

-
To test the configuration, create a new procedure file:
-
In Windsurf, right-click the
srcdirectory and select New File. -
Save the file using a valid filename, for example test1.p. Ensure that the filename includes the
.pextension to ensure it is recognized as an OpenEdge procedure file. -
Add the following code:
message "hello, world!". Here is a compilation errorAfter saving the file (
Ctrl+S), the second line is underlined in red, indicating a compilation error. The language server Output view confirms that the compilation failed.
Compilation errors are also displayed in the Problems view, which can be filtered to show issues for the active file.
Note: Windsurf does not include a Check Syntax button. Saving the file usingCtrl+Striggers background compilation and highlights errors inline. Alternatively, you can use ABL: Compile current buffer by pressingCtrl+Shift+Pto compile the current file.
-