Visual Studio Code is an IDE and platform for developers to write backend, progressive web apps, frontend, and everything on the spectrum of development. I have created an extension for VS Code, called Code for IBM i, that allows users to work on and maintain their IBM i code. VS Code is the best IDE for extensibility, which is why I wanted to take on such a task.
While Visual Studio Code was built to work with all languages, in my opinion it didn’t have much support for RPGLE or COBOL on IBM i until this point. We’re streamlining RPGLE development in terms of tools and speed for our users. We want to make developing RPGLE and COBOL easy for everyone in the most efficient way possible.
Since 2017, I have been building extensions and standalone IDEs, like IBMiCmd, ILEditor 1, and ILEditor 2. I firmly believe that Code for IBM i is the best iteration of my work, and it makes me so happy that I can share it with everyone.
As of 2021, Code for IBM i has been available for free on the Visual Studio Code Marketplace. It is also open source and relies heavily on user feedback and input (as well as the occasional PR.) Code for IBM i has a ton of functionality… too much for a single article. This post will run you through the setup of VS Code and Code for IBM i.
Visual Studio Code is available for most operating systems, including Windows and Mac. The very first thing is to download it from the VS Code website. Following that, you can install the extension from the Marketplace.
- Open the extensions view
- Search ‘ibmi’ and find Code for IBM i
- Hit install
Connecting to your IBM i
The installation should really only be a single click. From there, it’s time to connect to an IBM i. It’s important to note that to connect to your IBM i, you need the SSH Daemon started on your system. Usually a simple
STRTCPSVR *SSHD will get that started for you, but you can check out Getting Started with SSH on IBM i if you need more assistance.
After Code for IBM i is installed, you will see a new icon appear on the left. That is the Code for IBM i extension! You can click that, select ‘Connect to an IBM i’, fill out the information, and then hit connect. Code for IBM i will store that connection info for later so you don’t have to type all that in again.
You’ll see a nice info message appear when you are connected successfully.
You can find members by using the Object Browser. Start by creating a new filter, which will show a new window.
You can provide a filter name, library, types, source file filters and more. You can see in the image, I am specifying a library and using ‘*srcpf’ as the type, which will then only show source files.
Clicking save and then opening the filter will show the source files in the chosen library and expanding them will show the members inside. You can click on a source member to open it to edit/view.
Of course, the second most important thing other than editing is compiling your source code. In this case, we have an SQLRPGLE program called
DEPTS_WEB. Code for IBM i adds a new shortcut to compile the source code you’re currently working with. To show what compile options you have, you can use the
Control + E shortcut (or
Command + E on Mac). This will show a dropdown with the available Actions (another topic worth its own blog post). Each Action has a different command that it will run.
In our case, we want to run
CRTSQLRPGI to compile our program and there is a default action for that.
After the compile runs, Code for IBM i will display the errors from the compile in line with the source code (as you would expect). It looks like, in this case, the pre-compiler couldn’t find a file definition. That usually indicates that there is a library list issue / the library with that table is missing from the library list.
Editing the library list
The connection to Code for IBM i has its own library list. That means any time a command is sent to the server, it uses the library list from the settings rather than the library list from the user. It’s very easy to change this library list. In the Code for IBM i extension there is a User Library List view. In that view you can:
- Change your current library
- Edit your user library list for any future commands
- Re-order your user library list
DEPTS_WEB program to compile, we need to add the missing library with the
DEPARTMENT table. That just so happens to be in the
SAMPLE library/schema. You can click the add button in the User Library List view to add a library.
SAMPLE has been added, the next time we try to compile our program there should be no issues. Code for IBM i will tell you that the command ran successfully with an informational message.
These are just the very basics of Code for IBM i. There is so much to it. For example, some of the other functionality in Code for IBM i includes:
- Searching through the contents of source files and IFS directories
- Browsing and maintaining objects in libraries
- Running SQL statements and viewing results visually
- Content assist for free-format RPGLE and fixed-format RPGLE
There are also extensions to Code for IBM i which add:
- Source date support
- Integrated unit testing for RPGLE
- Code Coverage for IBM i
Check out the:
For training on this or any other IBM i development technology—including APIs or open source on IBM i—contact us.