コード例 #1
0
ファイル: ProjectAnalysisUtils.cs プロジェクト: Willbebest/so
 private static void EraseProgressLogTrace(int cursorTop)
 {
     Console.CursorTop  = cursorTop;
     Console.CursorLeft = 0;
     ConsoleUtils.ShowNLinesOnConsole(4, ConsoleColor.Black);
     Console.CursorTop  = cursorTop;
     Console.CursorLeft = 0;
 }
コード例 #2
0
            internal void Display(ConsoleColor backColor)
            {
                Console.CursorTop  = m_CursorTop;
                Console.CursorLeft = 0;
                ConsoleUtils.ShowNLinesOnConsole(m_NbLines, backColor);

                Console.CursorTop       = m_CursorTop;
                Console.CursorLeft      = 0;
                Console.BackgroundColor = backColor;
                m_DisplayProc(m_DisplayInfo);

                // Reset cursor to beginning of the row displayed to avoid cursor trace!
                Console.CursorTop  = m_CursorTop;
                Console.CursorLeft = 0;
            }
コード例 #3
0
        private static UpDownEnterAllNextQuit ConsoleAskUpDownEnterAllNextQuit(bool showMenu, bool showEnd, int cursorTop)
        {
            if (showMenu)
            {
                Debug.Assert(Console.CursorTop == cursorTop);
                Console.WriteLine();
                Console.CursorLeft      = 0;
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Open source decl? Up/Down/Enter -- " + (showEnd ? "" : "Show Next? n  -- Show All? a -- ") + "Stop? any key");
                Console.ForegroundColor = ConsoleColor.White;
            }

            var consoleKeyInfo = Console.ReadKey();

            var keyChar = Char.ToLower(consoleKeyInfo.KeyChar);

            if (!showEnd && (keyChar == 'n' || keyChar == 'a'))
            {
                // Erase the menu!
                Console.CursorTop = cursorTop;
                ConsoleUtils.ShowNLinesOnConsole(4, ConsoleColor.Black);
                Console.CursorTop = cursorTop;
                // HACK: need to erase a second time, sometime erasing just once is not enought??
                ConsoleUtils.ShowNLinesOnConsole(4, ConsoleColor.Black);
                Console.CursorTop = cursorTop;

                return(keyChar == 'n' ? UpDownEnterAllNextQuit.Next : UpDownEnterAllNextQuit.All);
            }

            switch (consoleKeyInfo.Key)
            {
            case ConsoleKey.DownArrow:
                return(UpDownEnterAllNextQuit.Down);

            case ConsoleKey.UpArrow:
                return(UpDownEnterAllNextQuit.Up);

            case ConsoleKey.Enter:
                return(UpDownEnterAllNextQuit.Enter);
            }

            return(UpDownEnterAllNextQuit.Quit);
        }
コード例 #4
0
ファイル: ProjectAnalysisUtils.cs プロジェクト: Willbebest/so
        internal static ICompareContext GetProjectsToCompareAndAnalyzeThem()
        {
            var analysisManager = new NDependServicesProvider().AnalysisManager;

            var top = Console.CursorTop;

            Console.CursorLeft = 0;

            IProject           projectOlder, projectNewer;
            IAnalysisResultRef analysisResultRefOlder, analysisResultRefNewer;

            while (true)
            {
                Console.WriteLine("Please choose older and newer versions of the code base...");

                bool dialogOk = analysisManager.ShowDialogBuildComparison(ConsoleUtils.MainWindowHandle, out projectOlder, out analysisResultRefOlder, out projectNewer, out analysisResultRefNewer);

                var nbLinesToErase = Console.CursorTop - top;
                Console.CursorTop  = top;
                Console.CursorLeft = 0;
                ConsoleUtils.ShowNLinesOnConsole(nbLinesToErase, ConsoleColor.Black);
                Console.CursorTop  = top;
                Console.CursorLeft = 0;
                if (dialogOk)
                {
                    break;
                }
            }

            //
            // Load or analyze
            //
            IAnalysisResult analysisResultOlder, analysisResultNewer;

            if (analysisResultRefOlder == null)
            {
                Debug.Assert(projectOlder != null);
                Console.WriteLine("Analyze older version of projects");
                analysisResultOlder = RunAnalysisShowProgressOnConsole(projectOlder);
            }
            else
            {
                Console.WriteLine("Load older analysis result");
                analysisResultOlder = LoadAnalysisShowProgressOnConsole(analysisResultRefOlder);
            }

            if (analysisResultRefNewer == null)
            {
                Debug.Assert(projectNewer != null);
                Console.WriteLine("Analyze newer version of projects");
                analysisResultNewer = RunAnalysisShowProgressOnConsole(projectNewer);
            }
            else
            {
                Console.WriteLine("Load newer analysis result");
                analysisResultNewer = LoadAnalysisShowProgressOnConsole(analysisResultRefNewer);
            }

            //
            // Re-erase
            //
            var nbLinesToErase2 = Console.CursorTop - top;

            Console.CursorTop  = top;
            Console.CursorLeft = 0;
            ConsoleUtils.ShowNLinesOnConsole(nbLinesToErase2, ConsoleColor.Black);
            Console.CursorTop  = top;
            Console.CursorLeft = 0;


            //
            // Show compare description
            //
            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.Write("Comparing: ");
            Console.ForegroundColor = ConsoleColor.White;
            ShowAnalysisResultRefDescription(analysisResultOlder.AnalysisResultRef);
            Console.WriteLine();

            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.Write("     with: ");
            Console.ForegroundColor = ConsoleColor.White;
            ShowAnalysisResultRefDescription(analysisResultNewer.AnalysisResultRef);

            return(analysisResultNewer.CodeBase.CreateCompareContextWithOlder(analysisResultOlder.CodeBase));
        }
コード例 #5
0
ファイル: ProjectAnalysisUtils.cs プロジェクト: Willbebest/so
        internal static IProject ChooseProject()
        {
            var projectManager      = new NDependServicesProvider().ProjectManager;
            var visualStudioManager = new NDependServicesProvider().VisualStudioManager;

            var top = Console.CursorTop;

            Console.CursorLeft = 0;
            while (true)
            {
                Console.WriteLine("Please choose...");
                Console.WriteLine("  a) an existing CppDepend project");
                Console.WriteLine("  b) one or several Visual Studio solutions to analyze");
                Console.WriteLine("  c) one or several C/C++ projects to analyze");
                Console.WriteLine("");
                var c = Char.ToLower(Console.ReadKey().KeyChar);
                Console.WriteLine();
                IProject project = null;
                switch (c)
                {
                case 'a':
                    if (!projectManager.ShowDialogChooseAnExistingProject(ConsoleUtils.MainWindowHandle, out project))
                    {
                        break;
                    }
                    break;

                case 'b': {
                    ICollection <IAbsoluteFilePath> solutions;
                    if (!visualStudioManager.ShowDialogSelectVisualStudioSolutionsOrProjects(ConsoleUtils.MainWindowHandle, out solutions))
                    {
                        break;
                    }
                    var projects = new List <IAbsoluteFilePath>();
                    foreach (var solution in solutions)
                    {
                        projects.Add(solution);
                    }
                    project = projectManager.CreateTemporaryProject(projects, TemporaryProjectMode.Temporary);
                    break;
                }

                default: {
                    ICollection <IAbsoluteFilePath> projects;
                    if (!projectManager.ShowDialogSelectProjects(ConsoleUtils.MainWindowHandle, out projects))
                    {
                        break;
                    }
                    project = projectManager.CreateTemporaryProject(projects, TemporaryProjectMode.Temporary);
                    break;
                }
                }
                var nbLinesToErase = Console.CursorTop - top;
                Console.CursorTop  = top;
                Console.CursorLeft = 0;
                ConsoleUtils.ShowNLinesOnConsole(nbLinesToErase, ConsoleColor.Black);
                Console.CursorTop  = top;
                Console.CursorLeft = 0;
                if (project == null)
                {
                    continue;
                }


                Console.ForegroundColor = ConsoleColor.DarkGray;
                Console.Write("Project selected: ");
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine(project.Properties.Name);
                Console.WriteLine();
                return(project);
            }
        }