codefori / codefori/vscode-ibmi

VS Code with Code for I is getting very sluggish.

Open
#3,423 31 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
418
Forks
160
Avg merge
4d 14h
Merged PRs (30d)
13

Description

I am working along with one of my colleagues to find out why VS Code when editing RPGLE code is so sluggish.

This may be related to other issues, but I want to add more information if that helps.

Here is a good example...

- Start VS Code
- Connect to a system
- Open a source member - I am picking a larger fixed format PGM with many files declared for a good example
- The outline really is taking long to populate. Longer than it ever has. Five minutes for this example.
- Looking at WRKACTJOB on the same system and finding my connection job (see picture).
- The job is running double digits percentage and once the outline loads, it dies down.
- As I start coding VS Code is really dragging. Hit enter on a line and 10 seconds it does the enter for a new line and puts the cursor there.
- In fixed format it is worse. The format guide acts like it does not know what to do, comes and goes, and the lag on keying is terrible.
- It seems worse if you are writing a line that is in reference to a data object or other declared thing like a data structure or part of the outline.

I have included two reports of my current plug ins and a screen image of my connection job running. I have a really good laptop and our host systems are fast power 10 systems.

Coding in Python or other things in VS Code does not seem to have issues.

Thanks for all you do and I hope my information is valuable.

Mike

[extensions.html](https://github.com/user-attachments/files/31312256/extensions.html)
[extensions.md](https://github.com/user-attachments/files/31312255/extensions.md)

Image

|Context|Version|
|-|-|
|Code for IBM i version|3.0.12|
|Visual Studio Code version|1.134.0|
|Operating System|win32_x64|

Active extensions

```
ARCAD-Elias (arcad-elias): 2.6.3
ARCAD-Transformer RPG (arcad-transformer-rpg): 0.0.8
Bob Cozzi's IBM i RPGLE / RPG IV to RPG Free Format (rpgiv2free): 1.12.44
CL (vscode-clle): 1.2.6
COBOL (cobol): 26.8.10
Code for IBM i Walkthroughs (vscode-ibmi-walkthroughs): 0.5.0
Configuration Editing (configuration-editing): 10.0.0
Continue - open-source AI code agent (continue): 2.0.0
Db2 for IBM i (vscode-db2i): 2.0.2
Emmet (emmet): 10.0.0
Git (git): 10.0.0
Git Base (git-base): 10.0.0
GitHub (github): 0.0.1
GitHub Authentication (github-authentication): 0.0.2
GitHub Copilot (copilot-chat): 0.62.0
IBM i Debug (ibmidebug): 3.0.4
IBM i FileSystem (vscode-ibmi-fs): 1.0.7
IBM i Project Explorer (vscode-ibmi-projectexplorer): 2.12.6
IBM i Testing (vscode-ibmi-testing): 1.3.4
JSON Language Features (json-language-features): 10.0.0
JavaScript and TypeScript Language Features (typescript-language-features): 10.0.0
Merge Conflict (merge-conflict): 10.0.0
Microsoft Account (microsoft-authentication): 0.0.1
Node Debug Auto-attach (debug-auto-launch): 10.0.0
Office Viewer (vscode-office): 4.1.5
RPG End Code Blocks (rpg-end-code-blocks): 1.0.9
RPGLE (vscode-rpgle): 0.33.9
Server Ready Action (debug-server-ready): 10.0.0
TODO Highlight (vscode-todo-highlight): 1.0.5
Toggle Case (toggle-case): 0.1.2
```


Remote system

|Setting|Value|
|-|-|
|IBM i OS|V7R5M0|
|Tech Refresh|7|
|CCSID Origin|37|
|Runtime CCSID|37|
|SQL runner|Yes|
|SQL|Enabled
|Source dates|Enabled

### Enabled features

|/usr/bin|/QOpenSys/pkgs/bin|/QOpenSys/usr/bin|/QIBM/ProdData/IBMiDebugService/bin|/QOpenSys/QIBM/ProdData/JavaVM/jdk80|/QOpenSys/QIBM/ProdData/JavaVM/jdk17|/QOpenSys/QIBM/ProdData/JavaVM/jdk21|/QOpensys/pkgs/lib/jvm|
|-|-|-|-|-|-|-|-|
|attr|bash|openssl|startDebugService.sh|64bit|64bit|64bit|openjdk-11|
|iconv|chsh|||||||
|setccsid|ls|||||||
|tar|md5sum|||||||
|uname|sha256sum|||||||
||sort|||||||
||stat|||||||

Shell env

```bash
BUILDLIB=QGPL
CURLIB=QGPL
HOME=/home/MMOEGLING
HOST=10.100.0.2
LIBLS=CBUTILITY JDFSRC WBSSRCJDE JDFOBJ QRPG WBSOBJJDE WBSLIVE WEEKLY INSTALL WBSPROJDE WBSGPL QGPL QTEMP
LOGIN=mmoegling
LOGNAME=mmoegling
MAIL=/var/spool/mail/mmoegling
OLDPWD=/home/MMOEGLING
PASE_USRGRP_LIMITED=N
PATH=/QOpenSys/pkgs/bin:/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin:/QOpenSys/usr/bin:/usr/bin
PWD=/home/MMOEGLING
SHELL=/QOpenSys/pkgs/bin/bash
SHLVL=1
SSH_CLIENT=10.140.3.52 51725 22
SSH_CONNECTION=10.140.3.52 51725 10.100.0.2 22
TZ=5,M3.2.0,M11.1.0
USER=mmoegling
USERNAME=mmoegling
WORKDIR=/home/MMOEGLING
_=/QOpenSys/pkgs/bin/env
```

Variants

```json
{
"american": "#@$",
"local": "#@$",
"qsysNameRegex": {}
}
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the slowdown using the reported steps: connect to the IBM i system, open a large fixed-format RPGLE source member, and observe outline loading, key entry, and the format guide. Compare the behavior with free-format RPGLE and inspect the connection job while the outline loads; done means outline population and editing respond without the reported multi-second delays.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vscode
Domain
developer-experience, performance, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.