public IEnumerable <Snippet> GenerateSnippets(Snippet snippet) { var jobs = new JobCollection(); if (snippet.HasTag(KnownTags.GenerateAlternativeShortcut)) { jobs.AddCommand(new SimpleCommand(f => f.Shortcut = f.Shortcut.ToLowerInvariant(), CommandKind.ShortcutToLowercase)); jobs.AddCommand(new AlternativeShortcutCommand()); } //if (snippet.HasTag(KnownTags.GenerateXamlProperty)) // jobs.AddCommand(new XamlPropertyCommand()); foreach (Job job in jobs) { var context = new ExecutionContext((Snippet)snippet.Clone()); job.Execute(context); if (!context.IsCanceled) { foreach (Snippet snippet2 in context.Snippets) { snippet2.SortCollections(); yield return(snippet2); } } } }
private IEnumerable <Snippet> GenerateSnippets(Snippet snippet) { var jobs = new JobCollection(); jobs.AddCommands(GetTypeCommands(snippet)); if (snippet.HasTag(KnownTags.GenerateCollection)) { jobs.AddCommands(GetCollectionCommands(snippet)); } if (snippet.HasTag(KnownTags.GenerateImmutableCollection)) { jobs.AddCommands(GetImmutableCollectionCommands(snippet)); } jobs.AddCommands(GetAccessModifierCommands(snippet)); if (snippet.HasTag(KnownTags.GenerateStaticModifier)) { jobs.AddCommand(StaticCommand); } if (snippet.HasTag(KnownTags.GenerateInitializer)) { jobs.AddCommand(InitializerCommand); } if (snippet.HasTag(KnownTags.GenerateParameters)) { jobs.AddCommand(ParametersCommand); } if (snippet.HasTag(KnownTags.GenerateArguments)) { jobs.AddCommand(ArgumentsCommand); } if (snippet.HasTag(KnownTags.GenerateUnchanged)) { jobs.Add(new Job()); } foreach (Job job in jobs) { var context = new LanguageExecutionContext((Snippet)snippet.Clone(), Language); job.Execute(context); if (!context.IsCanceled) { foreach (Snippet snippet2 in context.Snippets) { PostProcess(snippet2); yield return(snippet2); } } } }