Code4z is an all-in-one VS Code extension pack for mainframe users working with z/OS. Code4z provides language support for COBOL and High Level Assembler for z/OS and graphical visualization of COBOL applications. The pack also includes data editing and file management tools, Explorer for Endevor, and extensions for interactive debugging, macro tracing, and abend analysis. Code4z is free to install and use.
Code4z is compatible with Microsoft Visual Studio Code and Github Codespaces.
## How Does It Work?
The Code4z extension pack simplifies your common workflows and enables you to work with COBOL and HLASM code in the same way you work with other languages in Visual Studio Code. The pack provides a modern mainframe programming experience and includes the following features:
- Language support for IBM Enterprise COBOL 6.0 and high-level assembler language.
- The COBOL Language Support and HLASM Language Support extensions provide syntax highlighting, syntax validation, and content assistance when editing COBOL and HLASM code. Code4z extensions utilize language servers that are fully compatible with the Language Server Protocol Specification.
- You can configure COBOL Language Support to automatically download your copybooks from the mainframe.
- The COBOL Control Flow application provides graphical visualization of program flow for COBOL programs.
- Data editing and file management of mainframe data sets.
- With Zowe Explorer you can allocate, copy, rename, and edit mainframe data sets in VS Code and save them to the mainframe.
- The Data Editor for Mainframe extension enables you to edit VSAM data sets, apply record layouts, and filter records using selection criteria.
- Testing tools for CICS and Batch programs.
- The Debugger for Mainframe extension enables you to debug CICS and Batch applications that are written in COBOL and High-Level Assembler Language.
- With Abend Analyzer for Mainframe you can view abend reports and symbolic data.
- The HLASM Language Support extension enables you to trace Assembler macros interactively.
- Source code management integrated with Endevor.
- With the help of the Explorer for Endevor extension you can retrieve, browse, and search Endevor elements in your IDE.
- Mainframe operations.
- With Zowe Explorer you can issue TSO and MVS commands and submit JCLs.
Edit COBOL and HLASM source code stored on the mainframe
- Use Explorer for Endevor to download code elements and their dependencies into the current workspace.
- Edit COBOL code with COBOL Language Support, and take advantage of all the coding assistance that the extension provides.
- Use COBOL Control Flow to easily navigate around different parts of the source code.
- Edit assembler code and trace macros using HLASM Language Support.
- Locate all copybooks in the workspace and, if needed, download other copybooks that are used in the source code from the mainframe.
- Search and browse additional code elements in the entire map of Endevor, using the Explorer for Endevor extension.
Run a debug session on a CICS program
- Edit and execute JCL with Zowe Explorer to run unit tests.
- Use Abend Analyzer for Mainframe to view an abend report and diagnose an issue.
- Set up a debug session using Debugger for Mainframe and set breakpoints in the code.
- Trigger the CICS transaction on the mainframe.
- Start a debug session using Debugger for Mainframe.
- Stop at designated breakpoints, displaying and changing any problematic code or variable values.
- Use Data Editor for Mainframe to extend the test data in your VSAM files.
- Run the tests again.
- Individual extension prerequisites are detailed in the individual readme files linked below.
Code4z includes a Day 1 Task Checklist walkthrough, which guides you through the first tasks to perform after you install the extension pack.
To launch the walkthrough, open Get Started from the Help menu, and select Code4z Day 1 Task Checklist under Walkthroughs.
COBOL Language Support enhances the COBOL programming experience on your IDE. The extension leverages the language server protocol to provide autocomplete, syntax highlighting and coloring, and diagnostic features for COBOL code and copybooks. The COBOL Language Support extension can also connect to a mainframe using the Zowe Explorer extension to automatically retrieve copybooks that are used in your programs and store them in your workspace.
How can we improve COBOL Language Support? Let us know on our Git repository
- Edit COBOL code with syntax highlighting, real time syntax validation, content assist and other advanced features.
- Automatic retrieval of copybooks from the mainframe.
COBOL Control Flow provides graphical visualization of program flow for programs that are written in COBOL. The extension is designed to help COBOL developers to quickly comprehend and debug COBOL programs that they might not be familiar with.
How can we improve COBOL Control Flow? Let us know on our Git repository
- Generate interactive graphs of COBOL code
- Navigate through COBOL code and copybooks using the interactive graph.
HLASM Language Support is an extension that supports the High Level Assembler language. The extension provides code completion, highlighting and navigation features, shows mistakes in the source, and enables you to check how the conditional assembly is evaluated with a modern debugging experience.
How can we improve HLASM Language Support? Let us know on our Git repository
- Edit HLASM code with syntax highlighting, real time syntax validation, content assist and other advanced features.
- Trace HLASM macros.
Zowe Explorer is a VS Code extension powered by Zowe CLI that streamlines interaction with mainframe data sets, USS files, and jobs. The extension is designed to function along with other extensions and plug-ins to deliver a richer experience.
You can learn more about the Zowe Explorer by watching the Getting Started and Work with Data Sets tutorial videos.
How can we improve Zowe Explorer? Let us know on our Git repository
- Access z/OS Datasets and z/OS Unix file systems, and submit JCLs.
- Create, edit, and work with z/OSMF compatible profiles.
- Store your credentials securely with Secure Credentials Store plug-in.
- View and download job output.
- Issue TSO and MVS commands.
- Leverage the API Mediation Layer token-based authentication to access z/OSMF.
- Install additional extensions.
The Explorer for Endevor extension modernizes the way you interact with Endevor, offering a user-friendly and convenient way to work with elements and inventory locations.
This extension offers best developer experience in synergy with Bridge for Git, a solution which enables you to concurrently work in Git and mainframe.
How can we improve Explorer for Endevor? Let us know on our Git repository
- Add, view, retrieve, edit, and generate elements
- View element details
- Work with Endevor profiles and Zowe CLI base profiles
- Print listings
The Data Editor for Mainframe extension for VS Code adds a modern user interface to File Master Plus for MVS. Data Editor for Mainframe enables you to view and edit mainframe data sets, including VSAM data sets, in your IDE.
How can we improve Data Editor for Mainframe? Let us know on our Git repository
Browse and edit VSAM data sets, sequential data sets, and PDS members.
Apply layouts to view data set records in single-record format.
Interactively filter records using selection criteria.
Debugger for Mainframe provides the debugging interface to InterTest™ for CICS and InterTest™ Batch. This extension provides a modern debug experience for CICS and Batch applications written in COBOL.
How can we improve Debugger for Mainframe? Let us know on our Git repository
- Debug COBOL and HLASM code for applications running in a CICS region.
- Debug COBOL and HLASM code for Batch applications.
Abend Analyzer for Mainframe provides an interface to SymDump® CICS and SymDump® Batch. The extension enables you to browse, manage, and view formatted abend reports and symbolic data in a modern IDE environment.
How can we improve Abend Analyzer for Mainframe? Let us know on our Git repository
- View and manage abend reports
- Load symbolic data from a PROTSYM