package com.intellij.javascript.karma.filter; import com.intellij.execution.filters.PatternBasedFileHyperlinkFilter; import com.intellij.execution.filters.PatternBasedFileHyperlinkRawDataFinder; import com.intellij.execution.filters.PatternHyperlinkFormat; import com.intellij.execution.filters.PatternHyperlinkPart; import com.intellij.javascript.karma.KarmaConfig; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; import java.util.regex.Pattern; public class KarmaBrowserErrorFilter extends PatternBasedFileHyperlinkFilter { public static final PatternBasedFileHyperlinkRawDataFinder FINDER = new PatternBasedFileHyperlinkRawDataFinder( new PatternHyperlinkFormat[] { //at http://localhost:9876/base/spec/personSpec.js?1368878723000:22 new PatternHyperlinkFormat(Pattern.compile("^\\s*at (http://[^:]+:\\d+/base/([^?]+).*(:\\d+))$"), false, false, PatternHyperlinkPart.HYPERLINK, PatternHyperlinkPart.PATH, PatternHyperlinkPart.LINE), //at http://localhost:9876/absolute/home/segrey/WebstormProjects/karma-chai-sample/test/test.js?1378466989000:1 new PatternHyperlinkFormat(Pattern.compile("^\\s*at (http://[^:]+:\\d+/absolute([^?]+).*(:\\d+))$"), false, false, PatternHyperlinkPart.HYPERLINK, PatternHyperlinkPart.PATH, PatternHyperlinkPart.LINE), } ); public KarmaBrowserErrorFilter(@NotNull Project project, @NotNull KarmaConfig config) { super(project, config.getBasePath(), FINDER); } }