public static uint GetCount(this IVsEnumHiddenRegions enumHiddenRegions)
        {
            uint count;

            enumHiddenRegions.GetCount(out count);
            return(count);
        }
        public static IList <TextSpan> GetHiddenRegions(this IVsEnumHiddenRegions enumHiddenRegions)
        {
            IList <TextSpan> regions = null;

            uint count = GetCount(enumHiddenRegions);

            if (count > 0)
            {
                regions = new List <TextSpan>((int)count);

                var hiddenRegions = new IVsHiddenRegion[count];

                enumHiddenRegions.Reset();
                enumHiddenRegions.Next(count, hiddenRegions, out count);

                for (int i = 0; i < count; i++)
                {
                    IVsHiddenRegion hiddenRegion = hiddenRegions[i];

                    uint state = 0;
                    hiddenRegion.GetState(out state);
                    if ((state & (uint)HIDDEN_REGION_STATE.hrsExpanded) == 0)
                    {
                        TextSpan[] pSpan = new TextSpan[1];
                        hiddenRegion.GetSpan(pSpan);
                        regions.Add(pSpan[0]);
                    }
                }
            }

            return(regions);
        }
예제 #3
0
        /// <summary>
        /// 得到enumHiddenRegions枚举中的region个数
        /// </summary>
        /// <param name="enumHiddenRegions"></param>
        /// <returns></returns>
        public uint GetHiddenRegionCount(IVsEnumHiddenRegions enumHiddenRegions)
        {
            uint count;

            enumHiddenRegions.GetCount(out count);
            return(count);
        }
예제 #4
0
        /// <summary>
        /// 得到enumHiddenRegions中的所有region的span信息
        /// </summary>
        /// <param name="enumHiddenRegions"></param>
        /// <returns></returns>
        public IList<TextSpan> GetHiddenRegions(IVsEnumHiddenRegions enumHiddenRegions)
        {
            IList<TextSpan> regions = null;

            uint count = GetHiddenRegionCount(enumHiddenRegions);

            if (count > 0)
            {
                regions = new List<TextSpan>((int)count);

                var hiddenRegions = new IVsHiddenRegion[count];

                enumHiddenRegions.Reset();
                enumHiddenRegions.Next(count, hiddenRegions, out count);

                for (int i = 0; i < count; i++)
                {
                    IVsHiddenRegion hregion = hiddenRegions[i];

                    uint state = 0;
                    hregion.GetState(out state);
                    if ((state & (uint)HIDDEN_REGION_STATE.hrsExpanded) == 0)
                    {
                        TextSpan[] pSpan = new TextSpan[1];
                        hregion.GetSpan(pSpan);
                        regions.Add(pSpan[0]);
                    }
                }
            }

            return regions;
        }
예제 #5
0
 /// <summary>
 /// 得到enumHiddenRegions枚举中的region个数
 /// </summary>
 /// <param name="enumHiddenRegions"></param>
 /// <returns></returns>
 public uint GetHiddenRegionCount(IVsEnumHiddenRegions enumHiddenRegions)
 {
     uint count;
     enumHiddenRegions.GetCount(out count);
     return count;
 }