redhat-developer / redhat-developer/lsp4ij
Automatically upgrade existing user-defined language server definitions based on changes to their originating templates
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 344
- Forks
- 113
- Avg merge
- 5h 22m
- Merged PRs (30d)
- 15
Description
In 0.9.0, we've added two key new configuration concepts, configuration JSON schema and client configuration. These enable significant enhancements to the configuration process and runtime behavior respectively. Existing user-defined language server definitions won't immediately benefit from these enhancements, though. LSP4IJ should compare existing user-defined language definitions against their originating templates (would need to determine the best matching logic) and, if the template has a non-empty, non-default value for either of these properties and the definition has an empty or default value for the same property, the definition should be upgraded either automatically or after prompting the user.
For what it's worth, I've already implemented this for my own plugin that creates TypeScript and CSS language server definitions for the end user. Obviously the template/definition matching logic is much easier when you're in full control, but assuming a more general version of that logic was determined -- and I think that prompting the user helps to insulate against incorrect matching if/when it occurs -- I'm happy to port the logic I've already implemented to LSP4IJ as a more general and encapsulated solution.
Contributor guide
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
No files or tests are named. Start by tracing how user-defined language server definitions, originating templates, configuration JSON schema, and client configuration are represented and updated; determine matching and whether prompting is required. Done means existing definitions can safely receive non-empty, non-default template values when their corresponding values are empty or default.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100