feat: add fusion grammar and highlights

This commit is contained in:
Jirgn 2021-11-26 16:37:51 +01:00 committed by Stephan Seitz
parent fbbcfa7b6c
commit 979c32493d
7 changed files with 235 additions and 0 deletions

View file

@ -0,0 +1,61 @@
include: SomeFile.fusion
//<- include
// ^punctation.delimiter
// ^uri
namespace ns = Neos.Fusion.Space
//<- keyword
// ^namespace
// ^operator
// ^namespace
prototype(MyType) < prototype(ns:SuperType) {
//<-keyword
// ^punctation.bracket
// ^type
// ^punctation.bracket
// ^operator
// ^namespace
// ^type
deleteProp >
// ^operator
string = 'value'
//<- property
// ^operator
// ^string
number = 10.2
// ^number
null = null
// ^constant.builtin
boolean = true
// ^boolean
property.inner = "value"
//<- property
// ^property
property.@meta = "value"
//<- property
// ^attribute
property.type = SomeType
//<- property
// ^type
property.aliasedType = ns:SomeType
//<- property
// ^namespace
// ^type
property.fullQualifiedType = SomeNamespace:SomeType
//<- property
// ^namespace
// ^type
}

View file

@ -0,0 +1,74 @@
string = ${'foo'}
// ^string
string = ${'foo \'bar\' baz'}
// ^string
string = ${"foo"}
// ^string
string = ${"foo ${test}"}
// ^string
boolean = ${true}
// ^boolean
number = ${1}
// ^number
number = ${1.2}
// ^number
propertyPath = ${property.path}
// ^variable
// ^variable
array = ${[]}
// ^punctation.bracket
array = ${[true, 'string', 1, [true]]}
// ^punctation.bracket
// ^boolean
// ^string
// ^number
// ^punctation.bracket
// ^boolean
object = ${{}}
// ^punctation.bracket
object = ${{first: 'value', second: true, third: [], fourth: object.path }}
// ^property
// ^string
// ^property
// ^boolean
// ^property
// ^punctation.bracket
// ^property
// ^variable
result = ${methodCall()}
// ^function
result = ${Some.methodCall(param, param)}
// ^function
// ^variable
// ^variable
arrowFunction = ${map(foo, (bar, buz) => bar * buz)}
// ^function
// ^variable
// ^variable
logic = ${!foo && !(bar || baz) and not 'string'}
// ^operator
// ^operator
// ^operator
// ^operator
// ^operator
ternary = ${ check ? true : false}
// ^punctation.delimiter
// ^punctation.delimiter