Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 101399

Summary: don't call validateEdit when Code Assist is just started in Java Editor
Product: [Eclipse Project] JDT Reporter: Hirotaka Matsumoto <jljlmatu>
Component: TextAssignee: JDT-Text-Inbox <jdt-text-inbox>
Status: CLOSED INVALID QA Contact:
Severity: normal    
Priority: P3    
Version: 3.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Hirotaka Matsumoto CLA 2005-06-23 00:56:07 EDT
Don't call validateEdite when Code Assist is just started in
Java editor. Here is an user scenario.

a) Open java file by Java Editor. Make sure that that java file is
    under SCM control.
b) Put the cursor the location where the code assist can show some
   candidate. ( i.e Just after "super." to see what apis are
   available ) The objective is to see what apis are avaialble, not
   actually being edited.
c) Initiate Code Assist by Ctrl+Space

So that you will see "Need to checkout file ?" dialog. The intention
is to see what apis are available, not edit the file itself, so this
dialog is very big surprise. It was said that validateEdit is called
just before actually being edited, so calling it in this timing
isn't what is supposed to be.

.
Comment 1 Dani Megert CLA 2005-06-23 02:06:25 EDT
This is the intended behavior since code assist is an editing command and we
have to ask up-front.

If you simply want to browse the code you can use the more powerful Ctrl+F3 on
the receiver. This gives you the list of methods, you can even look at the
inherited members and directly navigate to them.
Comment 2 Hirotaka Matsumoto CLA 2005-06-23 03:30:06 EDT
Could you pease clarify why you decided to call it at this moment. Is
this because of some usability test result ? or just you thought so ?
We would like to see any rationale for this behaviour because this
reason could affect our editor's behaviour. In my personal view, 
this isn't natural a litle bit. For example, some
refactor commands (i.e. Raname, Move.. ) sets up everything through
the dialog, then validateEdit is called just before modifying( a.k.a
 making dirty ) document, so that we have a chance not to check out
the file. But in the current code assist behaviour, we have no choice.

 


.
Comment 3 Dani Megert CLA 2005-06-23 04:45:31 EDT
Invoking code assist means the user asks for assistance to modify the code i.e.
at that point the user already decided to modify the document. All modifying
editor actions call validate edit before applying or delegating the operation.

Note: if you do not like that behavior for your editor simply implement your own
ContentAssistAction and bind it to the code assist command.
Comment 4 Hirotaka Matsumoto CLA 2005-09-28 00:51:57 EDT
.