Community
Participate
Working Groups
At the moment hyperlinks are calculated in UI thread. Such calculation can be heavy operation and it can easily freeze UI. I believe it will make IDE more responsive and user friendly. It will also make IDE more resistant to 3rd party plugins with poor performance. Similar issue is opened for CA (bug 251156) but I couldn't find version for hyperlinks.
It should really fantastic if we could have an async hyperlink detector which could work with CompletableFuture by providing an interface like this: ---------------------------------- public interface IAsyncHyperlinkDetector { CompletableFuture<IHyperlink[]> detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks); } ----------------------------------
*** Bug 569402 has been marked as a duplicate of this bug. ***
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.text/+/173318
New Gerrit change created: https://git.eclipse.org/r/c/lsp4e/lsp4e/+/173319
i made a patch for platform.text and a small patch for this that works with it With this first cut (as an idea) it already works its fully async
and a small patch for: https://bugs.eclipse.org/bugs/show_bug.cgi?id=561372
i updated the patch so it doesn't break api and now the extension point will way if it is async or not so we can upfront create the right delegates i didn't change it yet to Flow.Publisher/Subscriber. will have a look at that later The detection strategies are implemented, except that "first" only works currently with the default "sync" operation not with the async api. Maybe if we are Publish/Subscibe that can be also implemented easier. (i guess with the current futures this should be also possible, the first future that returns is leading?) I guess that first is really an optimization to get as quickly a result in the event thread.. it doesn't matter to much now i guess. Except if one really takes long... now everything waits for it.
i made a new patch (and something did go wrong with the changeid, because i needed to revert some stuff first) https://git.eclipse.org/r/c/platform/eclipse.platform.text/+/175291