public Parameters GenerateParameters(CodeFileCSharp input, Settings pluginSettings, IMetadataReader metadataReader, ILogger logger, IFileGroup <CodeFileCSharp, GroupItemDetails> fileGroup = null) { if (string.IsNullOrEmpty(pluginSettings.AstDescriptionJsonFilePath)) { throw new InvalidOperationException($"Setting {Settings.AstDescriptionJsonFilePathKey} should be provided."); } var path = pluginSettings.AstDescriptionJsonFilePath; if (!Path.IsPathRooted(pluginSettings.AstDescriptionJsonFilePath)) { path = Path.Combine(pluginSettings.BasePath, pluginSettings.AstDescriptionJsonFilePath); } var payload = File.ReadAllText(path); var description = JsonConvert.DeserializeObject <Root>(payload); var fixer = new InstanceReferenceFixer(); description = (Root)fixer.FixInstanceReferences(description); var analyzer = new DescriptionAnalyzer(pluginSettings); var astDescription = analyzer.Analyze(description); var parametersBuilder = new ParametersBuilder(pluginSettings); return(parametersBuilder.CreateParameters(astDescription)); }