void (UUID sessionId, CmdlineRemoteProto.Message.BuilderMessage.CompileMessage message) { final CmdlineRemoteProto.Message.BuilderMessage.CompileMessage.Kind kind = message.getKind(); //System.out.println(compilerMessage.getText()); //noinspection HardCodedStringLiteral final String messageText = message.getText(); if (kind == CmdlineRemoteProto.Message.BuilderMessage.CompileMessage.Kind.PROGRESS) { final ProgressIndicator indicator = compileContext.getProgressIndicator(); indicator.setText(messageText); if (message.hasDone()) { indicator.setFraction(message.getDone()); } } else { final CompilerMessageCategory category = convertToCategory(kind, CompilerMessageCategory.INFORMATION); String sourceFilePath = message.hasSourceFilePath() ? message.getSourceFilePath() : null; if (sourceFilePath != null) { sourceFilePath = FileUtil.toSystemIndependentName(sourceFilePath); } final long line = message.hasLine() ? message.getLine() : -1; final long column = message.hasColumn() ? message.getColumn() : -1; final String srcUrl = sourceFilePath != null ? VirtualFileManager.constructUrl(LocalFileSystem.PROTOCOL, sourceFilePath) : null; compileContext .addMessage(category, messageText, srcUrl, (int)line, (int)column, null, message.getModuleNamesList()); if (compileContext.shouldUpdateProblemsView() && kind == CmdlineRemoteProto.Message.BuilderMessage.CompileMessage.Kind.JPS_INFO) { // treat JPS_INFO messages in a special way: add them as info messages to the problems view final Project project = compileContext.getProject(); ProblemsView.getInstance(project).addMessage( new CompilerMessageImpl(project, category, messageText), compileContext.getSessionId() ); } } }