redhat-developer / quarkus-ls

Language server for Quarkus tooling
Eclipse Public License 2.0
44 stars 15 forks source link

Don't implement by default custom language client API #871

Closed angelozerr closed 1 year ago

angelozerr commented 1 year ago

Don't implement by default custom language client API

Fixes #870

rgrunber commented 1 year ago

I sort of wonder whether this is just swapping one issue for another. Yes, this means that when clients update they'll more easily see what they have to implement, but are the methods that were implemented as default mandatory ?

If a method is required for a client to work with that version of the language server, then yes it should not be marked as default with return CompletableFuture.completedFuture(null);, but if it isn't mandatory, then leaving it empty creates potentially extra work.

@datho7561 thoughts ?

datho7561 commented 1 year ago

I think this change is a good idea, since features in the language server rely on this interface being implemented properly. In the case of intellij-quarkus, if we update qute-ls to the latest version, but don't implement all the methods in the interface, it won't work as expected. i.e. some features may not work or will through exceptions.