hpcc-systems / vscode-ecl

ECL Extension for VSCode
https://marketplace.visualstudio.com/items?itemName=hpcc-systems.ecl
Other
13 stars 13 forks source link
ecl hpcc-platform typescript vscode

ECL for Visual Studio Code

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:

Recent Highlights

v2.24.x

v2.23.x

v2.19.x

v2.15.x

v2.14.x

v2.13.x

v2.12.x

Version 2.12

v2.11.x

v2.10.x

v2.9.x

v2.8.x

v2.7.x

Version 2.7

v2.6.0

Version 2.6

v2.5.0

Version 2.5

v2.4.0

Version 2.4

v2.3.0

Version 2.3

v2.2.0

v2.1.0

Reworked submission process:

Quick Start

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.

Quick Start

  1. Open folder
  2. Open ECL file
  3. Create Launch Configuration (if needed)
  4. Select the target by:
    • Clicking the "Launch Configuration" in the status bar
    • Optionally clicking on the "Target Cluster" in the status bar
  5. Monitor Workunit in the "Workunit History" pane
  6. Click on Workunit to view results / issues in the bottom pane

ECL

ECL Commands

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:

Global:

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

Within the ECL Code Editor:

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+R Fetches record definition for given logical file

Within the ECL Code Editor Tab Context Menu:

Command Shortcut Description
Copy as ECL ID Copy path as Qualified ECL ID

Within the Workunit Tree Title Bar:

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)

Within the Workunit Tree:

Command Shortcut Description
Copy WUID Copy workunit ID to clipboard
Abort Workunit Abort running workunit
Delete Workunit Delete completed workunit

Within the Explorer Tree Context Menu (ecl files only):

Command Shortcut Description
Copy as ECL ID Copy path as Qualified ECL ID

Within the Status Bar

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

Within the Result View

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

ECL Settings

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

ECL Launch Settings

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

KEL is an optional language that can generate ECL.

KEL Commands

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:

Within the KEL Code Editor:

Within the Status Bar

Click on KEL Client Tools Version

KEL Settings

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

Building and Debugging the Extension

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.

License

Apache-2.0