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
/**
	 * Constant indicating that this UI should never cycle from the last
	 * position to the first and vice versa.
	 */
	public static final int CYCLE_NEVER= 0;
	/**
	 * Constant indicating that this UI should always cycle from the last
	 * position to the first and vice versa.
	 */
	public static final int CYCLE_ALWAYS= 1;
	/**
	 * Constant indicating that this UI should cycle from the last position to
	 * the first and vice versa if its environment is not nested.
	 */
	public static final int CYCLE_WHEN_NO_PARENT= 2;
	/**
	 * Listens on a styled text for events before (Verify) and after (Modify)
	 * modifications. Used to update the caret after linked changes.
	 */
	private final class CaretListener implements ModifyListener, VerifyListener {