vscode-ibmi-languages

October 30, 2025 ยท View on GitHub

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!

There's probably a few syntax bugs. Please submit a pull request or issue if you see something amiss.

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 UIM Panel Group (PNLGRP)
  • Syntax highlighting for DDS files - physical, logical, display, printer, and ICF
  • Syntax highlighting for Machine Interface (MI)
  • 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

Last updated to Fall 2023 PTF enhancements for 7.5 and 7.4

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 .clleControl Language (CL)
.cmdCommand Definition (CMD)
.pnlgrpUIM Panel Group (PNLGRP)
.dspf, .dspf38DDS Display file
.icffDDS ICF file
.lf, .lf38DDS Logical file
.pf, .pf38, .ddsDDS Physical file
.prtf, .prtf38DDS Printer file
.rpg, .rpg38, .sqlrpgRPG/400
.rpgle, .sqlrpgleRPGLE and SQLRPGLE
.bndBinder Language
.miMachine Interface (MI)

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

Command (CMD)

CL

UIM Panel Group (PNLGRP)

CL

Data Description Specification - Physical File (DDS)

PF

Machine Interface (MI)

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.

References

Hints & Tips

tmLanguage Scope Names

The colours used in VS Code are determined by the scope names assigned in the relevant tmLanguage file, which are then mapped to colors by the active colours theme.

To see the actual scope at a cursor position:

  1. Place your cursor on the word (e.g. TIME)
  2. Press Ctrl+Shift+P (or Cmd+Shift+P on Mac)
  3. Type and select: Developer: Inspect Editor Tokens and Scopes
  4. This shows you the exact scope name and the colours applied by your theme