public static void Release(ITextBuffer textBuffer, TextSnapshotTeXCommentBlocks blocks)
        {
            lock (Cache)
            {
                if (!Cache.TryGetValue(textBuffer, out CachedItem item) || item.Blocks != blocks)
                {
                    throw new InvalidOperationException("Releasing of invalid blocks.");
                }

                if (--item.Counter == 0)
                {
                    Cache.Remove(textBuffer);
                }
            }
        }
 public CachedItem(TextSnapshotTeXCommentBlocks blocks)
 {
     Blocks  = blocks;
     Counter = 1;
 }