c34d2864aa08e72f55b16da749620c380c063829
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.
-
Open a terminal in the project root.
-
Install dependencies:
npm install -
Compile the TypeScript code:
npm run compileAlternatively, use
npm run watchto 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
-
Open a command prompt (as Administrator for symlinks) or PowerShell.
-
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 "$(pwd)"Note: Replace the value path with the actual absolute path to your project folder if it differs.
Linux / macOS
-
Create a symbolic link:
ln -s "$(pwd)" ~/.vscode/extensions/eftl-language -
Restart VS Code. The extension will now be loaded.
3. Development Mode (Debugging)
If you want to debug the extension or the language server:
- Open the project folder in VS Code.
- Ensure you have run
npm installandnpm run compile. - Press
F5(or go to the Run and Debug view and click Launch Extension). - A new Extension Development Host window will open.
- In that window, open any
.eftlfile 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
Languages
TypeScript
100%