September 20, 2021
Just when you thought my multi-part series on V9.6 from RDi was definitely ready, it’s back! It seems like a song that never ends. Fortunately, however, as more new features have been added to RDi, many of which are the direct result of RFEs (also known as Requests for Enhancement) from RDi users like you and me.
We waited longer than usual for version 22.214.171.124, but it is now available. I’ll cover the improvements in this version in a few tips. This first tip is aimed primarily at experienced RDi users. The next one will focus on some of the improvements to make the transition easier for the “new RDi” users out there.
Perhaps the most important feature in this version is of course the support for new RPG language features. I seldom mention the fact that RDi supports the latest RPGs because there has always been little, if any, delay between the availability of new RPG features and their support in RDi. This year was a little different in that regard as we didn’t get a new version of RDi at the same time as the April RPG update. So if you tried% Split or% Upper or% Lower, you had to put up with annoying syntax error messages, even though your code would of course compile anyway. With 126.96.36.199 you can use newer RPG expansions from the September announcement in addition to the expansions from spring.
Block or no block?
After installing 188.8.131.52, the first change you are likely to notice is the new icon on the member tabs in the editor that indicates if a member is banned. In a previous version of 9.6, a new icon was used for members open for browsing. However, even if a member is open for editing, there may be times that that member is not currently blocked. For example, the connection to the host server job may have been lost since the member was opened or the member was left open when RDi was closed. Now the tab symbol makes it clear whether RDi has locked a file or not. Figure 1 shows an example of three different types of tab icons – one member open for editing but not currently locked, one open for browsing, and one open for editing with a current lock.
In addition to the new lock icon, a new setting has been added to enable “Lock remote members on startup”. This is not activated by default. You can find it on the LPEX Editor settings page for remote systems. (In the settings dialog, filter for “lock” to find it quickly). When the preferences are set, RDi always tries to lock all members that are already open in the editor when RDi starts. It also works if you’ve simply lost the host connection and then reconnect.
Outline: Better than ever
If you’ve followed my RDi tips in the past, you know I’m a fan of the outline view of RDI, especially when it comes to editing RPGLE members. Some improvements have been made there.
First, the cross-reference information for files and record formats now shows more than just the line the reference is on. There is now an indication of the operation on that line, such as READ, OPEN,% EOF, EXFMT, etc.
In Outline, too, exported procedures (ie those with the keyword EXPORT) have a slightly different symbol to distinguish them from internal procedures.
Figure 2 shows some of these outline improvements.
The final, and perhaps most significant, improvement to Outline, especially for CL programmers, is that the CL Outline is now really useful!
Prior to this version, the information in Outline for CL code was sparse to say the least! Now, the outline of a CL program contains many of the features we rely on in RPG code. Not only are parameters and other variables listed with their definitions, there is also a live cross-reference that identifies the lines of code in which the element is used, with an indication of whether its value has been changed, just like in the RPG overview .
Since the data collected from the Outline is being used to support some nice RPG editor features like hover help and code navigation, I keep my fingers crossed that one day we’ll see some of these features in the CL editor as well. They haven’t arrived yet, but these outline improvements have meanwhile become a boon for CL programmers.
There is a preset that needs to be set in order to see the enhanced CL outline. I think it’s on by default, but in case you don’t see these new features, filter your settings dialog by “outline” and click the IBM i Parser> CL page. Make sure you have selected “Update Outline View When Text Is Changed In Editor”. After making this setting, you may also need to update your outline to find the new treasury, which is the new CL outline. Figure 3 shows some of these features for CL, with the Update Outline button highlighted after enabling the preset.
As if that wasn’t enough good news for CL coders, the CL Prompt performance has also improved. Although it’s still not a “green screen prompt” speed in my experience, but noticeably faster than previous versions.
RPG copy members
Going back to the RPG improvements, some long requested features have been added to improve the ability to view and / or edit code from / copy and / include files. Hopefully you are familiar with the yellow hover text that appears when you hover over the name of a variable or procedure, etc. It contains the name and definition and a link to navigate to the definition of this element. Now we have very similar support when we move the mouse pointer over a copy / include statement. The content of the member (or the IFS file) appears in the already familiar yellow box! The name and a link to the location of the copy file are also included so you can open the member for editing. When you know you want to open the member, just hold down the Ctrl key (Command on a Mac) and the copy instruction itself becomes a link to open the member. These new options make browsing or editing code from a copy member a little easier than the old method of using the context menu, although it still exists if you prefer. Figure 4 illustrates the effect of moving the mouse pointer over a / copy statement.
If the prototype for a procedure was defined in a copy member, the yellow hover field that is displayed when the mouse pointer hovers over the procedure call itself has been expanded to include the storage location and a link to open the copy / include Members, in addition to the procedure, include definition information that previously existed.
The refactoring option to extract the constants also has some new features. First of all, you can now add a comment to be inserted in the line in front of the definition of the constant. Second, you can now refactor numeric constants – a feature many of us have been waiting for since the original character constant refactoring ability was introduced!
Save search results
Have you ever performed a remote search (aka Find String …) in RDi and thought, “I wish I could print or save the results of that search?” (Some of you may have installed the iSphere plug-in and already have this option.) Now, in the context menu in Remote Search (ie right click) you will find new options for either printing, exporting to a file, or copying results to your clipboard . If you’re like me, you might be tempted to look for this feature in the View menu of the Remote Search view, as there are similar options in the Object Table. The Clipboard option has also been added to the print and export options previously available for the object table.
There’s more to come. . .
There are more new / changed features in version 184.108.40.206 that I’ll cover next time. These features are primarily aimed at new RDi users for a smoother and faster startup experience. But you never know – some of us seasoned RDi users may find them useful too.
Guru: RDi V9.6, Part 10 – Debugger Improvements
Guru: RDi V9.6, Part 9 – RDi helps refactoring code in procedures
Guru: RDi V9.6, Part 8 – Better ways to copy members, manage LIBLs, and find settings
Guru: RDi V9.6 Part 7 – Zoom In, Know Where You Are, Refactor Constants, and More
Guru: RDi V9.6, Part 6 – The new object table just got better
Guru: Ready or not! Part 5 of the big changes in RDi V9.6, toggle edit / browse, PDM perspective, more