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/preferences/EditTemplateDialog.java
updateButtons();
	}	
	private static GridData getButtonGridData(Button button) {
		GridData data= new GridData(GridData.FILL_HORIZONTAL);
		data.heightHint= SWTUtil.getButtonHeigthHint(button);
	
		return data;
	}
	private static Label createLabel(Composite parent, String name) {
		Label label= new Label(parent, SWT.NULL);
		label.setText(name);
		label.setLayoutData(new GridData());
		return label;
	}
	private static Text createText(Composite parent) {
		Text text= new Text(parent, SWT.BORDER);
		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		
		
		return text;
	}
	private SourceViewer createEditor(Composite parent) {
		SourceViewer viewer= new SourceViewer(parent, null, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
		JavaTextTools tools= JavaPlugin.getDefault().getJavaTextTools();
		IDocument document= new Document(fTemplate.getPattern());
		IDocumentPartitioner partitioner= tools.createDocumentPartitioner();
		document.setDocumentPartitioner(partitioner);
		partitioner.connect(document);		
		viewer.configure(new SimpleJavaSourceViewerConfiguration(tools, null, fProcessor));
		viewer.setEditable(true);
		viewer.setDocument(document);