← Back to the Overview

Shift6 for IBM i – How a practical problem became a tool for the community

A specific practical problem in IBM i development gave rise to the idea for Shift6 for IBM i at Portolan. Here, we show how an innovation-friendly environment and practical development led to the creation of a tool that sensibly combines modern working with Visual Studio Code and classic IBM i tools such as PDM. 

The challenge: modern development meets traditional tools 

Working with IBM i combines proven, stable technologies with modern development approaches. Visual Studio Code is increasingly being used in combination with the Code for IBM i interface. This combination opens up new possibilities – but also brings its own unique challenges. 

One of these concerns a detail that can quickly become a real hurdle in everyday life: the correct formatting of RPG Free code. 

The initial problem 

Anyone working with the Code for IBM i interface in VS Code will encounter a key limitation when interacting with PDM: 
The first five columns of a source member are not displayed there. An additional indentation offset is therefore necessary in order to be able to read and maintain the code in its entirety. 

In practice, this means that:
To compensate for the five invisible columns, five leading spaces must be inserted – supplemented by an additional space, which significantly improves the readability of the code.

This so-called “5+1 offset” ensures that RPG-Free code is displayed completely and in a structured manner in PDM. 

This point is particularly crucial in the IBM i environment. In many companies, it is still standard practice or even a requirement that source code can also be read and maintained using native tools such as PDM. VS Code is not used everywhere – whether for organisational reasons, due to security requirements, or because production systems are deliberately and completely isolated from the internet. 

However, manually maintaining this offset – often line by line – is time-consuming and prone to errors. Even minor oversights can result in code that looks correct in VS Code but is difficult or impossible to maintain in PDM. 

It was precisely this very specific practical problem that gave rise to the idea for Shift6. 

The idea behind Shift6 

The name “Shift6” was chosen deliberately:
it symbolises the automatic indentation of six characters – five to compensate for the columns that are not visible in PDM and an additional space for better readability.

The aim was to develop a VS Code extension specifically for IBM i that fully automates this necessary but tedious step. 
Developers should be able to concentrate on the technical logic – not on manual formatting work. 

More than just indentations 

Shift6 for IBM i is not intended to be a simple indentation tool.
The extension specifically formats RPG Free Code so that it remains clear, consistent and maintainable – while also being fully IBM i-compliant.

These include, among others: 

  • automatic application of the necessary 5+1 offset 
  • structured indentation of code blocks 
  • clear division of statements 
  • Correction of frequent minor typos (e.g. double semicolons) 
  • Avoiding unnecessary changes to code that is already correctly formatted 

The formatting tool thus bridges the gap between modern development in VS Code and classic IBM i practice – without compromising either side. 

Feedback from the community 

Although it is a highly specialised niche topic, Shift6 for IBM i has quickly gained attention in the IBM i community. 

A Reddit post about the extension reached number 1 in the corresponding subreddit on the day of its release and has since recorded around 2,900 views.
The usage figures also show that the tool is proving popular in everyday use: 

  • environ 340 clones GitHub 
  • Actuellement 35 utilisateurs actifs sur VS Code Marketplace 

These figures are particularly significant in the IBM i environment.
Even without formal feature requests or reported issues, usage behaviour shows: The need is real – and the solution is being used in practice. 

No stable version yet – deliberately 

Shift6 for IBM i is not yet marked as “stable”.
However, this is not due to a lack of functionality, but rather a conscious commitment to quality. 

There are considerations to expand the extension to include mixed format support in the future. However, such extensions should only be implemented if they can be cleanly integrated into existing IBM i workflows.
Stability and predictability are clearly the top priorities here. 

Portolan as an enabler 

Portolan created the framework in which such a project could emerge – with openness to new ideas, trust in independent development and the aspiration to enable practical solutions to real problems.

The project demonstrates how traditional IBM i strengths can be combined with modern development tools – and how targeted promotion of young talent can lead to added value for the entire community. 

Outlook

Shift6 for IBM i remains a practical tool.
The focus is on solving real problems in everyday development and ensuring the long-term maintainability of code – regardless of whether modern editors or classic IBM i tools are used.

The complete source code is publicly available:

https://github.com/lakdogan/shift6foribmi