Skip to content

zosrothko/vscode-ibmi-languages

 
 

Repository files navigation

vscode-ibmi-languages

Somewhat decent syntax highlighting for IBMi languages such as RPG, CL, DDS, MI, and RPGLE fixed/free.

Visual Studio Marketplace Version Visual Studio Marketplace Downloads Visual Studio Marketplace Rating GitHub

I made this extension because I do a lot more reading than writing with IBMi languages at work and I always have VS Code open. I also wanted to learn how to make a simple language extension for VS Code and get better with regular expressions.

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)

Development in VS Code

This extension is really only useful for reading code, not writing. See Issue 50 for more details.

Also check out https://github.com/NielsLiisberg/RPG-vsCode-Getting-Started for an introduction to an RPG + VS Code workflow.

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 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

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
.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

Screenshots

See screenshots/ for more examples of syntax highlighting.

RPG/400

RPG/400

RPGLE Fixed Format

RPGLE Fixed

RPGLE Free Format

RPGLE Free

RPGLE Free with Embedded SQL

SQLRPGLE

Control Language (CL)

CL

Data Description Specification - Physical File (DDS)

PF

Machine Interface (MI)

MI

Publishing

  • npm install -g vsce
  • vsce package
  • vsce publish

Changelog

See CHANGELOG.md

Known Bugs / Future Improvements

See issues.

References

About

Somewhat decent syntax highlighting for IBMi languages such as RPG, CL, DDS, MI, and RPGLE fixed/free.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JSON 100.0%