{"id":13706191,"url":"https://github.com/chriscamicas/vscode-abl","last_synced_at":"2026-02-20T18:32:21.389Z","repository":{"id":22922045,"uuid":"98645335","full_name":"chriscamicas/vscode-abl","owner":"chriscamicas","description":"An extension for VS Code which provides support for the Progress OpenEdge ABL language. https://marketplace.visualstudio.com/items?itemName=chriscamicas.openedge-abl","archived":false,"fork":false,"pushed_at":"2024-02-16T17:23:08.000Z","size":5963,"stargazers_count":50,"open_issues_count":20,"forks_count":37,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-10-20T21:25:28.358Z","etag":null,"topics":["debugger","language","openedge","vscode"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chriscamicas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-28T11:58:32.000Z","updated_at":"2025-03-06T12:59:06.000Z","dependencies_parsed_at":"2024-02-16T18:51:29.608Z","dependency_job_id":null,"html_url":"https://github.com/chriscamicas/vscode-abl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chriscamicas/vscode-abl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriscamicas%2Fvscode-abl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriscamicas%2Fvscode-abl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriscamicas%2Fvscode-abl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriscamicas%2Fvscode-abl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chriscamicas","download_url":"https://codeload.github.com/chriscamicas/vscode-abl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriscamicas%2Fvscode-abl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29660038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T16:33:43.953Z","status":"ssl_error","status_checked_at":"2026-02-20T16:33:43.598Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugger","language","openedge","vscode"],"created_at":"2024-08-02T22:00:53.017Z","updated_at":"2026-02-20T18:32:21.372Z","avatar_url":"https://github.com/chriscamicas.png","language":"TypeScript","funding_links":[],"categories":["IDE"],"sub_categories":["Visual Studio Code"],"readme":"# OpenEdge ABL language support for Visual Studio Code\nThis extension provides rich OpenEdge ABL language support for Visual Studio Code. Now you can write and run ABL procedures using the excellent IDE-like interface that Visual Studio Code provides.\n\n## Features\n\n* Syntax highlighting\n* Syntax checking\n* Run\n* Debugger\n* Auto-complete (tables, fields, methods)\n\n![features demo](./docs/images/demo.gif \"Demo\")\n\n![debugger demo](./docs/images/debug.gif \"Debugger\")\n\n## Using\n### Prerequisites\nYou need to have a local OpenEdge installation, and the `DLC` environment variable should point to the installation directory (usually `C:\\Progress\\OpenEdge`).\n### Config file\nYou can create a local config file for your project named `.openedge.json`, with the following structure:\n```JSON\n{\n    \"workingDirectory\": \"${workspaceFolder}\\\\Home\",\n    \"proPath\": [\n        \"c:\\\\temp\",\n        \"${workspaceFolder}\"\n    ],\n    \"dlc\": \"C:/Progress/OpenEdge\", //optional override\n    \"proPathMode\": \"append\", // overwrite, prepend\n    \"parameterFiles\": [ // -pf\n        \"default.pf\"\n    ],\n    \"startupProcedure\" : \"${workspaceFolder}/vsc-oe-startup.p\",\n    \"dbDictionary\": [\n        \"myDatabaseForAutoComplete\"\n    ],\n    \"format\": {\n        \"trim\": \"right\" // none\n    }\n}\n```\n\n`dlc`, `startupProcedure`, `proPath` and `workingDirectory` are optional. Default values:\n- `dlc`: uses environment variable $DLC\n- `startupProcedure`: ''\n- `proPath`: workspaceRoot (of VSCode)\n- `workingDirectory`: folder of active source code\n- `dbDictionary` are the logical names of database files for the auto-complete option (command: ABL Read Dictionary Structure)\n- `format` are formatter options\n\n#### Parameter \"startupProcedure\"\nThe optional Startup Procedure for OpenEdge can be used to execute 4GL code before a check syntax/debug/run operation. Can be used to create Database aliases or instantiate Singleton Classes. The Procedure is executed everytime the IDE starts a check syntax/debug/run operation.\n\n### Debugger\nYou can use the debugger to connect to a remote running process (assuming it is debug-ready), or run locally with debugger.\n\nYou first need to create the launch configuration in your `launch.json` file, 2 templates are available, one for launch and the other for attach).\n\n```JSON\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"Attach to process\",\n            \"type\": \"abl\",\n            \"request\": \"attach\",\n            \"address\": \"192.168.1.100\",\n            \"port\": 3099\n        }\n    ]\n}\n```\n\nTo attach to a remote process, it needs to be [debug-ready](https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/asaps/attaching-the-debugger-to-an-appserver-session.html).\nThe easiest way to achieve that is to add `-debugReady 3099` to the startup parameters (`.pf` file) of your application server.\n\nThe debugger supports basic features\n- step-over, step-into, step-out, continue, suspend\n- breakpoints\n- display stack\n- display variables\n- watch/evaluate basic expressions\n\nYou can map remote path to local path (1 to 1) using `localRoot` and `remoteRoot`. This is useful when debugging a remote target, even more if it only executes r-code.\n`localRoot` is usually your `${workspaceRoot}` (current directory opened in VSCode). `remoteRoot` may remains empty (or missing), in this particular case, the remote path is relative, and resolved via the `PROPATH` by the remote.\n\n\nYou can also map different remote path to local path via source mapping `sourceMap`. This is useful if you don't have all the source code in a unique project (ex dependencies).\n\n### Unit tests\nBased upon the ABLUnit framework (need to be installed locally), you can specify launch parameters to find and execute test files\n```\n{\n    \"test\": {\n        \"files\":[\n            \"tests/*.test.p\"\n        ],\n        \"beforeEach\": {\n            \"cmd\": \"%ProgramFiles%\\\\Git\\\\bin\\\\sh.exe\",\n            \"args\": [\n                \"-c\",\n                \"echo starting\"\n            ]\n        },\n        \"afterEach\": {\n            \"cmd\": \"%ProgramFiles%\\\\Git\\\\bin\\\\sh.exe\",\n            \"args\": [\n                \"-c\",\n                \"echo done\"\n            ]\n        }\n    }\n}\n```\n\n## Greetings\nLargely inspired by ZaphyrVonGenevese work (https://github.com/ZaphyrVonGenevese/vscode-abl).\nAlso inspired by vscode-go and vscode-rust extensions.\n\nThanks to all the contributors: mscheblein\n\n## License\nLicensed under the [MIT](LICENSE) License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriscamicas%2Fvscode-abl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchriscamicas%2Fvscode-abl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriscamicas%2Fvscode-abl/lists"}