| Summary: | Pressing right arrow key when Quick Assist pop-up is showing does not re-compute the proposals if the existing proposals are ICompletionProposalExtension2/ICompletionProposalExtension | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Sameer <prosameer> |
| Component: | Text | Assignee: | Platform-Text-Inbox <platform-text-inbox> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | daniel_megert |
| Version: | 2.0 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Sameer
The two interfaces are exactly for the filtering purpose. If you don't want the proposals to support that then don't implement those interfaces or make sure that validate always returns true. I can make the validate return true. But that does not solve the issue. Consider this case: I invoke Quick Assist and one proposal is shown. Now, I press the right arrow key. If I return true from the validate() method, then also I'll not get the new proposals valid for the new offset. The method is just filtering the existing proposals and not checking if there are any proposals which are valid for the new offset. This behavior is only present in case when the offset increases (by pressing the right arrow key). For left arrow key press (offset decreases), the proposals are just re-computed every time! (In reply to comment #1) > The two interfaces are exactly for the filtering purpose. If you don't want the > proposals to support that then don't implement those interfaces or make sure > that validate always returns true. I see your point but again, this is as designed to allow filtering and we won't change that. If returning 'true' does not work then simply don't extend those interfaces. Then atleast this behavior can be made consistent for left key and right key. Right now, there is no filtering in case of left key. (In reply to comment #3) > I see your point but again, this is as designed to allow filtering and we won't > change that. If returning 'true' does not work then simply don't extend those > interfaces. It's by design that we only filter when going from left to right. Please don't reopen this again. Atleast, can you give reasons behind this design approach because I don't see it solving the purpose of filtering.... The reason is that we want filtering by going to the right and get more results when going to the left. Now, it's obvious that if you move left past the initial invocation you need to recompute the proposals, since there can be more. We could have optimized the code to cache the initial result and use that (undo filtering) until the caret moves past the initial invocation but that seemed to be overkill. |