示例#1
0
        static public void GeneratorFromSolution()
        {
            IEnumerable <string> files = Common.Instance.SolutionWatcher.Files.Select(file => file.Path);

            EnvDTE.StatusBar  sbar           = Common.Instance.DTE2.StatusBar;
            Action <int, int> progressAction = (current, total) =>
            {
                if ((current % 5) == 0)
                {
                    sbar.Progress(true, "QuickNavigation Scan solution " + current + "/" + total, current, total);
                }
            };

            sbar.Progress(true, "QuickNavigation Scan solution ...", 0, 0);
            GeneratorFromFiles(files, progressAction).ToArray();
            sbar.Progress(false);
        }
示例#2
0
        void RefreshSymbolDatabase()
        {
            if (null == mFiles || !mFiles.Any())
            {
                return;
            }

            ReadSymbolDatabase();

            List <string> lToGenerate = new List <string>();

            foreach (FileData fileData in mFiles.Values)
            {
                if (fileData.LastSymbolsGeneration == DateTime.MinValue ||
                    fileData.LastSymbolsGeneration < System.IO.File.GetLastWriteTime(fileData.Path)
                    )
                {
                    lToGenerate.Add(fileData.Path);
                }
            }

            EnvDTE.StatusBar  sbar           = Common.Instance.DTE2.StatusBar;
            Action <int, int> progressAction = (current, total) =>
            {
                if ((current % 5) == 0)
                {
                    sbar.Progress(true, "QuickNavigation Scan solution " + current + "/" + total, current, total);
                }
            };
            IEnumerable <SymbolData> symbols = CTagsGenerator.GeneratorFromFiles(lToGenerate, progressAction);


            sbar.Progress(false, "QuickNavigation Analysing solution ...", 0, 0);

            //Associate symbols to DileData
            symbols
            .AsParallel()
            .GroupBy(symbol => symbol.AssociatedFile)
            .ForAll(pair => pair.Key.SetSymbols(pair));

            sbar.Progress(false);

            WriteSymbolDatabase();
        }