2026-08-17 18:22:16 +02:00
2026-08-17 18:22:16 +02:00
2026-08-17 18:22:16 +02:00
2026-08-17 18:22:16 +02:00
2025-12-22 11:11:03 +01:00
2026-08-17 18:22:16 +02:00
2026-08-17 18:22:16 +02:00
2026-08-17 18:22:16 +02:00

EFTL Language Extension for VS Code

Syntax highlighting and language support for EFTL (ElixForms Template Language).

Features

  • Syntax Highlighting for all EFTL constructs
  • Code Snippets for common patterns
  • Bracket Matching for EFTL blocks
  • Code Folding for block structures

Supported Syntax

Block Delimiters

  • [EFTL]...[/EFTL] - Main EFTL block
  • [VAR name="..." type="..."]...[/VAR] - Variable declarations
  • [IF]...[/IF] - Conditionals
  • [WHILE]...[/WHILE] - Loops

Expressions

  • [% expression %] - Execute expression
  • [%= expression %] - Output expression value

Data Tags

  • [TAG]GETVALUEBYTAG,TAG_NAME,REQUEST,IUQOID[/TAG]
  • [TAG]SCHEMAID,schemaId,COL0001,IUQOID, , [/TAG]

Functions

  • [SPLIT regex="..."]...[/SPLIT] - Split string
  • [TRIM]...[/TRIM] - Trim whitespace
  • [VALUE_OF varname="..." index="..." /] - Get array element
  • [SIZE_OF varname="..." /] - Get array size
  • [CONTAINS varname="..."]...[/CONTAINS] - Check containment
  • [FORMAT type="..." pattern="..."]...[/FORMAT] - Format values

Control Structures

  • [IF], [CONDITION], [THEN], [ELSE], [ELSE IF]
  • [WHILE], [DO]

Comments

  • [!-- comment --]

Building and Installation

1. Build from Source

To compile the extension, you need Node.js installed.

  1. Open a terminal in the project root.

  2. Install dependencies:

    npm install
    
  3. Compile the TypeScript code:

    npm run compile
    

    Alternatively, use npm run watch to automatically recompile on changes.

2. Manual Installation (for testing)

To make the extension available in your VS Code without packaging it as a VSIX:

Windows

  1. Open a command prompt (as Administrator for symlinks) or PowerShell.

  2. Create a link to this folder in your VS Code extensions directory:

    # PowerShell
    New-Item -ItemType Junction -Path "$env:USERPROFILE\.vscode\extensions\eftl-language" -Value "D:\__Git\vscode-eftl-language"
    

    Note: Replace the value path with the actual absolute path to your project folder if it differs.

Linux / macOS

  1. Create a symbolic link:

    ln -s "$(pwd)" ~/.vscode/extensions/eftl-language
    
  2. Restart VS Code. The extension will now be loaded.

3. Development Mode (Debugging)

If you want to debug the extension or the language server:

  1. Open the project folder in VS Code.
  2. Ensure you have run npm install and npm run compile.
  3. Press F5 (or go to the Run and Debug view and click Launch Extension).
  4. A new Extension Development Host window will open.
  5. In that window, open any .eftl file to test syntax highlighting and the language server.

Snippets

Prefix Description
eftl EFTL block with header
var Variable declaration
vartag Variable from TAG
varschema Variable from SCHEMAID
if IF statement
ifelse IF-ELSE statement
while WHILE loop
split Split function
trim Trim function
valueof VALUE_OF function
sizeof SIZE_OF function
contains CONTAINS function
formatnum Format number
tag GETVALUEBYTAG tag
schema SCHEMAID tag
out Output expression
comment Comment block

Example

[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
[VAR name="total" type="number"][% total = 0; %][/VAR]
[VAR name="items" type="iterable"][SPLIT regex=";"][TAG]GETVALUEBYTAG,ITEMS,REQUEST,IUQOID[/TAG][/SPLIT][/VAR]

[!-- Calculate total --]
[VAR name="count" type="number"][SIZE_OF varname="items" /][/VAR]

[IF]
    [CONDITION][% count > 0 %][/CONDITION]
    [THEN][%= count %] items found[/THEN]
    [ELSE]No items[/ELSE]
[/IF]
[/EFTL]

License

MIT

S
Description
No description provided
Readme
2.1 MiB
Languages
TypeScript 100%