An open API service indexing awesome lists of open source software.

https://github.com/barrettotte/vscode-ibmi-languages

Syntax highlighting for IBM i languages such as RPG, CL, DDS, MI, and RPGLE fixed/free.
https://github.com/barrettotte/vscode-ibmi-languages

as400 cl control-language dds ibmi ile-rpg iseries language-extensions rpg rpgle rpgle-free syntax-highlighting vscode vscode-extension

Last synced: 4 months ago
JSON representation

Syntax highlighting for IBM i languages such as RPG, CL, DDS, MI, and RPGLE fixed/free.

Awesome Lists containing this project

README

          

# vscode-ibmi-languages

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

**Please consider downloading [code-for-ibmi](https://github.com/halcyon-tech/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

* [@barrettotte](https://github.com/barrettotte)
* [@worksofliam](https://github.com/worksofliam)
* [@chrjorgensen](https://github.com/chrjorgensen)
* [@GajenderI](https://github.com/GajenderI)
* [@lildude](https://github.com/lildude)
* [@richardm90](https://github.com/richardm90)

## 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 .clle | Control Language (CL) |
| .cmd | Command Definition (CMD) |
| .pnlgrp | UIM 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

![RPG/400](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/rpg400.png)

### RPGLE Fixed Format

![RPGLE Fixed](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/rpglefixed.PNG)

### RPGLE Free Format

![RPGLE Free](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/rpglefree.PNG)

### RPGLE Free with Embedded SQL

![SQLRPGLE](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/sqlrpgle.PNG)

### Control Language (CL)

![CL](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/cl.png)

### Command (CMD)

![CL](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/cmd.png)

### UIM Panel Group (PNLGRP)

![CL](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/pnlgrp.png)

### Data Description Specification - Physical File (DDS)

![PF](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/pf.PNG)

### Machine Interface (MI)

![MI](https://raw.githubusercontent.com/barrettotte/vscode-ibmi-languages/master/screenshots/mi.PNG)

## Publishing

### VS Code Marketplace

* `npm install -g vsce`
* `vsce package`
* `vsce publish -p VSCE_SECRET`

### OpenVSX

This extension is also deployed to [Open VSX](https://open-vsx.org/extension/barrettotte/ibmi-languages)

* `npx ovsx publish -p OPEN_VSX_SECRET`

## Changelog

See [CHANGELOG.md](https://github.com/barrettotte/vscode-ibmi-languages/blob/master/CHANGELOG.md)

## Known Bugs / Future Improvements

See [issues](https://github.com/barrettotte/vscode-ibmi-languages/issues).

## Featured In

*
*
*

## References

* Derived from an [existing RPG extension](https://github.com/NielsLiisberg/RPG-for-VSCode)
* [Repo used to test older RPG](https://github.com/worksofliam/flight400)
* [RPG/400](https://www.ibm.com/support/knowledgecenter/SSAE4W_9.6.0/com.ibm.etools.iseries.langref.doc/evferlsh02.htm#ToC)
* [RPG II, RPG III, and RPG/400](https://isbnsearch.org/isbn/0878352465)
* [Regex tool](https://regexr.com/)
* [VS Code Language extensions](https://code.visualstudio.com/api/language-extensions/overview)
* [IBM List of CL Commands](https://www.ibm.com/docs/en/i/7.5?topic=language-alphabetic-list-cl-commands-by-command-name)

## 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)
1. Press Ctrl+Shift+P (or Cmd+Shift+P on Mac)
1. Type and select: Developer: Inspect Editor Tokens and Scopes
1. This shows you the exact scope name and the colours applied by your theme