vscode-ibmi-languages
Somewhat decent syntax highlighting for IBMi languages such as RPG, CL, DDS, MI, and RPGLE fixed/free.
Please consider downloading code-for-ibmi to edit RPG, RPGLE, and CL directly in VS Code!
Pretty much all I did was crawl through various IBM documentation on my lunch breaks and throw some regular expressions in here when I got the chance. The regex I made probably isn't too efficient and it does mess up sometimes, but I think it works for like 90% of cases I've come across.
By all means, I probably got a couple things wrong; submit a pull request or issue if you see something please! (That goes for anything in here)
Contributors
Features
- Syntax highlighting for RPG III and RPG/400 - H,F,E,L,I,C,O specs
- Syntax highlighting for Control Language (CL)
- Syntax highlighting for Command Definition (CMD)
- Syntax highlighting for Online Help Panel Group (PNLGRP)
- Syntax highlighting for DDS files - physical, logical, display, printer, and ICF
- Syntax highlighting for some Machine Interface (MI) - see below
- Syntax highlighting for RPGLE fixed - H,F,D,I,C,O,P specs
- Syntax highlighting for RPGLE free
- Syntax highlighting for embedded SQL in SQLRPG and SQLRPGLE
- Support for a mix of RPGLE free and fixed format
- Support for binder language
- Support for DB2 SQL keywords in embedded SQL
RPG syntax last updated to Spring 2022: RPG Enhancements for 7.3, 7.4, and 7.5
If anyone stumbles across this and has any awesome material for machine interface, please send me an email. I really only made the bare basics for MI and I'd love to add to it
File Types (case insensitive)
For each source type, I lumped legacy(system/38) source types together with the regular source types.
Extension(s) | Description |
---|---|
.cl, .clp, .clp38 .clle | Control Language (CL) |
.cmd | Command Definition (CMD) |
.pnlgrp | Online Help Panel Group (PNLGRP) |
.dspf, .dspf38 | DDS Display file |
.icff | DDS ICF file |
.lf, .lf38 | DDS Logical file |
.pf, .pf38, .dds | DDS Physical file |
.prtf, .prtf38 | DDS Printer file |
.rpg, .rpg38, .sqlrpg | RPG/400 |
.rpgle, .sqlrpgle | RPGLE and SQLRPGLE |
.bnd | Binder Language |
.mi | Machine Interface (MI) |
Screenshots
See screenshots/ for more examples of syntax highlighting.
RPG/400
RPGLE Fixed Format
RPGLE Free Format
RPGLE Free with Embedded SQL
Control Language (CL)
Command (CMD)
Online Help Panel Group (PNLGRP)
Data Description Specification - Physical File (DDS)
Machine Interface (MI)
Publishing
VS Code Marketplace
npm install -g vsce
vsce package
vsce publish -p VSCE_SECRET
OpenVSX
This extension is also deployed to Open VSX
npx ovsx publish -p OPEN_VSX_SECRET
Changelog
See CHANGELOG.md
Known Bugs / Future Improvements
See issues.
Featured In
- https://www.itjungle.com/2020/12/09/vs-code-provides-another-coding-option-for-ibm-i/
- https://www.anandk.dev/2020/11/VSCode-IBMi-AS400.html
- https://github.com/halcyon-tech/code-for-ibmi