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

Update to support configuring the "run" option for the language server #62

Open
nrayburn-tech opened this issue Oct 12, 2024 · 6 comments

Comments

@nrayburn-tech
Copy link
Contributor

  1. Add a new property to OxcSettingsComponent and OxcSettingsState.
  2. Add the new input to OxcSettingsConfigurable (probably a Combo Box, but radio buttons may be fine too).
  3. Update OxcLspServerDescriptor#createInitializationOptions to send the configured "run" option to the language server.
@nrayburn-tech nrayburn-tech mentioned this issue Oct 12, 2024
6 tasks
@nrayburn-tech
Copy link
Contributor Author

nrayburn-tech commented Oct 23, 2024

IntelliJ LSP doesn't currently support the textDocument/didSave event.

@nrayburn-tech
Copy link
Contributor Author

JetBrains is adding support in 2024.3.1. This brings up the question of what JetBrains IDE versions this plugin should target for support. Maybe just the latest stable?
The LSP APIs being used are experimental and still under active development, so supporting additional versions isn’t going to be easy.

@nrayburn-tech
Copy link
Contributor Author

@Boshen @IWANABETHATGUY (or anybody else) have any thoughts on what versions of JetBrains IDEs to try and support? Given my previous comment about the LSP APIs being experimental, I think it only makes sense to support the latest version for now.

@IWANABETHATGUY
Copy link
Collaborator

I am not familiar with JetBrains actually, can you have a look at the biome? Maybe same as biome should be enough.

@nrayburn-tech
Copy link
Contributor Author

A lot of information below, tried to separate it into reasonable chunks.

Biome and JetBrains Statistics

Biome is currently targeting the latest release. 2024.3.* (or 243.* in the other version format in use some places).

https://plugins.jetbrains.com/docs/marketplace/product-versions-in-use-statistics.html contains some 2023 statistics from JetBrains on which versions were in use at the time. It indicates targeting the current and prior 2 major releases should cover 80% of the JetBrains users.

Difficulty with Multiple Versions

The difficulty with targeting multiple versions is the major versions may have API changes, especially with the LSP API being experimental. It is possible to release a different plugin version targeting different JetBrains versions, but it is not trivial. For example, we might have to maintain multiple branches corresponding to the different releases that compatibility is desired for.

An explanation of an example branching strategy that could be used to support multiple IDE versions.

  1. Branch 2024.1 would target IDE versions 2024.1 or newer.
  2. IDE version 2024.3 is released and contains API changes that we need to adopt for whatever reason (incompatible with our existing code or contains new APIs we want to use)
  3. We create a new 2024.3 branch for 2024.3 or newer.
  4. The 2024.1 branch now supports 2024.1 and 2024.2 due to the 2024.3 branch being created as the latest.

This would mean maintaining changes in each branch. Depending on the significance of the API changes, the effort here could vary greatly.

Suggestion

Target latest for now as we have a need to change. As the LSP API stabilizes and the plugin stops adding new features, expand the supported versions to cover at least the last 3 major releases.

@IWANABETHATGUY
Copy link
Collaborator

Yeah, that should make sense, let's apply your suggestion, and wait user's feedback

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

No branches or pull requests

2 participants