Troubleshooting, known issues and limitations for IBM Z Open Editor and RSE CLI plug-in

The IBM Z® Open Editor VS Code extension and IBM RSE API plug-in for Zowe CLI (RSE CLI plug-in) have some known issues and limitations. This page provides the status of the current release. Also review the list of open issues and enhancement requests in our zopeneditor-about GitHub repository. It might list issues that are not yet documented here.

Java™ SDK required

The language servers provided with this extension require a valid Java SDK to start correctly. Currently, they will not work with a Java Client Runtime Environment. They require either a Server Runtime Environment or better a full SDK to function correctly.

If the right version of Java cannot be found in the current user's path or if no JAVA_HOME environment variable was defined, you might see error messages in the Output view of VS Code. Such errors could also be caused by other reasons such as not enough free memory for Java on your system.

Go through all the steps described in the Getting Started page for configuring Java to try out different options.

Troubleshooting using log files

You can enable logging for IBM Z Open Editor to produce detailed logs that can be used to troubleshoot problems. Logs can be valuable inputs when you file defects or contact the technical support (if you are entitled to). You can enable logging via a user preference setting called zopeneditor.logger. In the VS Code Preferences editor, select from the allowed values: DEBUG, INFO, WARNING, ERROR and OFF (default). Once it is enabled, you can find the logging output in two places:

  • In the VS Code Output panel, where a drop-down tab called IBM Z Open Editor is created; and

  • A log file written to your disk. The Output panel tells you at the top when it is activated for the first time the exact path location of the log file, which is platform dependent, .

If you use IBM Z Open Editor with Eclipse Che or Red Hat CodeReady Workspaces, you can also enable logging by specifying the same user preference setting, zopeneditor.logger. To find the generated log file, open a Terminal window in the container called ibm-wazi???, with the question marks being replaced by randomly generated characters. Do not mistake that with the default user content container called wazi, which you use for coding.

Resetting Language Servers or VS Code

It might happen that the language servers provided by IBM Z Open Editor become inconsistent and do not behave as expected. For example, one language server might stop reporting syntax errors, or it cannot resolve copybooks anymore. Instead of quitting and restarting VS Code completely, you can try pressing the F1 key and type the following commands to reset one or more language servers.

  • IBM Z Open Editor: Pause the COBOL Language Server: Stops the COBOL language server and restarts it when you open a COBOL file again.

  • IBM Z Open Editor: Pause the PL/I Language Server: Stops the PL/I language server and restarts it when you open a PL/I file again.

  • IBM Z Open Editor: Pause the Assembler Language Server: Stops the HLASM language server and restarts it when you open an HLASM file again.

  • IBM Z Open Editor: Reload Zowe Profiles: If you have changed the password of your Zowe CLI profile that is used to load your remote include files such as copybooks, you need to run this command to refresh the Zowe profile.

  • Developer: Reload Window: Restarts the current VS Code window and all of its extensions. If you have many editor windows open at the same time, you can use this command to reset just the current window in which you run the command.

No Conversions

Currently the editor relies on third party tools such as Zowe CLI for conversions of program files encoded in EBCDIC on z/OS to the format for editing. Only Codepages supported by VS Code natively can be used. The recommended format for all local files is UTF-8.

If you are using Git to manage your sources on your local client as well as z/OS USS, we recommend managing a .gitattributes file that will drive the conversion through Git. See this post and this document for more details.

Limitations for Visual Studio Code Multi-Root Workspaces

IBM Z® Open Editor supports VS Code multi-root workspaces; however, be aware that property groups defining path names for COBOL, PL/I, and HLASM resource dependencies are managed as so-called Window-level VS Code settings. This means that these property groups need to be defined for multi-root workspaces for the entire workspace. Project-level settings will be ignored. If you intent to use a project as part of a workspace as well as independent of the workspace, then you need to have two copies of your property groups in each location. When you work in the workspace, the editor will look for property groups in the .code-workspace file. When you work just in a project directory outside of a workspace, it will look for property groups in the workspace .vscode/settings.json file.

See more details about this limitation in this section.

Limitations of using Z Open Editor with Eclipse Che and Red Hat CodeReady Workspaces

Almost all capabilities described in this documentation are available when you use IBM Z Open Editor with Eclipse Che or Red Hat CodeReady Workspaces. However, be noted about the following limitation.

  • Code snippets: The extensive IBM Z Open Editor code snippet library is not supported if you use IBM Z Open Editor with Eclipse Che or Red Hat CodeReady Workspaces. It is available only in VS Code at the moment.

    The Theia editor utilized in Eclipse Che and CodeReady Workspaces does not provide a snippet gallery as VS Code does. Therefore, you cannot define your own custom code snippets with the Theida editor. In VS Code, code snippets provided by VS Code extensions, such as the IBM Z Open Editor, can normally be inserted via the code completion features using the Ctrl+Space shortcut. However, that capability currently has a known defect in Eclipse Che and therefore is not supported in CodeReady Workspaces neither. This defect prevents the code snippets from appearing at all.

Language-specific features and limitations

JCL

There is currently no language server for JCL. When you open JCL files, syntax highlighting is enabled, but no additional language server capabilities are available for these files. The observable limitations include:

  • No contents are shown in the Outline view.

  • Ctrl+Space shows code templates, but no syntactical completions.

  • Many menu options are unavailable.

COBOL

The following lists show the implementation status of the COBOL language server. Use these lists to check that the feature that you are looking for was implemented or is regarded as a known issue. Let us know if you have any additional issues.

Enabled features of COBOL program files

  • Syntax highlighting

  • Syntax errors

  • Document highlighting

  • Hover

  • Go to declaration

  • Find all references in file and across the multiple files

  • Peek references in file and across the multiple files

  • Rename symbol in file and across the multiple files

  • Outline view

  • Code completion

  • Snippets

  • Copybook resolving and copybook hover support

  • Document link support to open copybook by using Ctrl+Click (Windows) or Cmd+Click (Mac)

  • Embedded languages support such as SQL, CICS®, and DLI

Limitations of COBOL program files

False unreachable code warnings: In some cases, the editor incorrectly reports that code is unreachable in embedded CICS statements such as EXEC CICS HANDLE. One such case is reported in this issue. You can use a user setting to disable warnings for unreachable code completely as described in Enabling and disabling unreachable COBOL code warnings.

Enabled features of COBOL copybook files

  • Syntax errors

  • Find all references in file

  • Peek references in file

  • Rename symbol in file

  • Outline view

  • Syntax highlighting

  • Code completion

  • Snippets

  • Embedded languages support such as SQL, CICS, and DLI

Limitations of COBOL copybook files

  • No support for Hover

  • No support for Go to declaration

  • No support for Find all references across the multiple files

  • No support for Peek references across the multiple files

  • No support for Rename symbol across the multiple files

PL/I

The following lists show the implementation status of the PL/I language server. Use these lists to check that the feature that you are looking for was implemented or is regarded as a known issue. Let us know if you have any additional issues.

Enabled features of PL/I program files

  • Syntax highlighting

  • Syntax errors

  • Document highlighting

  • Hover

  • Go to declaration

  • Find all references in file and across the multiple files

  • Peek references in file and across the multiple files

  • Rename symbol in file and across the multiple files

  • Outline view

  • Code completion

  • Include file resolving and include file hover support

  • Document link support to open include file by using Ctrl+Click (Windows) or Cmd+Click (Mac)

  • Embedded languages support such as SQL, CICS, and DLI

  • *process (or %process) compile options statements, such as:

Limitations of PL/I program files

  • No support for macros

Enabled features of PL/I include files

  • Syntax errors (lexing and parsing)

  • Find all references in file

  • Peek references in file

  • Rename symbol in file

  • Outline view

  • Syntax highlighting

  • Code completion

  • Embedded languages support such as SQL, CICS, and DLI

Limitations of PL/I include files

  • No support for showing syntax errors for resolving variables

  • No support for Hover

  • No support for Go to declaration

  • No support for Find all references across the multiple files

  • No support for Peek references across the multiple files

  • No support for Rename symbol across the multiple files

HLASM

The following lists show the implementation status of the HLASM language server. Use these lists to check that the feature that you are looking for was implemented or is regarded as a known issue. Let us know if you have any additional issues.

Enabled features of HLASM program files

  • Syntax highlighting

  • Syntax errors which also include the following:

    • Copy statements not resolved

    • Spaces in continuation line

  • Document highlighting

  • Hover on operations and operands

  • Go to declaration

  • Find all references in file

  • Peek references in file

  • Outline view for macros, CSECTs, and DSECTs

  • Code completion

  • Copybook file resolving and copybook file hover support

  • Document link support to open copybook file by using Ctrl+Click (Windows) or Cmd+Click (Mac)

  • Quick fix hints for lines that are too long and spaces in the continuation line

Limitations of HLASM program files

  • No support for symbols defined in different files

  • Syntax highlighting limitations for continuation lines

IBM RSE API Plug-in for Zowe CLI

RSE API support in the Zowe Explorer VS Code extension

MVS

The following features are not implemented yet:

  • Copy and paste a data set member

  • Create a Binary Data Set type

JES

The following features are not implemented yet:

  • Issue a Modify command

  • Issue a Stop command

Known issues with USS

  • An error occurs when you specify uss path "/u/userid" in the Windows Git Bash terminal due to a known issue with git-for-windows. To solve the issue, add a variable MSYS_NO_PATHCONV with a value of 1 to User Variables in Environment Variables and restart terminal.

Providing feedback

If you want to provide feedback that is specific to the VS Code extensions, open an issue in the zopeneditor-about GitHub repository. Any report and feedback is appreciated.