Async completions support

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Async completions support

Gayan Perera
Hi All,
Does JDT support asynchronously update the completion list. What i'm looking for is when you invoke content assist at first you will see the simple completions and while it is shown the heavy completion computer will run in background and push the updates into the completion list. This behavior is there in IntelliJ. do we have this support in JDT ? or do we have this support in Platform ?

Best regards,
Gayan.

_______________________________________________
jdt-dev mailing list
[hidden email]
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Async completions support

Mickael Istria-5
Platform has support for "incremental" async content-assist, where each provider can add their content asynchronously and the pop-up updates the content when a provider completes. The generic editor enables this by default.
JDT doesn't have that, because extensibility of content assist happens downstream and all the contributors are more or less aggregated into a single provider which may require the UI Thread, so all results are returned simultaneously whenever the last content-assist extension completes.
Changing this so JDT contributes multiple providers to Platform (so updates can happen incrementally on each provider completion) might be doable, but not easy to do it right and safely IMO.

_______________________________________________
jdt-dev mailing list
[hidden email]
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Async completions support

Gayan Perera
Hi all,

When we can say we support all computers to run without UIThread ? I mean at some point we need to drop the UIThread support and only support Async completions. 

We need to use the platform provided features to make JDT better and compete with other editors out there. 

Best regards,
Gayan

On Sun, 16 Aug 2020 at 23:22, Mickael Istria <[hidden email]> wrote:
Platform has support for "incremental" async content-assist, where each provider can add their content asynchronously and the pop-up updates the content when a provider completes. The generic editor enables this by default.
JDT doesn't have that, because extensibility of content assist happens downstream and all the contributors are more or less aggregated into a single provider which may require the UI Thread, so all results are returned simultaneously whenever the last content-assist extension completes.
Changing this so JDT contributes multiple providers to Platform (so updates can happen incrementally on each provider completion) might be doable, but not easy to do it right and safely IMO.


_______________________________________________

jdt-dev mailing list

[hidden email]

To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev


_______________________________________________
jdt-dev mailing list
[hidden email]
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev
Reply | Threaded
Open this post in threaded view
|

Re: Async completions support

Mickael Istria-5


On Mon, Aug 17, 2020 at 10:15 AM Gayan Perera <[hidden email]> wrote:
When we can say we support all computers to run without UIThread ?

We'll never be able to say that, as computers are provided via extension point and has a lot of extensions in the wild that have worked for a long time, sometimes/often assuming they're running in UI Thread.
 
I mean at some point we need to drop the UIThread support and only support Async completions. 

This would be quite similar to breaking an API and cause a major risk of breaking many existing clients.
If we're to change that, we need a clear plan to communicate about it, plan the change, handle UI Thread requests in a way that reports a more helpful message... That's actually a lot of work, while we already have a way for extensions to declare whether they require UI Thread and already have a way to see which computers do prevent async completion from working; I'm not sure breaking compatibility with UI Thread based computers would bring much more.


_______________________________________________
jdt-dev mailing list
[hidden email]
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jdt-dev