For list of latest changes, please see the Change Log at the main GitHub repository.
This extension adds rich language support for HPCC Systems ECL language (for the HPCC-Platform) to VS Code, including:
- Syntax highlighting
- Auto completion
- Client tools discovery and integration
- HPCC-Platform server support
- Integrated result viewer
- Added context menu to ECL bundles and ECL Client Tools
- Added
ecl.WUShowResultssetting, allows user to control how results are displayed after submitting a workunit.
- Added
ecl.submitNoArchivecommand, submits raw content of editor to server without creating an archive first. - Added
ecl.pingIntervalsetting, allows user to change or disable the "server alive" ping. - Updated shift+F1 help to use new HPCC Systems website and include the Standard Library.
- Added
ecl.saveOnSyntaxCheckandecl.saveOnSubmitoption to ECL Settings (defaulting to off to match ECL IDE behaviour).
- Add
pathoption to launch configuration (to assist with proxy servers).
- Add
Copy WUIDcontext menu.
- Add
ecl.forceProxySupportsetting.
- Added extra support for Trustwave CA authority.
- Fixed issue with
rejectAuthorized: falsebeing ignored. - Updated translations, added FR locale.
- Added "Copy as ECL ID" command to explorer and editor tab context menus.
- Added "Import MOD file" command
- Enhanced digital signature support:
- ECL: Verify ECL Signature
- KEL:
- Optionally use grammar for syntax as you type checking (now off by default).
- Improved syntax highlighting
- Default syntax checking "on open" to
true
- Added digital signature support:
- ECL: Sign ECL
- Preliminary localisation support:
- en
- zh
- pt-br
- es
- Added HPCC resources page:
- List of available bundles:
- Install
- Uninstall
- Open homepage
- List of available client tools
- Select (force) specific version
- Deselect forced version
- Open terminal for specific version
- Open download page for Client Tools
- List of available bundles:
- Added context menu items for Workunits in the Workunit Tree:
- Abort Workunit (only available for running WUs)
- Delete Workunit (Only available for completed WUs)
- Added result viewer to bottom pane
- Added "Copy Results as ECL"
- Added list of "found" logical files to Insert Record Definition
- Added Insert Record Definition menu item
Reworked submission process:
- Launch configuration:
- Simplified
- Can be selected from the status bar
- Can be pinned to specific ECL files
- Target Cluster:
- Can be selected from the status bar
- Can be pinned to specific ECL files
- Submit / Compile now available from:
- Context menu
- Top of editor
- Recent Workunits:
- Tree view of recent workunits
- Toggle between "Mine" and "All"
- Open in external browser icon added to several locations
Version 2.x introduces a new streamlined submission process. The "old" Run/Debug pane support has been deprecated and will be removed in the future.
- Open folder
- Open ECL file
- Create Launch Configuration (if needed)
- Select the target by:
- Clicking the "Launch Configuration" in the status bar
- Optionally clicking on the "Target Cluster" in the status bar
- Monitor Workunit in the "Workunit History" pane
- Click on Workunit to view results / issues in the bottom pane
The following ECL specific commands are available. Note: These commands will not be active until an ECL file has been opened (as this triggers the extension to load). To activate a command either use its associated hotkey or press ctrl/cmd+shift+p and type ECL this will present a filtered list of the ECL specific commands:
| Command | Shortcut | Description |
|---|---|---|
| Syntax Check All Files | shift+F7 | Save All + check syntax of all files. |
| Syntax Clear | ctrl/cmd+F7 | Clear all previously reported ECL Syntax Check results |
| Import '.mod' file | Import MOD file into workspace | |
| Language Reference Website | Opens the ECL language reference website in external browser | |
| Terminal | Opens ECL Client Tools Terminal Session |
| Command | Shortcut | Description |
|---|---|---|
| Submit Submit | F5 | Submit ECL |
| Compile Compile | Compile ECL | |
| Syntax Check Syntax Check | F7 | Save and check syntax of current file |
| Submit (No Archive) | ctrl/cmd+F5 | Submit raw ECL without creating an archive |
| Verify ECL Signature | Verify ECL Digital Signature | |
| Language Reference Lookup | shift+F1 | For the currently selected text, search the online ECL language reference |
| Insert Record Definition | ctrl/cmd+I R | Fetches record definition for given logical file |
| Command | Shortcut | Description |
|---|---|---|
| Copy as ECL ID | Copy path as Qualified ECL ID |
| Command | Shortcut | Description |
|---|---|---|
| My Workunits My workunits | Toggle between "My" and "All" Workunits | |
| All Workunits All workunits | Toggle between "My" and "All" Workunits | |
| Refresh Refresh | Refresh Tree | |
| ECL Watch ECL Watch | Launch ECL Watch in external browser | |
| Switch Switch Platform | Switch HPCC Platform instance (launch configuration) |
| Command | Shortcut | Description |
|---|---|---|
| Copy WUID | Copy workunit ID to clipboard | |
| Abort Workunit | Abort running workunit | |
| Delete Workunit | Delete completed workunit |
| Command | Shortcut | Description |
|---|---|---|
| Copy as ECL ID | Copy path as Qualified ECL ID |
| Command | Shortcut | Description |
|---|---|---|
| Launch Configuration | Click to select launch configuration | |
| Target Cluster | Click to select target cluster | |
| Pin | Pin current launch configuration and target cluster to current document | |
| Client Tools | Click to select client tools version |
All commands in the Result View are available via context menu.
| Command | Notes |
|---|---|
| Copy Column as ECL Set | Right Click on Column Header |
| Copy Row as ECL | Right Click in Result Body |
| Copy All as ECL | Right Click in Column Header or Result Body |
The following Visual Studio Code settings are available for the ECL extension. These can be set in user preferences (ctrl/cmd+,) or directly in your current workspace (.vscode/settings.json):
// Override eclcc auto detection. "ecl.eclccPath": "" // eclcc arguments. "ecl.eclccArgs": [], // eclcc syntax check arguments. "ecl.eclccSyntaxArgs": [], // Write eclcc log file to specified file. "ecl.eclccLogFile": "" // Run 'eclcc -syntax' on save. "ecl.syntaxCheckOnSave": true // Run 'eclcc -syntax' on load. "ecl.syntaxCheckOnLoad": true // Additional folders to use when resolving IMPORT statements. "ecl.includeFolders": [] // Add '-legacy' argument to eclcc. "ecl.legacyMode": false // Debug level logging (requires restart). "ecl.debugLogging": false // Show results after submitting a workunit. "ecl.WUShowResults": internal | external | disabled // Force global 'proxySupport' to 'fallback' "ecl.forceProxySupport": false // Save file prior to syntax check "ecl.saveOnSyntaxCheck": false // Save file prior to submission "ecl.saveOnSubmit": false // Ping interval (secs, -1 to disable) "ecl.pingInterval": 5
Submitting ECL using VS-Code requires specifying the target environment within the VS Code launch.json (pressing F5 will prompt you to auto create a skeleton file if none exists):
// Default ECL Launch Configuration { "name": "localhost", "type": "ecl", "request": "launch", "protocol": "http", "serverAddress": "localhost", "port": 8010, "targetCluster": "hthor", "path": "", "abortSubmitOnError": true, "rejectUnauthorized": true, "resultLimit": 100, "timeoutSecs": 60, "user": "vscode_user", "password": "" }
KEL is an optional language that can generate ECL.
The following KEL specific commands are available. Note: These commands will not be active until a KEL file has been opened (as this triggers the extension to load). To activate a command either use its associated hotkey or press ctrl/cmd+shift+p and type KEL this will present a filtered list of the KEL specific commands:
- Syntax Check [F7] - Save + check syntax of current file.
- Generate ECL [F5] - Save + generate ECL files.
Click on KEL Client Tools Version
- Select Client Tools Version - Select Client Tools Version from available options.
The following Visual Studio Code settings are available for the KEL extension. These can be set in user preferences (ctrl/cmd+,) or directly in your current workspace (.vscode/settings.json):
// Java runtime arguments (e.g. -Xmx12G). "kel.javaArgs": [] // Override KEL auto detection "kel.kelPath": "" // Check syntax on save. "kel.syntaxCheckOnSave": true // Generated ECL location (Same Folder | Child Folder)." "kel.generateLocation": "Same Folder" // "Generate ECL on save." "kel.generateOnSave": false // Check syntax on load. "kel.syntaxCheckOnLoad": true // Check syntax with KEL grammar (fast) "kel.syntaxCheckFromGrammar": false
To set up a development environment for debugging the ECL for VS Code extension:
cd /Some/Dev/Folder/ git clone https://github.com/hpcc-systems/vscode-ecl cd vscode-ecl git submodule update --init --recursive npm install
At which point you can open the vscode-ecl folder within VS Code.
Next start the background build process by pressing ctrl+shift+b (which will run the default build command in .vscode/tasks.json)
At which point you can edit the sources and launch debug sessions via F5 and included launch configurations.