This extension adds Progress 4GL/OpenABL language support to the Zed editor.
- Syntax highlighting for Progress 4GL/OpenABL files
- Support for common file extensions (.p, .i, .w, .cls)
- Recognition of:
- Keywords and control structures
- Data types
- Functions and procedures
- Classes and interfaces
- Variables and field references
- Comments (both line and block style)
- String literals
- Numbers and operators
- Preprocessor directives
-
Clone this repository:
git clone https://github.com/vasiv/zed-progress.git
-
Build the extension:
cargo build --release
-
Install the extension in Zed:
- Open Zed
- Press
Cmd+Shift+P
to open the command palette - Select "Extensions: Install Extension"
- Choose the built extension from the target/release directory
The extension automatically activates for files with the following extensions:
.p
(Progress source files).i
(Include files).w
(Window files).cls
(Class files)
This extension uses:
- tree-sitter-abl for parsing
- Zed's extension API for syntax highlighting and language support
- Ensure you have Rust installed
- Clone the repository
- Run
cargo build
Create a test file with the .p
extension and open it in Zed to verify syntax highlighting.
Example:
/* Example Progress 4GL code */
DEFINE VARIABLE customer AS CHARACTER NO-UNDO.
DEFINE TEMP-TABLE tt_customer
FIELD cust_num AS INTEGER
FIELD name AS CHARACTER
INDEX cust_num IS PRIMARY UNIQUE cust_num.
PROCEDURE getCustomer:
DEFINE INPUT PARAMETER p_cust_num AS INTEGER.
DEFINE OUTPUT PARAMETER p_name AS CHARACTER.
FIND FIRST customer WHERE customer.cust_num = p_cust_num NO-LOCK.
p_name = customer.name.
END PROCEDURE.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details.
- tree-sitter-abl for the Progress 4GL grammar
- Zed for the excellent editor and extension API
For issues and feature requests, please create an issue on GitHub.