Bug 33629 Double-quote as character value broken in RC1
There is a series of related bugs under the category of it's really hard to enter a character value containing a double-quote character and when you try it strange things can happen. 1. Single-quote balancing seems not to work at all. When you type a single quote you get a single quote. 2. When you type the character sequence '" the result is '"" (!) 3. When you try to backspace over the extra unwanted " (either the first or the second) both are erased. The only way to get the desired result seems to be to copy and paste the " character. 4. If you try to cut and paste in the ", you can get in some weird mode where the editor thinks a string exists where there is none. I'm still trying to figure out the sequence that produced the following lines: if (c == ''' || c == '"') {" + "} (Leading tabs removed for sake of example.) I only know that the last two " characters were not typed. No doubt another illustration why editor modes are a bad idea.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/JavaCorrectionAssistant.java
}
	public void install(ITextViewer textViewer) {
		super.install(textViewer);
		fViewer= textViewer;
	}			
	/**
	 * Show completions at caret position. If current
	 * position does not contain quick fixes look for
	 * next quick fix on same line by moving from left
	 * to right and restarting at end of line if the
	 * beginning of the line is reached.
	 * 
	 * @see org.eclipse.jface.text.contentassist.IContentAssistant#showPossibleCompletions()
	 */
	public String showPossibleCompletions() {
		if (fViewer == null)
			
			return super.showPossibleCompletions();
		
		Point selectedRange= fViewer.getSelectedRange();
		int initalOffset= selectedRange.x;
		int invocationOffset;
		int invocationLength;
		
		if (areMultipleLinesSelected()) {
			try {
				IDocument document= fViewer.getDocument();
				IRegion start= document.getLineInformationOfOffset(initalOffset);
				invocationOffset= start.getOffset();
				IRegion end= document.getLineInformationOfOffset(initalOffset + selectedRange.y);