📦 VSCode Marketplace • How To Use • Functionality • FAQ
Warning
🚧 This package is still WIP 🚧
Most of the common Language Server Features are supported.
Goto Definition (CMD + Click)
Currently works on Prototypes and fusion Properties (detected by this or props).
Support for EEL-Helper is present, but currently not for functions (q(node)) only for classes (String.empty()).
🚧 It also works on controller and action properties in Neos.Fusion:ActionUri and Neos.Fusion:UriBuilder as long as the Action can be found.
Currently works on Prototypes only.
Works on properties and prototypes in Fusion and AFX.
Support for EEL-Helper ist present but the description parsing is not working a 100% correct.
Every Symbol in the document can be easily accessed.
Every Prototype can be easily listed via the WorkspaceSymbols. Overwritten Prototypes are also shown.
It currently only works when it is a fusion string. When the file is an image it gets preview on hover.
Currently it only provides a link to the NodeType-YAML-File for Prototype-Creations.
It is based on the definition capability. Because the definition capability does not work perfectly in complex fusion the feature is marked as experimental. If it bothers you too much it can be disabled in the extension configuration.
If you want to ignore an Error or Warning you can use a @fusion-ignore -comment in the line before:
Described [here](#Resource Goto Definition, Completion and Hover) resource strings are diagnosed when the file cannot be found.
In AFX a tag has to be closed either by a corresponding closing tag or via self-closing. It will be marked as an Diagnostic-Error if it is not closed.
As EEL-Helper are parsed so are the arguments. If an arguments is missing it is marked as an Error. If it has too many it is a warning.
Prototypes can be marked as deprecated via the Extension Configuration. The deprecation can be fixed via a Quick-Action in the context menu.
If an empty EEL-Expression obj = ${} is used instead of an literal null obj = null it will be marked as deprecated with an Quick-Action-Fix.
Every semantic comments starts with @fusion- followed by the name. Every comment works in Fusion (no hash comment) and AFX.
Some comments have optional parameters which is a simple comma separated list:
// @fusion-typeOfComment[argument1, argument2]With this comment the next line will be ignored from fusion property diagnostics, so no error, warning or info reporting.
It also works on EEL-Helper-Argument Diagnostics.
If placed above a Tag in AFX the attributes will be affected as well. Even if they are in the lines below.
If no arguments are provided every property-warning will be ignored.
Every argument is treated as an property path.
In this example everything in props.user will be ignored but props.noProperty not.
// @fusion-ignore[props.user]
test = ${props.user.notExisitingProperty && props.noProperty}With this comment every fusion property diagnostic in the block and below will be ignored.
If no arguments are provided every property-warning will be ignored.
Every argument is treated as an property path.
Works the same as @fusion-ignore.
In the Explorer-View the outline is filled with symbols found in the current document.
The language server currently highlights controller and action properties in Neos.Fusion:ActionUri and Neos.Fusion:UriBuilder . Even if the action cannot be found.
This feature will be extended in the future.
The language-server relies heavily on the ts-fusion-parser which is a typescript port of the "official" Fusion Parser.
Essentially it reads all AST-Nodes from the fusion parser and checks if the curser is on one of these AST-Nodes. If it is, the relevant actions are carried out.
The AFX and EEL parser is part of the ts-fusion-parser.
Currently there is no road map.
There is rudimentary support for EEL-Helper. Hover and Goto-Definition is currently (somewhat) supported.
- EEL-Helper hover description will parse the first description it can find which may not be the correct one
- EEL-Helper with the same name may be handled incorrectly