Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 public SnippetGenerator(SnippetGeneratorSettings settings)
 {
     Settings = settings;
 }
Пример #4
0
 public void GenerateSnippets(SnippetDirectory[] snippetDirectories, SnippetGeneratorSettings settings)
 {
     GenerateSnippets(snippetDirectories, settings, f => !f.HasTag(KnownTags.Dev));
     GenerateSnippets(snippetDirectories, settings, f => f.HasTag(KnownTags.Dev));
 }