private static void Main(string[] args) { var settings = new GeneralSettings() { SolutionDirectoryPath = @"..\..\..\..\.." }; SnippetDirectory[] snippetDirectories = SnippetDirectory.LoadFromFile(@"..\..\SnippetDirectories.xml").ToArray(); CharacterSequence[] characterSequences = CharacterSequence.LoadFromFile(@"..\..\CharacterSequences.xml").ToArray(); LanguageDefinition[] languageDefinitions = LanguageDefinition.LoadFromFile(@"..\..\LanguageDefinitions.xml").ToArray(); CharacterSequence.SerializeToXml(Path.Combine(settings.ExtensionProjectPath, "CharacterSequences.xml"), characterSequences); SnippetGenerator.GenerateSnippets(snippetDirectories, languageDefinitions); SnippetGenerator.GenerateHtmlSnippets(snippetDirectories); SnippetGenerator.GenerateXamlSnippets(snippetDirectories); SnippetGenerator.GenerateXmlSnippets(snippetDirectories); SnippetDirectory[] releaseDirectories = snippetDirectories .Where(f => f.HasTag(KnownTags.Release) && !f.HasTag(KnownTags.Dev)) .ToArray(); MarkdownGenerator.WriteSolutionReadMe(releaseDirectories, settings); MarkdownGenerator.WriteProjectReadMe(releaseDirectories, Path.GetFullPath(settings.ProjectPath)); MarkdownGenerator.WriteDirectoryReadMe( snippetDirectories .Where(f => f.HasAnyTag(KnownTags.Release, KnownTags.Dev) && !f.HasAnyTag(KnownTags.AutoGenerationSource, KnownTags.AutoGenerationDestination)) .ToArray(), characterSequences, settings); SnippetPackageGenerator.GenerateVisualStudioPackageFiles( releaseDirectories: releaseDirectories, characterSequences: characterSequences, settings: settings); settings.ExtensionProjectName += ".Dev"; SnippetPackageGenerator.GenerateVisualStudioPackageFiles( releaseDirectories: snippetDirectories .Where(f => f.HasTags(KnownTags.Release, KnownTags.Dev)) .ToArray(), characterSequences: null, settings: settings); SnippetChecker.CheckSnippets(snippetDirectories); Console.WriteLine("*** END ***"); Console.ReadKey(); }
private static void CheckSnippets(SnippetDirectory[] snippetDirectories) { foreach (IGrouping <Language, SnippetDirectory> grouping in snippetDirectories .Where(f => !f.HasAnyTag(KnownTags.AutoGenerationSource, KnownTags.AutoGenerationDestination)) .GroupBy(f => f.Language)) { Console.WriteLine(); Console.WriteLine($"***** {grouping.Key} *****"); SnippetDirectory[] directories = grouping.ToArray(); SnippetChecker.CheckDuplicateShortcuts(directories); directories = directories .Where(f => !f.HasTag(KnownTags.VisualStudio)) .ToArray(); SnippetChecker.CheckSnippets(directories); } }