Developing with IBM Wazi for VS Code

IBM Wazi for VS Code extends the functions of VS Code to provide z/OS developers with a familiar and straightforward edit, build, and debug experience. VS Code is becoming the most popular development environment according to recent surveys. With so many current and next generation developers having experience with VS Code, IBM enterprise language support in VS Code makes enterprise programming more attractive and productive by allowing developers to use this popular editor, with the option to integrate numerous other extensions from the VS Code Marketplace.

Key capabilities of Wazi for VS Code

IBM Wazi for VS Code consists of the IBM Z Open Editor and IBM Z Open Debug VS Code extensions. These are the key features and benefits of Wazi for VS Code:

Modern editing experience for COBOL, PL/I, HLASM, and REXX development

Wazi for VS Code provides language support for the IBM Enterprise COBOL 6.3, PL/I 5.3, High Level Assembler for z/OS 2.4, and z/OS 2.4.0 TSO/E REXX programming languages for z/OS® systems. This also includes capabilities for embedded statements for CICS® 5.6, IMS 15.1.0 and SQL DB2® for z/OS 12.1. Earlier versions of any of these components will also work.

Full language support via the Language Server Protocol (LSP)

The extension supports many COBOL, PL/I, HLASM, and REXX capabilities that were not available in traditional editing environments such as ISPF, by providing Language Server Protocol implementations.

Wazi for VS Code realizes its language support by implementing fully functional language servers together with additional editor enhancements that enable mainframe developers to utilize features such as:

  • Real-time syntax checking and highlighting while you type

  • Problems view with all syntax errors and (in COBOL) unreachable code

  • Outline view and outline search

  • For both variables and paragraphs:

    • Declaration hovers

    • Peek definition

    • Go to definition

    • Find all references

  • Code and variable completion

  • Finding and navigating references

  • Previewing of copybooks and include files

  • Navigate to copybooks and include files

  • Refactoring such as "rename symbol"

  • Custom code snippet support and more than 200 example code snippets out of the box

  • Search and replace refactoring across multiple program files

Notes:

  • For HLASM, a significant subset of the capabilities that are available for COBOL and PL/I are supported.

  • For REXX, a significant subset of the capabilities that are available for COBOL and PL/I are supported.

  • For Job Control Language (JCL), IBM Z Open Editor provides syntax highlighting.

For a list of in-progress features, see Known issues and limitations.

Extended language server capabilities for more productivity

In addition to the capabilities specified in the Language Server Protocol, the implementation is extended with more capabilities that are useful to enterprise developers. For example, you can use hovers for COBOL COPY, PL/I %INCLUDE, and HLASM COPY statements to preview the contents of the copybooks without opening in separate editor tabs and navigating away from your current editing position.

Integration with modern Software Configuration Management (SCM)

Even if your organization does not standardize on an SCM, using the Git that is integrated in VS Code or using popular extensions such as GitLens locally in a workspace will boost your productivity. You can work on COBOL, PL/I, HLASM, and REXX programs on your local workspace and snapshot work at any point, go back or branch into alternative explorations, merge your or your colleagues' branches back in, or revert to any earlier state of your code in a flash. Use side-by-side views and "blame" annotations to explore the changes between snapshots, how they looked before, and the time of changes. See exactly for each line when it was last changed and by whom. Explore the entire history of all changes for a specific file or all files in your workspace in a chronological history viewer.

z/OS interactions using the open source Zowe clients

If you have z/OSMF or IBM Remote System Explorer API (RSE API) configured, you can use Zowe CLI, the Zowe Explorer VS Code Extension (Zowe Explorer), or both, to load and edit your files directly from z/OS or download them into your local workspace and then upload the changed files into the same or new data sets to compile and run your application. You can do all of these operations from IBM Z Open Editor directly with right-clicks and dialog interactions, and perform command-line operations using the VS Code Terminal view that integrates right below your editor, giving you one central view to everything.

After configuration, Wazi for VS Code can also take advantage of the Zowe CLI protocol for resolving dependencies over the network. For example, you can edit your COBOL programs locally, but resolve copybook dependencies directly out of MVS™ using the same Zowe connections.

User build during coding and unit testing

You can run a user build to compile and link programs during coding and unit testing before the code is ready to be exposed to the repository for others to use. With user build, you can compile your program without having to perform commits or pushes. With the user build setting enabled in your IDE, you can trigger user build simply by right-clicking inside a COBOL, PL/I, or HLASM file. Refer to the full IBM User Build documentation to learn more about how to leverage user build.

Integrated debugger to facilitate COBOL and PL/I debugging

Wazi for VS Code can work in conjunction with the following services of IBM z/OS Debugger:

  • Remote Debug Service to provide interactive debugging capabilities within VS Code clients.

  • Debug Profile Service to create debug profiles that determine which applications or transactions will be debugged.