private async Task <IDEProjectResult> AnalyzeProjectFiles(string projectPath, string fileContent, string filePath, List <string> preportReferences, List <string> currentReferences) { try { var configuration = new AnalyzerConfiguration(LanguageOptions.CSharp) { MetaDataSettings = { LiteralExpressions = true, MethodInvocations = true, ReferenceData = true, Annotations = true, DeclarationNodes = true, LoadBuildData = true, LocationData = true, InterfaceDeclarations = true } }; var analyzer = CodeAnalyzerFactory.GetAnalyzer(configuration, _logger); var ideProjectResult = await analyzer.AnalyzeFile(projectPath, filePath, fileContent, preportReferences, currentReferences); return(ideProjectResult); } catch (Exception ex) { _logger.LogError(ex, "Error while analyzing files"); } finally { CommonUtils.RunGarbageCollection(_logger, "PortingAssistantAnalysisHandler.AnalyzeFileIncremental"); } return(null); }
public async Task <Dictionary <string, ProjectAnalysisResult> > AnalyzeSolution( string solutionFilename, List <string> projects, string targetFramework = "netcoreapp3.1") { try { var configuration = new AnalyzerConfiguration(LanguageOptions.CSharp) { MetaDataSettings = { LiteralExpressions = true, MethodInvocations = true, ReferenceData = true, Annotations = true, DeclarationNodes = true, LoadBuildData = true, LocationData = true, InterfaceDeclarations = true } }; var analyzer = CodeAnalyzerFactory.GetAnalyzer(configuration, _logger); var analyzersTask = await analyzer.AnalyzeSolution(solutionFilename); var analysisActions = AnalyzeActions(projects, targetFramework, analyzersTask, solutionFilename); return(projects .Select((project) => new KeyValuePair <string, ProjectAnalysisResult>(project, AnalyzeProject(project, analyzersTask, analysisActions, targetFramework))) .Where(p => p.Value != null) .ToDictionary(p => p.Key, p => p.Value)); } finally { CommonUtils.RunGarbageCollection(_logger, "PortingAssistantAnalysisHandler.AnalyzeSolution"); } }
public AnalyzerCLI() { Configuration = new AnalyzerConfiguration(LanguageOptions.CSharp) { ExportSettings = { GenerateJsonOutput = false, }, MetaDataSettings = { LiteralExpressions = true, MethodInvocations = true } }; }
public CSharpCodeAnalyzer(AnalyzerConfiguration configuration, ILogger logger) : base(configuration, logger) { }
/// <summary> /// Initializes and return a new CodeAnalyzer /// </summary> /// <param name="configuration">Configuration of the analyzer</param> /// <param name="logger">Logger object</param> /// <returns></returns> public static CodeAnalyzer GetAnalyzer(AnalyzerConfiguration configuration, ILogger logger) { return(new CSharpCodeAnalyzer(configuration, logger)); }
protected CodeAnalyzer(AnalyzerConfiguration configuration, ILogger logger) { AnalyzerConfiguration = configuration; Logger = logger; }