package org.rascalmpl.eclipse.nature; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IProgressMonitor; import org.rascalmpl.eclipse.Activator; import org.rascalmpl.eclipse.IRascalResources; import org.rascalmpl.eclipse.preferences.RascalPreferences; import org.rascalmpl.eclipse.util.RascalEclipseManifest; import io.usethesource.impulse.builder.BuilderBase; import io.usethesource.impulse.runtime.PluginBase; public class Builder extends BuilderBase { @Override protected PluginBase getPlugin() { return Activator.getInstance(); } @Override protected boolean isSourceFile(IFile file) { if (file == null || file.getFileExtension() == null) { return false; } if (file.getFileExtension().equals(IRascalResources.RASCAL_EXT)) { for (String root : new RascalEclipseManifest().getSourceRoots(file.getProject())) { if (file.getProjectRelativePath().segment(0).equals(root)) { return true; } } return file.getProjectRelativePath().segment(0).equals(IRascalResources.RASCAL_SRC); } return false; } @Override protected boolean isNonRootSourceFile(IFile file) { return false; } @Override protected boolean isOutputFolder(IResource resource) { return false; } @Override protected void compile(IFile file, IProgressMonitor monitor) { if (RascalPreferences.isRascalCompilerEnabled()) { System.err.println("should run the static checker on " + file); } } @Override protected void collectDependencies(IFile file) { } @Override protected String getErrorMarkerID() { return IRascalResources.ID_RASCAL_MARKER; } @Override protected String getWarningMarkerID() { return IRascalResources.ID_RASCAL_MARKER; } @Override protected String getInfoMarkerID() { return IRascalResources.ID_RASCAL_MARKER; } }