rokucommunity / rokucommunity/brighterscript
Require plugins to declare their annotations
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 208
- Forks
- 68
- Avg merge
- 8h 39m
- Merged PRs (30d)
- 39
Description
Require plugins to declare their annotations ahead of time so we can provide better editor help and also validation.
This is a breaking change to bsc because annotations would be validated for their existence, so perhaps it's a good candidate for v1.0?
Requirements:
- plugins must declare all of their annotations, which include
nameand any arguments and their types. For future compatibility, we should support an array of signatures (even if we only support one signature at the moment).
Benefits:
- we can provide intellisense for annotations
- we can show diagnostics when using unknown annotations
Possible implementation:
There's a new plugin lifecycle hook where plugins can declare various settings. Perhaps something like this:
onPluginConfigure(event){
//should this be brighterscript style code? Or json?
this.annotations = [
`inline()`,
`suite(suiteConfig as { name: string, timeout: number})`
]
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the bsc plugin lifecycle and the proposed onPluginConfigure hook. Define how plugins declare annotation names, arguments, types, and multiple signatures, then determine how those declarations feed editor help and unknown-annotation diagnostics. Done means the breaking behavior and v1.0 compatibility plan are settled and the requirements are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100