/// <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(); }
/// <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 } } } }
/// <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(); }
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; }
/// <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 } } } }