-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for contributions of export rules and checks to the language #46
Comments
rmitin
pushed a commit
to rmitin/dsl-devkit
that referenced
this issue
Jan 30, 2018
Generalize existing IAdditionalModelInferrer pattern to support extending multiple services. For now we add services required for export grouped together (fingerprint computer, resource description strategy, qualified name provider) in IAdditionalExport. We keep IAdditionalModelInferrer as is, but do not register it directly anymore in an extension point. Instead in extension point we register ILanguageContribution where we can register extensions for multiple services. Check extension will then also come into this service. Later we might need a similar thing for UI services when we are to extend content assist. Both *InferrersService and *ExportService get are language specific and can be injected by languages that support extensions. These services have default implementations (DefaultAdditionalExportService, DefaultAdditionalInferrersService) which rely on global ILanguageContributionService. ILanguageContribution service is the one that may have different implementations for the standalone builder and for Eclipse OSGi use case. Issue dsldevkit#46
rmitin
pushed a commit
to rmitin/dsl-devkit
that referenced
this issue
Feb 8, 2018
Generalize existing IAdditionalModelInferrer pattern to support extending multiple services. For now we add services required for export grouped together (fingerprint computer, resource description strategy, qualified name provider) in IAdditionalExport. We keep IAdditionalModelInferrer as is, but do not register it directly anymore in an extension point. Instead in extension point we register ILanguageContribution where we can register extensions for multiple services. Check extension will then also come into this service. Later we might need a similar thing for UI services when we are to extend content assist. Both *InferrersService and *ExportService get are language specific and can be injected by languages that support extensions. These services have default implementations (DefaultAdditionalExportService, DefaultAdditionalInferrersService) which rely on global ILanguageContributionService. ILanguageContribution service is the one that may have different implementations for the standalone builder and for Eclipse OSGi use case. Issue dsldevkit#46
rmitin
pushed a commit
to rmitin/dsl-devkit
that referenced
this issue
Feb 13, 2018
As there can be several name providers, use different cache key for different class of the name provider. Issue dsldevkit#46 Change-Id: I1bd922a80219e9ac7e0070449c73f116db67374e
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sometimes certain class of sources of one given DSL needs to get more support: it infers more types, it has specific constrains, it exports those inferred types to the index. These extensions cannot and should not be part of the core plugin for the language. To implement them separately a mechanism for extensions is needed.
We already have a way to contribute type model inference extensions with
com.avaloq.tools.ddk.xtext.modelinference.IAdditionalModelInferrer
. Now we generalize it for export rules and checks.The text was updated successfully, but these errors were encountered: