@Override
    public String toString() {
      StringBuilder s = new StringBuilder("DS: finished=" + errorAnalyzingFinished
                                          + "; pass statuses: " + passes.size() + "; ");
      for (ProgressableTextEditorHighlightingPass passStatus : passes) {
        s.append(
          String.format("(%s %2.0f%% %b)", passStatus.getPresentableName(), passStatus.getProgress() * 100, passStatus.isFinished()));
      }
      s.append("; error counts: ").append(errorCounts.length).append(": ").append(new IntArrayList(errorCounts));
      if (reasonWhyDisabled != null) {
        s.append("; reasonWhyDisabled=").append(reasonWhyDisabled);
      }
      if (reasonWhySuspended != null) {
        s.append("; reasonWhySuspended").append(reasonWhySuspended);
      }
      return s.toString();
    }
@Override
    public String toString()