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

Inquiry About IntelliJ Plugin Plans and Support #101

Open
denbezrukov opened this issue Dec 12, 2024 · 3 comments
Open

Inquiry About IntelliJ Plugin Plans and Support #101

denbezrukov opened this issue Dec 12, 2024 · 3 comments

Comments

@denbezrukov
Copy link

Hi @nrayburn-tech ,

First, thank you for all the effort and dedication you've put into maintaining.

Could you share any updates or plans regarding its development or future roadmap?
Have you encountered any particular challenges or difficulties while working on the plugin?
Is there any way we at JetBrains can assist or support you with the plugin? We’d be happy to help where needed.

@Boshen
Copy link
Member

Boshen commented Dec 12, 2024

Note: @denbezrukov is from the JetBrains team.

@nrayburn-tech
Copy link
Contributor

Hi @denbezrukov, thanks for reaching out.

I don't have a roadmap available, but I believe the primary focus is taking the best of what is available for ESLint from either the JetBrains plugin or the VS Code plugin and apply that to the Oxc plugins.

These are a few of the items I'm going to be working on next (although it could be days or weeks before I get to it).

  1. Running an action to apply all fixes for the current file
  2. Running an action to apply all fixes for the workspace
  3. Applying fixes on save
  4. Right clicking an open editor should provide a menu item to apply fixes to the current editor

If JetBrains provided an API/method for these steps, I would find it useful. It looks like it will be re-used 3 times in this plugin, but it's also common functionality for any plugin using LSP and supplying quick fixes.

  1. Plugin requests code actions from the language server with a CodeActionKind of source.fixAll.oxc.
  2. The language server responds with the CodeActions with isPreferred: true on each one.
  3. The Oxc plugin applies the edits to the editor.

Long term, Oxc will also have a formatter available. At which point formatting related functionality will be added to the plugin. I would probably guess this is months out as the functionality still has a lot of work to be built out before it is integrated with the language server and then finally IDE plugins.

I haven't had any big issues so far. The most common problem I've run into is trouble finding examples of how something is done with the LSP tooling from JetBrains because it is all still new and experimental. I felt similarly about some of the changes I was making within the VS Code plugin as well, so it could be that I'm just not looking in the right places.

I am currently waiting for some additional configuration related functionality (oxc-project/oxc#7408) to be added to Oxc and then the intent is to get the plugin updated and a version finally shipped out for it. I don't know what that timeline looks like unfortunately.

Hopefully I was able to give you some insight. Let me know if you have any additional questions or anything isn't clear.

@Sysix
Copy link

Sysix commented Dec 16, 2024

Hello from a Collaborator on VSCode for oxc / LSP Server for oxc :)

@nrayburn-tech is making sure that the LSP is aligned with what IntelliJ supports.
So we can support LSP features on both platforms.
LSP is created by Microsoft and is of perfectly integrated with VScode (MS too),
I do not expect it from IntelliJ, but it would be much easier creating plugins for both platforms.

I can not use textDocument/diagnostic because IntelliJ does not support them.
The idea: the client can request possible lint errors/warnings for a file.
Instead we need to send always the changes to the server
and depending on the configuration (run: onType | onSave) we report them back with textDocument/publishDiagnostics.

We want to support workspace diagnostic too, LSP has workspace/diagnostic but IntelliJ does not support them.
Surly there is a workaround for that. I would prefer to go the LSP way :)

I created a ticket for this and wish it could be implemented in the near future ❤️

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

4 participants