void (Object sessionId, CompilerMessage compilerMessage) { MessageEvent.Kind kind = convertCategory(compilerMessage.getCategory()); VirtualFile virtualFile = compilerMessage.getVirtualFile(); Navigatable navigatable = compilerMessage.getNavigatable(); String title = getMessageTitle(compilerMessage); BuildIssue issue = buildIssue(compilerMessage.getModuleNames(), title, compilerMessage.getMessage(), kind, virtualFile, navigatable); if (issue != null) { myBuildProgress.buildIssue(issue, kind); } else if (virtualFile != null) { File file = virtualToIoFile(virtualFile); FilePosition filePosition; if (navigatable instanceof OpenFileDescriptor fileDescriptor) { int column = fileDescriptor.getColumn(); int line = fileDescriptor.getLine(); filePosition = new FilePosition(file, line, column); } else { filePosition = new FilePosition(file, 0, 0); } myBuildProgress.fileMessage(title, compilerMessage.getMessage(), kind, filePosition); } else { if (kind == MessageEvent.Kind.ERROR || kind == MessageEvent.Kind.WARNING) { myBuildProgress.message(title, compilerMessage.getMessage(), kind, navigatable); } myConsolePrinter.print(compilerMessage.getMessage(), kind); } }