static double getOverallProgress(DaemonCodeAnalyzerStatus status) { long advancement = 0; long limit = 0; for (ProgressableTextEditorHighlightingPass ps : status.passStati) { advancement += ps.getProgressCount(); limit += ps.getProgressLimit(); } return limit == 0 ? status.errorAnalyzingFinished ? 1 : 0 : advancement * 1.0 / limit; }