Пример #1
0
        /// <summary>
        /// Gathers the list of files to analyze and kicks off the worker thread.
        /// </summary>
        /// <param name="full">True if a full analyze should be performed.</param>
        /// <param name="type">Type of files that should be analyzed.</param>
        internal void Analyze(bool full, AnalysisType type)
        {
            Param.Ignore(full, type);
            StyleCopTrace.In(full, type);

            // Save any documents that have been changed.
            if (this.SaveOpenDocuments())
            {
                // Get the list of projects to be analyzed.
                // Depending on the AnalysisType we:
                //// 1. analyze all the files in the solution/project/folder
                //// 2. analyze the selected file in the solution browser/code pane
                //// 3. If its a single file we may still analyze multiple files. We do this if the selected file has a dependancy on another file.
                ////    so if you analyze a designer.cs file we actually analyze the parent file and all its dependants.
                ////    This is generally because we can only be sure of issues relating to partial
                ////    types if we have all the partial types to check against.
                IList <CodeProject> projects = ProjectUtilities.GetProjectList(this.core, type, out this.analysisFilePath, this);

                this.analysisType = type;
                this.ClearEnvironmentPriorToAnalysis();

                this.SignalAnalysisStarted();

                this.violationCount = 0;

                if (projects.Count == 0)
                {
                    this.NoFilesToAnalyze();
                }
                else
                {
                    AnalysisThread analyze = new AnalysisThread(full, projects, this.core);
                    analyze.Complete += this.AnalyzeComplete;
                    System.Threading.Thread thread = new System.Threading.Thread(analyze.AnalyzeProc);

                    if (thread != null)
                    {
                        thread.IsBackground = true;

                        this.violations = new List <ViolationInfo>();

                        thread.Start();
                    }
                }
            }

            StyleCopTrace.Out();
        }
Пример #2
0
        /// <summary>
        /// Gathers the list of files to analyze and kicks off the worker thread.
        /// </summary>
        /// <param name="full">True if a full analyze should be performed.</param>
        /// <param name="autoFix">True if auto-fix should be performed.</param>
        /// <param name="type">Type of files that should be analyzed.</param>
        internal void Analyze(bool full, bool autoFix, AnalysisType type)
        {
            Param.Ignore(full, autoFix, type);

            // Save any documents that have been changed.
            if (this.SaveOpenDocuments())
            {
                // Get the list of projects to be analyzed.
                IList <CodeProject> projects = ProjectUtilities.GetProjectList(this.core, type);

                this.ClearEnvironmentPriorToAnalysis();

                this.SignalAnalysisStarted();

                this.violationCount = 0;

                if (projects.Count == 0)
                {
                    this.NoFilesToAnalyze();
                }
                else
                {
                    AnalysisThread analyze = new AnalysisThread(full, autoFix, projects, this.core);
                    analyze.Complete += new EventHandler(this.AnalyzeComplete);
                    System.Threading.Thread thread = new System.Threading.Thread(new ThreadStart(analyze.AnalyzeProc));

                    if (thread != null)
                    {
                        thread.IsBackground = true;

                        this.violations = new List <ViolationInfo>();

#if DEBUGTHREADING
                        analyze.AnalyzeProc();
#else
                        thread.Start();
#endif
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Gathers the list of files to analyze and kicks off the worker thread.
        /// </summary>
        /// <param name="full">True if a full analyze should be performed.</param>
        /// <param name="type">Type of files that should be analyzed.</param>
        internal void Analyze(bool full, AnalysisType type)
        {
            Param.Ignore(full, type);
            StyleCopTrace.In(full, type);

            // Save any documents that have been changed.
            if (this.SaveOpenDocuments())
            {
                // Get the list of projects to be analyzed.
                // Depending on the AnalysisType we:
                //// 1. analyze all the files in the solution/project/folder
                //// 2. analyze the selected file in the solution browser/code pane
                //// 3. If its a single file we may still analyze multiple files. We do this if the selected file has a dependancy on another file.
                ////    so if you analyze a designer.cs file we actually analyze the parent file and all its dependants.
                ////    This is generally because we can only be sure of issues relating to partial
                ////    types if we have all the partial types to check against.
                IList<CodeProject> projects = ProjectUtilities.GetProjectList(this.core, type, out this.analysisFilePath, this);

                this.analysisType = type;
                this.ClearEnvironmentPriorToAnalysis();

                this.SignalAnalysisStarted();

                this.violationCount = 0;

                if (projects.Count == 0)
                {
                    this.NoFilesToAnalyze();
                }
                else
                {
                    AnalysisThread analyze = new AnalysisThread(full, projects, this.core);
                    analyze.Complete += this.AnalyzeComplete;
                    System.Threading.Thread thread = new System.Threading.Thread(analyze.AnalyzeProc);

                    if (thread != null)
                    {
                        thread.IsBackground = true;

                        this.violations = new List<ViolationInfo>();

                        thread.Start();
                    }
                }
            }

            StyleCopTrace.Out();
        }
Пример #4
0
        private static AnalysisThread CreateAnalysisThread(bool isFull)
        {
            StyleCopCore core = new StyleCopCore();
            List<CodeProject> projects = new List<CodeProject>();
            Mock<CodeProject> mockCodeProject = new Mock<CodeProject>();
            CodeProject codeProject = new CodeProject(0, "test", new Configuration(new string[0]));
            projects.Add(codeProject);

            AnalysisThread target = new AnalysisThread(isFull, projects, core);
            return target;
        }
        private static AnalysisThread CreateAnalysisThread(bool isFull)
        {
            AnalysisThread target = null;
            try
            {
                StyleCopCore core = new StyleCopCore();
                List<CodeProject> projects = new List<CodeProject>();
                Mock<CodeProject> mockCodeProject = new Mock<CodeProject>();
                CodeProject codeProject = new CodeProject(0, "test", new Configuration(new string[0]));
                projects.Add(codeProject);

                target = new AnalysisThread(isFull, projects, core);
            }
            catch (Exception ex)
            {
                // Use try catch to test a workaround on CI build (AppVeyor)
                Console.WriteLine(ex.Message);
            }

            return target;
        }
Пример #6
0
        /// <summary>
        /// Gathers the list of files to analyze and kicks off the worker thread.
        /// </summary>
        /// <param name="full">True if a full analyze should be performed.</param>
        /// <param name="autoFix">True if auto-fix should be performed.</param>
        /// <param name="type">Type of files that should be analyzed.</param>
        internal void Analyze(bool full, bool autoFix, AnalysisType type)
        {
            Param.Ignore(full, autoFix, type);

            // Save any documents that have been changed.
            if (this.SaveOpenDocuments())
            {
                // Get the list of projects to be analyzed.
                IList<CodeProject> projects = ProjectUtilities.GetProjectList(this.core, type);

                this.ClearEnvironmentPriorToAnalysis();

                this.SignalAnalysisStarted();

                this.violationCount = 0;

                if (projects.Count == 0)
                {
                    this.NoFilesToAnalyze();
                }
                else
                {
                    AnalysisThread analyze = new AnalysisThread(full, autoFix, projects, this.core);
                    analyze.Complete += new EventHandler(this.AnalyzeComplete);
                    System.Threading.Thread thread = new System.Threading.Thread(new ThreadStart(analyze.AnalyzeProc));

                    if (thread != null)
                    {
                        thread.IsBackground = true;

                        this.violations = new List<ViolationInfo>();

#if DEBUGTHREADING
                    analyze.AnalyzeProc();
#else
                        thread.Start();
#endif
                    }
                }
            }
        }