@Nonnull
	private Box<ASTInstruction> extracted() {
		Box<ASTInstruction> selected = new Box<>();
		int pos = editor.getCodeArea().getCaretPosition();
		int line = editor.getCodeArea().getCurrentParagraph() + 1;
		for (ASTElement element : astElements) {
			if (element == null)
				continue;
			if (element.range().within(pos)) {
				element.walk(ast -> {
					if (ast instanceof ASTInstruction instruction) {
						Location location = ast.location();
						if (location != null && location.line() == line)
							selected.set(instruction);
						else {
							String identifier = instruction.identifier().content();
							if (("tableswitch".equals(identifier)
									|| "lookupswitch".equals(identifier))
									&& ast.range().within(pos)) {
								selected.set(instruction);
							}
						}
					}
					return !selected.isSet();
				});
			}
		}
		return selected;
	}
Handles updating the {@link ControlFlowLineFactory}.
<p/>
This logic is shoe-horned into here <i>(for now)</i> because
the variable tracking logic is internal to this class only.

@param caretChange
		Caret pos change.
recaf-ui/src/main/java/software/coley/recaf/ui/pane/editing/assembler/ControlFlowLines.java