private void GenerateSnippets(SnippetDirectory[] snippetDirectories, SnippetGeneratorSettings settings, Func <SnippetDirectory, bool> predicate) { IEnumerable <SnippetDirectory> items = snippetDirectories.Where(f => f.Language == Language); if (predicate != null) { items = items.Where(predicate); } snippetDirectories = items.ToArray(); if (snippetDirectories.Length > 0) { string source = items .Where(f => f.HasTag(KnownTags.AutoGenerationSource)) .Select(f => f.Path) .FirstOrDefault(); if (source != null) { string destination = items .Where(f => f.HasTag(KnownTags.AutoGenerationDestination)) .Select(f => f.Path) .FirstOrDefault(); if (destination != null) { var generator = new SnippetGenerator(settings); generator.GenerateSnippets(source, destination); } } } }
public static void GenerateSnippets(SnippetDirectory[] snippetDirectories) { Document document = Document.Create(@"..\..\Records.xml"); IEnumerable <Record> records = document .ReadRecords() .Where(f => !f.HasTag(KnownTags.Disabled)); LanguageDefinition[] languages = records .Where(f => f.ContainsProperty(KnownTags.Language)) .ToLanguageDefinitions() .ToArray(); foreach (LanguageDefinition language in languages) { var settings = new SnippetGeneratorSettings(language); foreach (TypeDefinition typeInfo in records .Where(f => f.HasTag(KnownTags.Collection)) .ToTypeDefinitions()) { settings.Types.Add(typeInfo); } language.GenerateSnippets(snippetDirectories, settings); } }
public SnippetGenerator(SnippetGeneratorSettings settings) { Settings = settings; }
public void GenerateSnippets(SnippetDirectory[] snippetDirectories, SnippetGeneratorSettings settings) { GenerateSnippets(snippetDirectories, settings, f => !f.HasTag(KnownTags.Dev)); GenerateSnippets(snippetDirectories, settings, f => f.HasTag(KnownTags.Dev)); }