Result (@NotNull String line, int entireLength) { if (!lightCheck(line)) return null; Matcher matcher = myPattern.matcher(line); if (!matcher.matches()) return null; String path = matcher.group(1); VirtualFile file = LocalFileSystem.getInstance().findFileByPath(path); if (file == null) { if (SystemInfo.isWindows && path.matches("/[A-Z]:/.+")) { file = LocalFileSystem.getInstance().findFileByPath(path.substring(1)); } if (file == null) return null; } int lineNumber = Integer.parseInt(matcher.group(2)) - 1; if (lineNumber < 0) { lineNumber = -1; } TextAttributes attr = createCompilationErrorAttr(); return new Result(entireLength - line.length() + matcher.start(1), entireLength - line.length() + matcher.end(1), new OpenFileHyperlinkInfo(myProject, file, lineNumber), attr); }