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
*/
	public LinkedUIControl(LinkedEnvironment environment, ITextViewer[] viewers) {
		LinkedUITarget[] array= new LinkedUITarget[viewers.length];
		for (int i= 0; i < array.length; i++) {
			array[i]= new EmptyTarget(viewers[i]);
		}
		constructor(environment, array);
	}
	/**
	 * Conveniance ctor for one target.
	 * 
	 * @param environment the linked position model
	 * @param target the target upon which the linked ui
	 *        should act
	 */
	public LinkedUIControl(LinkedEnvironment environment, LinkedUITarget target) {
		constructor(environment, new LinkedUITarget[]{target});
	}
	/**
	 * This does the actual constructor work.
	 * 
	 * @param environment the linked position model
	 * @param targets the non-empty array of targets upon which the linked ui
	 *        should act
	 */
	private void constructor(LinkedEnvironment environment, LinkedUITarget[] targets) {
		Assert.isNotNull(environment);
		Assert.isNotNull(targets);
		Assert.isTrue(targets.length > 0);
		Assert.isTrue(environment.getTabStopSequence().size() > 0);