Example #1
0
 public void ParseDir()
 {
     if (!Directory.Exists(Dir))
     {
         status = RefStatus.Missing;
     }
     else
     {
         FileNames = Directory.GetFiles(Dir, "*.jpg", SearchOption.TopDirectoryOnly);
         count     = FileNames.Length;
         status    = (count == 0) ? RefStatus.Empty : RefStatus.Available;
     }
 }
Example #2
0
 public void GetValidMappedStateValues()
 {
     // Setup
     // ...
     // Act
     // ...
     // Verify
     Assert.AreEqual(RefStatus.State.FailedOrRejected, RefStatus.GetMappedState('!'));
     Assert.AreEqual(RefStatus.State.ForcedUpdated, RefStatus.GetMappedState('+'));
     Assert.AreEqual(RefStatus.State.New, RefStatus.GetMappedState('*'));
     Assert.AreEqual(RefStatus.State.Pruned, RefStatus.GetMappedState('-'));
     Assert.AreEqual(RefStatus.State.TagUpdated, RefStatus.GetMappedState('t'));
     Assert.AreEqual(RefStatus.State.Unknown, RefStatus.GetMappedState('\0'));
     Assert.AreEqual(RefStatus.State.Updated, RefStatus.GetMappedState(' '));
     Assert.AreEqual(RefStatus.State.UpToDate, RefStatus.GetMappedState('='));
 } // end of function - GetValidMappedStateValues
Example #3
0
        public void GettersSettersOhMy()
        {
            // Setup
            var from    = "From-test";
            var to      = "to-test";
            var reason  = "reason for the test";
            var summary = "summary of the test";

            // Act
            var refStatus = new RefStatus()
            {
                Flag    = RefStatus.State.New,
                From    = from,
                Reason  = reason,
                Summary = summary,
                To      = to
            };

            // Verify
            Assert.AreEqual(from, refStatus.From);
            Assert.AreEqual(to, refStatus.To);
            Assert.AreEqual(reason, refStatus.Reason);
            Assert.AreEqual(summary, refStatus.Summary);
        } // end of function - GettersSettersOhMy
Example #4
0
 public void ThrowsForInvalidStateFlag()
 {
     // Setup
     // Act/Verify
     var state = RefStatus.GetMappedState('m');
 } // end of function - ThrowsForInvalidStateFlag
Example #5
0
        void ProcessReferenceList(out bool isComplete)
        {
            isComplete = false;
            var db         = DBManager.Instance().GetDB();
            var objectList = m_searchResultList as IVsObjectList2;
            var dte        = Package.GetGlobalService(typeof(DTE)) as DTE2;

            if (objectList == null || dte == null)
            {
                return;
            }

            try
            {
                uint pCount;
                bool isProcessing = false;
                List <DoxygenDB.Entity> targetEntityList = new List <DoxygenDB.Entity>();

                if (objectList.GetItemCount(out pCount) != VSConstants.S_OK)
                {
                    isProcessing = true;
                    return;
                }

                var    beginTime = DateTime.Now;
                ushort img;
                bool   isDoing;
                string itemText;
                bool   longNameMatched = false;
                for (uint i = 0; i < pCount; i++)
                {
                    GetListItemInfo(objectList, i, out itemText, out img, out isDoing);
                    if (itemText.Contains(m_srcLongName))
                    {
                        longNameMatched = true;
                    }
                }

                for (uint i = 0; i < pCount; i++)
                {
                    GetListItemInfo(objectList, i, out itemText, out img, out isDoing);
                    Logger.Debug("+++++++" + itemText);
                    if (longNameMatched && !itemText.Contains(m_srcLongName))
                    {
                        continue;
                    }

                    isProcessing |= isDoing;
                    if (isDoing)
                    {
                        continue;
                    }
                    if (m_itemDict.ContainsKey(itemText))
                    {
                        continue;
                    }

                    IVsObjectList2 subList;
                    bool           isItemProcessing = false;
                    uint           flags;
                    objectList.GetFlags(out flags);                     // _VSTREEFLAGS
                    uint counter, changes;
                    objectList.UpdateCounter(out counter, out changes); // _VSTREEITEMCHANGESMASK
                    uint cap;
                    objectList.GetCapabilities2(out cap);               // _LIB_LISTCAPABILITIES
                    if (objectList.GetList2(i, (uint)_LIB_LISTTYPE.LLT_REFERENCES, (uint)(_LIB_LISTFLAGS.LLF_NONE), new VSOBSEARCHCRITERIA2[0], out subList) == VSConstants.S_OK &&
                        subList != null)
                    {
                        // Switch to using our "safe" PInvoke interface for IVsObjectList2 to avoid potential memory management issues
                        // when receiving strings as out params.
                        uint list2ItemCount = 0;
                        if (subList.GetItemCount(out list2ItemCount) != VSConstants.S_OK)
                        {
                            isItemProcessing = true;
                            continue;
                        }
                        //Logger.Debug("    sublist: " + i + " count: " + list2ItemCount);
                        for (uint j = 0; j < list2ItemCount; j++)
                        {
                            string text;
                            GetListItemInfo(subList, j, out text, out img, out isDoing);
                            isItemProcessing |= isDoing;
                            if (isDoing)
                            {
                                continue;
                            }

                            // Ignore several reference types
                            // 12: comment
                            bool isIgnored = (img == 12 || img == 17);
                            Logger.Debug("Type:" + img + ": " + !isIgnored + ": " + text);
                            if (isIgnored)
                            {
                                continue;
                            }

                            if (!m_referenceDict.ContainsKey(text))
                            {
                                m_referenceDict[text] = new RefStatus(img);
                            }
                            var refItem = m_referenceDict[text];
                            if (refItem.m_isCheck)
                            {
                                continue;
                            }

                            //int isOK;
                            //int res = subList.CanGoToSource(j, VSOBJGOTOSRCTYPE.GS_REFERENCE, out isOK);
                            //if (res != VSConstants.S_OK || isOK == 0)
                            //{
                            //    isItemProcessing = true;
                            //    continue;
                            //}
                            //if (subList.GoToSource(j, VSOBJGOTOSRCTYPE.GS_REFERENCE) != VSConstants.S_OK)
                            //{
                            //    Logger.Debug("Go to source failed. " + text);
                            //    isItemProcessing = true;
                            //    continue;
                            //}
                            //refItem.m_isCheck = ConnectTargetToSource();

                            var duration = (DateTime.Now - beginTime).TotalMilliseconds;
                            //if (duration > 500)
                            //{
                            //    isItemProcessing = true;
                            //    return;
                            //}
                        }
                    }
                    if (!isItemProcessing)
                    {
                        m_itemDict[itemText] = "";
                    }
                    isProcessing |= isItemProcessing;
                }

                if (!isProcessing)
                {
                    isComplete = true;  // No more item
                }
                Logger.Debug("=========================================");
            }
            catch (InvalidCastException)
            {
                // fixed in VS2010
                // VSBug : trying to cast IVsObjectList2 to IVsObjectList, shows 'Find Results' pane, but pplist is null
            }
        }