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:
ecl.WUShowResults
setting, allows user to control how results are displayed after submitting a workunit.ecl.submitNoArchive
command, submits raw content of editor to server without creating an archive first.ecl.pingInterval
setting, allows user to change or disable the "server alive" ping.ecl.saveOnSyntaxCheck
and ecl.saveOnSubmit
option to ECL Settings (defaulting to off to match ECL IDE behaviour).path
option to launch configuration (to assist with proxy servers).Copy WUID
context menu.ecl.forceProxySupport
setting.rejectAuthorized: false
being ignored.true
Reworked submission process:
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.
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 | F5 | Submit ECL |
Compile | Compile ECL | |
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+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 | Toggle between "My" and "All" Workunits | |
All workunits | Toggle between "My" and "All" Workunits | |
Refresh | Refresh Tree | |
ECL Watch | Launch ECL Watch in external browser | |
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:
Click on KEL Client Tools Version
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.