Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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: about 2 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)