Bug 4964 Automatic Code Assist needs to be smarter
Build 204 While writing SWT code, I type the following: button.dispose At this point, I do not realize that the code assist list is up because I am not looking. There are 2 items in the list now: DISPOSED int - Widget dispose() void - Widget I then type "(" because the line I was typing was supposed to be: button.dispose(); But as soon as I type the "(" then automatic code assist seems to insert whatever is selected. Since DISPOSED is first in the list and is selected, I ended up with: button.DISPOSED which isn't even close to what I want, and I have to delete it all and start again, paying more attention this time. Code assist should notice that I have typed a ( and that this matches "dispose ()" far better than "DISPOSED". Either that, or it needs to be case sensitive when it is automatically inserting stuff.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/ExperimentalResultCollector.java
if (completionName.length == 0)
			return createMethodCompletion(declaringTypeName, name, parameterTypeNames, parameterNames, returnTypeName, completionName, modifiers, start, end);
	
		int count= parameterNames.length;
		int[] offsets= new int[count];
		int[] lengths= new int[count];
		StringBuffer buffer= new StringBuffer();	
		buffer.append(name);
		buffer.append('(');
		for (int i= 0; i != count; i++) {
			if (i != 0)
				buffer.append(", ");
				
			offsets[i]= buffer.length();
			buffer.append(parameterNames[i]);
			lengths[i]= buffer.length() - offsets[i];
		}
		buffer.append(')');
		
        if (new String(returnTypeName).equals("void"))
        	buffer.append(';');
		return new ExperimentalProposal(buffer.toString(), start, end - start, JavaPluginImages.get(iconName),
			nameBuffer.toString(), offsets, lengths, fViewer);
	}
	protected JavaCompletionProposal createMethodCompletion(char[] declaringTypeName, char[] name, char[][] parameterTypeNames, char[][] parameterNames, char[] returnTypeName, char[] completionName, int modifiers, int start, int end) {
		String iconName= JavaPluginImages.IMG_MISC_DEFAULT;
		if (Flags.isPublic(modifiers)) {
			iconName= JavaPluginImages.IMG_MISC_PUBLIC;
		} else if (Flags.isProtected(modifiers)) {
			iconName= JavaPluginImages.IMG_MISC_PROTECTED;