package net.sf.eclipsefp.haskell.ui.internal.editors.haskell.text;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.rules.IPartitionTokenScanner;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.Token;
/**
* <p>A degenerate partition scanner that always return the default content type, since we do not do any lexing of Haskell ourselves</p>
*
* @author JP Moresmau
*/
public class DefaultPartitionScanner implements IPartitionTokenScanner {
private int offset;
private int length;
private boolean has=true;
@Override
public void setPartialRange( final IDocument document, final int offset, final int length,
final String contentType, final int partitionOffset ) {
setRange(document,offset,length);
}
@Override
public int getTokenLength() {
return length;
}
@Override
public int getTokenOffset() {
return offset;
}
@Override
public IToken nextToken() {
if (has){
has=false;
return new Token(IDocument.DEFAULT_CONTENT_TYPE);
}
return Token.EOF;
}
@Override
public void setRange( final IDocument document, final int offset, final int length ) {
this.offset=offset;
this.length=length;
}
}