package jetbrains.mps.ide.actions;
/*Generated by MPS */
import jetbrains.mps.ide.platform.actions.MPSStackTraceFilter;
import com.intellij.openapi.project.Project;
import com.intellij.execution.filters.Filter;
import com.intellij.openapi.vfs.VirtualFile;
import jetbrains.mps.ide.common.FileOpenUtil;
import com.intellij.execution.filters.HyperlinkInfo;
public class StandaloneMPSStackTraceFilter extends MPSStackTraceFilter {
public StandaloneMPSStackTraceFilter(Project project) {
super(project);
}
@Override
protected Filter.Result detectTarget(int hlStart, int hlEnd, final String unitName, final String fileName, final int lineNumber) {
Filter.Result res = super.detectTarget(hlStart, hlEnd, unitName, fileName, lineNumber);
if (res != null) {
return res;
}
final VirtualFile virtualFile = FileOpenUtil.findFile(myProject, unitName, fileName);
if (virtualFile == null) {
return null;
}
return new Filter.Result(hlStart, hlEnd, new HyperlinkInfo() {
@Override
public void navigate(Project project) {
FileOpenUtil.openFile(project, virtualFile, lineNumber);
}
});
}
}