A Modern REXX Editor
by Bradley Knaysi
18 March 2021
In the ongoing effort to bring z/OS® application development into the rich ecosystem of modern code editors, the REXX programming language is the next major addition. Enabled in IBM Z® Open Editor 1.2.0, IBM® Wazi Developer 1.2.0, and IBM Developer for z/OS 15.0.1, you will be able to benefit from our Language Server Protocol (LSP) implementation for REXX. This brings a plethora of language features to the editor, which make REXX development easier and more accessible.
There are several language features now available to augment the REXX editing experience.
Arguably the most important of the bunch, the colorization of code is hard to go without these days. It's quite surprising how far a little color variance can go to make distinguishing symbols easier. Bringing visual clarity to the syntactically wild REXX programming language, this feature undeniably improves the speed and precision of development.
Out of the many mainframe programming languages, REXX is truly the free spirit. While many languages enforce spacing, tabbing, and case-sensitivity to parse elements of the code, REXX has little to no such constraints. The result is a wide variety of programming styles, which leave the developer wondering what valid syntax is and is not. This is where syntax errors shine, bringing visual clarity to common and sometimes frustratingly trivial mistakes.
Writing code can be a tedious process, and one that requires incredible memory and focus. Some of the simplest mistakes are misspelled symbols, and given that REXX does not require variable declaration before definition, these spelling errors can go completely unnoticed until some strange runtime error occurs. To alleviate this problem, you can utilize code completion to see variables, keyword instructions, internal routines, and built-in functions as suggestions as you type. This incredibly powerful feature gives you the confidence to know that the symbol you type is the right one.
REXX can be a daunting language to learn. Oftentimes, all you need is a little information about what an element is, what it does, and how to use it, in order to understand it. With the addition of the hover feature, moving your mouse over any keyword instruction or built-in function will reveal these critical bits of information. This brings documentation directly into the editor, letting you work in one place without having to navigate elsewhere to find knowledge.
It's fairly common to want to find matching symbols in a REXX program. Without relying on CTRL+F to navigate comments and partial matches, you can quickly find references on a symbol to get a quick view of all occurrences. This handy feature makes searching for other symbols easier than ever, without having to lose your place in the file.
A highly underrated feature, the outline view provides an overview of a program. We did the research, studying real REXX developers, to find out how to make this feature actually useful. What we found, it can be a powerful navigation tool for quickly going to internal routine definitions. Instead of crowding the outline view with every loop and switch statement, it was significantly more useful when user's could glance over and see what internal routines were defined, and if they so desired, navigate there with one click.
For information about how to edit REXX programs, see the REXX editing tutorial.
For information about how to utilize the different language features, see the Making REXX code changes page.