| Summary: | Type-ahead completion suggestions should be less disruptive, less intrusive and less aggressive | ||
|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Dave Shepperton <dshepperton> |
| Component: | UI | Assignee: | JDT-UI-Inbox <jdt-ui-inbox> |
| Status: | CLOSED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 4.7.1a | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Mac OS X | ||
| Whiteboard: | stalebug | ||
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug. If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie. |
The IDE's suggestion capability is obviously very useful, but I frequently find that it becomes a distraction and annoyance, interrupting the flow of my programming, to the point where I think I have to shut it off (although I have so far been unable to locate a configuration setting for doing so). Let me describe a couple of scenarios which I have tried to carefully quantify for you for the purposes of this report. Scenario A) Suppose that I'm typing along in a .java file, and that at some point I finish typing an object reference (maybe a field or a variable or a string literal) that is being supplied as an argument for a method parameter. String foo = getFoo(a, b, "" ^ Next, I mean to type a comma, but instead I type a period. String foo = getFoo(a, b, "". ^ I then type the space before the next argument I'm going to supply, but the UI locks up for a moment. Before I have time to process what's going on, I can see suggestions flash up on the screen for an instant. Then, apparently, the first suggestion was accepted since I already typed that space before realizing I had typed a period instead of a comma before that. Now I have: String foo = getFoo(a, b, "".substring(beginIndex, endIndex) ^^^^^^^^^^ ("beginIndex" is highlighted) Scenario B) I've just typed an object reference and then the period de-reference operator so that I can invoke an instance method. The IDE offers me some suggestions, but I keep typing, anyway: the method's name is short, I know it already, so it's faster to just type it myself. PrintWriter out = ... out.print ^ As soon as I type the open parenthesis at the end of that method name, even though I did not press space or take any other action to explicitly accept the match, the IDE decides (I think) that since what I've typed is technically an exact match to the first suggestion -- print(boolean b) -- that the first suggestion must be what I meant. Now I have this: out.print(b) ^ ("b" is highlighted) (On some subsequent retries, for whatever reason, the IDE appeared to change its mind and offer me print(String s) as the best matching completion. But it still treated my typing of the parenthesis as accepting this match.) These experiences feel rather like having a conversation with someone who is misunderstanding what I'm saying, but is enthusiastically (or perhaps impatiently) trying to jump in to complete my sentences for me. It's well-meaning, but not helpful; and dealing with it day after day is downright aggravating. Here are some observations for your consideration: - The developer is generally trying to type something they consider important. It seems to me that priority should be given to user input; and that if suggestions are to be supplied, they should be offered in a way that does not interrupt that flow. - The fact that the UI becomes unresponsive for at least a moment is obviously not ideal. - The IDE apparently (or at least effectively, as far as I can tell) considers a user manually finishing typing something that matches a suggestion. This is unnecessary, since there is already a way to accept a suggestion (pressing the space bar, and/or perhaps tab in some incarnations). It is also supplies another interruption to programming flow. - I'm having more problems with the suggestion system in Oxygen than I had in earlier versions I used for a long time, such as Luna. While I'm sure that it has been improved in many ways, I think it's become more intrusive and aggressive. - I'm sure that the behaviors concerned here are highly configurable. But it seems to me that this issue is one of user experience, and that if the user experience were pretty awesome out-of-the-box, that would allow the IDE to offer fewer settings, and/or make it so that users are less likely to feel the need to tinker with those settings very much. This is less a bug report and more of a feedback report; it is obviously not directly actionable. But I wanted to share these concerns with you so that you can take them into account in any future discussions related to this feature.