Skip to content
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

Consider groups of translator options based on use case for ELM #843

Closed
brynrhodes opened this issue Nov 21, 2022 · 1 comment
Closed

Consider groups of translator options based on use case for ELM #843

brynrhodes opened this issue Nov 21, 2022 · 1 comment
Assignees

Comments

@brynrhodes
Copy link
Member

Currently, translatorOptionsMatch is built to include any change in CQL behavior and/or ELM output. Consider more fine-grained controls to support different use cases for ELM usage:

Master option:

EnableAnnotations
Language Features:

DisableListTraversal
DisableListDemotion
DisableListPromotion
EnableIntervalDemotion
EnableIntervalPromotion
DisableMethodInvocation
RequireFromKeyword
Annotated Helpers for Interpreters:

EnableResultTypes - function overloads
SignatureLevel - function overloads
Dependency Loader Control:

EnableCqlOnly - Doesn't load pre-compiled ELM (JSON or XML) dependencies
CompatibilityLevel - Compatibility level for the translator, valid values are 1.3, 1.4, and 1.5
Debbuging Information for Language Servers.

EnableLocators - Find source of errors
ErrorLevel - Error, Warnings, Info, etc.
EnableDetailedErrors -
EnableResultTypes - Code completion
I think the most difficult one is CompatibilityLevel, which is currently used in the dependency library loader but in a way that only loads libraries that declare exactly the same compatibility level value the loader is expecting as opposed to just using the option in the compiler to check if the library is compatible with that version (removing the need to compare the annotations themselves)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants