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
else
				return null;
		else
			return new Region(fFramePosition.getOffset(), fFramePosition.getLength());
	}
	private void rememberSelection(VerifyEvent event) {
		
		if (event.getSource() != fCurrentTarget.fWidget)
			return;
		Point selection= fCurrentTarget.getViewer().getSelectedRange();
		fCaretPosition.offset= selection.x + selection.y;
		fCaretPosition.length= 0;
		fCaretPosition.isDeleted= false;
		try {
			IDocument document= fCurrentTarget.getViewer().getDocument();
			boolean installCat= true;
			String[] cats= document.getPositionCategories();
			for (int i= 0; i < cats.length; i++) {
				if (getCategory().equals(cats[i]))
					installCat= false;
			}
			if (installCat) {
				document.addPositionCategory(getCategory());
				document.addPositionUpdater(fPositionUpdater);
			}
			if (document.getPositions(getCategory()).length != 0)
				document.removePosition(getCategory(), fCaretPosition);
			document.addPosition(getCategory(), fCaretPosition);
		} catch (BadLocationException e) {