/******************************************************************************* * Copyright (c) 2012, 2013 Stefan Seelmann and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Stefan Seelmann - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.wikitext.markdown.internal.util; import org.eclipse.mylyn.wikitext.parser.markup.Block; /** * Markup blocks that require additional context in order to decide if they can start with a markup line. * * @author Stefan Seelmann */ public interface ReadAheadBlock extends Cloneable { /** * Indicate if the block can start with the given markup line at the provided offset. The * <code>lookAheadReader</code> can be used to ask for more context. * * @param line * the line of markup to test * @param lineOffset * the offset at which the block should start processing * @param lookAheadReader * the look ahead reader to ask for more context * @return true if the provided markup consists of a valid starting point for the block * @see Block#canStart(String, int) */ boolean canStart(String line, int lineOffset, LookAheadReader lookAheadReader); }