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
Assert.isTrue(false);
		} catch (BadPositionCategoryException e) {
			
			Assert.isTrue(false);
		}
	}
	private void updateSelection(ModifyEvent event) {
		
		
		if (!fIsActive || event.getSource() != fCurrentTarget.fWidget)
			return;
		if (!fCaretPosition.isDeleted())
			fCurrentTarget.getViewer().setSelectedRange(fCaretPosition.getOffset(), 0);
		fCaretPosition.isDeleted= true;
	}
	private String getCategory() {
		return toString();
	}
	/**
	 * Sets the context info property. If set to <code>true</code>, context
	 * info will be invoked on the current target's viewer whenever a position
	 * is switched.
	 * 
	 * @param doContextInfo The doContextInfo to set.
	 */
	public void setDoContextInfo(boolean doContextInfo) {
		fDoContextInfo= doContextInfo;
	}
}