Adds support for multi-target references. These are references that have the possibility to target multiple elements at once. See following illustration for an example:
Note that by default, only elements that are defined on the same scope can be targeted. I.e. a multi reference as in the following will only target one element:
This behavior can be freely overwritten by adopters of Langium. However, due to the inherent complexity of aligning the References service implementation and the scoping wrt their behavior, this feature is intended for proficient Langium developers.
Adds support for multi-target references. These are references that have the possibility to target multiple elements at once. See following illustration for an example:
Note that by default, only elements that are defined on the same scope can be targeted. I.e. a multi reference as in the following will only target one element:
This behavior can be freely overwritten by adopters of Langium. However, due to the inherent complexity of aligning the
References
service implementation and the scoping wrt their behavior, this feature is intended for proficient Langium developers.The intended use cases for this feature are stuff like declaration merging in TypeScript or partial classes in C#.
Contains a bunch of breaking changes:
References
interface now returns arrays instead ofT | undefined
.Reference
in a generic manner (linker mostly) now also works withMultiReference
.LinkingError
no longer inheritsReferenceInfo
(which didn't make a lot of sense in the first place), but contains ainfo
property.