blob: e9337455e178777668f9ab8a9f99461f181da510 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2016 IBM Corporation 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
*
*******************************************************************************/
package org.eclipse.dltk.ruby.ui.tests.internal;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.eclipse.core.runtime.Path;
import org.eclipse.dltk.ruby.internal.ui.text.IRubyPartitions;
import org.eclipse.dltk.ruby.internal.ui.text.RubyPartitionScanner;
import org.eclipse.dltk.ui.text.util.IRangeFilter;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.rules.FastPartitioner;
public class TestUtils {
public static String getData(String filename) throws IOException {
File file = RubyUITestsPlugin.getDefault().getFileInPlugin(new Path(filename));
InputStream stream = new FileInputStream(file.getAbsolutePath());
int length = stream.available();
byte[] data = new byte[length];
stream.read(data);
stream.close();
return new String(data, StandardCharsets.UTF_8);
}
/**
* Installs a partitioner with <code>document</code>.
*
* @param document
* the document
*/
public static void installStuff(Document document) {
String[] types = new String[] { IRubyPartitions.RUBY_STRING, IRubyPartitions.RUBY_PERCENT_STRING,
IRubyPartitions.RUBY_COMMENT, IDocument.DEFAULT_CONTENT_TYPE };
FastPartitioner partitioner = new FastPartitioner(
new RubyPartitionScanner(), types);
partitioner.connect(document);
document.setDocumentPartitioner(IRubyPartitions.RUBY_PARTITIONING,
partitioner);
}
public static final IRangeFilter ALL_RANGES_ALLOWED = new IRangeFilter() {
@Override
public boolean allowRange(IDocument document, int start, int length) throws BadLocationException {
return true;
}
};
}