From 06f574a1b2d8d5087b09c59400a5baaec9cbc65a Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 23 Apr 2014 12:32:44 +0400 Subject: [PATCH] readable toString() --- .../util/containers/ConcurrentBitSet.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/platform/util/src/com/intellij/util/containers/ConcurrentBitSet.java b/platform/util/src/com/intellij/util/containers/ConcurrentBitSet.java index cc134cd1be95..d7542a7c4289 100644 --- a/platform/util/src/com/intellij/util/containers/ConcurrentBitSet.java +++ b/platform/util/src/com/intellij/util/containers/ConcurrentBitSet.java @@ -407,13 +407,21 @@ public class ConcurrentBitSet { StringBuilder b = new StringBuilder(); b.append('{'); - int i = nextSetBit(0); - if (i != -1) { - b.append(i); - for (i = nextSetBit(i + 1); i >= 0; i = nextSetBit(i + 1)) { - int endOfRun = nextClearBit(i); + for (int i = nextSetBit(0); i >= 0; i = nextSetBit(i + 1)) { + int endOfRun = nextClearBit(i); + if (endOfRun - i > 1) { + if (b.length() != 1) { + b.append(", "); + } + b.append(i).append("...").append(endOfRun-1); + i = endOfRun; + } + else { do { - b.append(", ").append(i); + if (b.length() != 1) { + b.append(", "); + } + b.append(i); } while (++i < endOfRun); }