Bug 52361 [templates] linked mode not exited / annotations not redrawn when inserting anonymous completion
M7 0. Auto-closed parenthesis on 1. Insert this code: import java.lang.Runnable; void m() { method(<caret> } -> closing parenthesis gets inserted -> linked mode entered 2. type "new Runnable(" -> nested linked mode is entered for second parenthesis, also autoclosed 3. use code completion to complete the anonymous type -> you end up with this code: void m() { method(new Runnable() { public void run() { } }) } -> Linked mode is still drawn 4. Press <Tab> or <Enter> -> linked mode is not exited -> annotations keep being drawn The only way to get away with the annotations is to open a new parenthesis somewhere outside the initial code.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/link/LinkedUIControl.java
}
	private String getUniqueKey() {
		return "linked.annotationmodelkey."+toString(); 
	}
	private void disconnect() {
		Assert.isNotNull(fCurrentTarget);
		ITextViewer viewer= fCurrentTarget.getViewer();
		Assert.isNotNull(viewer);
		fAssistant.uninstall();
		StyledText text= fCurrentTarget.fWidget;
		fCurrentTarget.fWidget= null;
		
		Shell shell= fCurrentTarget.fShell;
		fCurrentTarget.fShell= null;
		
		if (shell != null && !shell.isDisposed())
			shell.removeShellListener(fCloser);
		
		if (text != null && !text.isDisposed()) {
			text.removeModifyListener(fCaretListener);
			text.removeVerifyListener(fCaretListener);
		}
		
		
		fCurrentTarget.fKeyListener.setEnabled(false);
		
		((IPostSelectionProvider) viewer).removePostSelectionChangedListener(fSelectionListener);
		redraw();
	}
	void leave(int flags) {