Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [che-dev] [Fwd: Re: Detecting newly added projects]

On Wed, 2019-07-10 at 15:12 +0200, Stevan LeMeur wrote:
I'm surprised that:
- Che can't know wether a plugin is a language server or not

A VS Code extension can plug into any number of API's. It is activated upon certain events that occur in the IDE. While we may be able to detect plugins that use certain plugin points (code assist, for example), we don't have support for this right now in Theia.

- Che can't know when a project has been cloned

We have no problem detecting that, but there is nothing in the LSP protocol that allows us to communicate that event to a language server

- Che can't tell to the language server to reinitialize - while apparently the IDE is doing it when it refreshes.

No, that is not what the refresh does: the refresh starts a whole new copy of the IDE, includeing any services bound to the previous instance of the front end. That means any stale state in the front end is flushed as well. And which language servers would we reinitialize? There may be many for a single project (yaml, camel, Java, for example). We have no ready mapping for this in the general case.

In Che 6, we had some pretty complicated and error-prone code specific to jdt.ls that would synchronize what the GWT IDE thought of as a project with what jdt.ls thought was a project. As for the other LS-based language support plugins, I think Che 6 had the same problems we now see in Che 7. I really don't want to reprise that code for Che 7 again.

Yes, we can work around the problems for the language plugins we know about, but I think it would be a mistake: we need a solution that will work for us as an ecosystem, not a product. Raising user expectations that cannot be fulfilled for 3rd-party plugins is not the way we should go. We as Che committers should not enjoy any privileges over 3rd party plugin writers.

Theia is not Che 6, it has no notion of project, for example, only folders. Trying to make Theia into the GWT IDE will be an uphill, losing battle. Let's not!


/Thomas



Back to the top