/// <summary> /// Saves the set of groups. /// </summary> public void SaveGroups(IEnumerable <CodeSnippetGroup> groups) { lock (lockObj) { activeGroups = null; List <CodeSnippetGroup> modifiedGroups = new List <CodeSnippetGroup>(); foreach (var group in groups) { var defaultGroup = defaultSnippets.FirstOrDefault(i => i.Extensions == group.Extensions); IEnumerable <CodeSnippet> saveSnippets = group.Snippets; if (defaultGroup != null) { saveSnippets = group.Snippets.Except(defaultGroup.Snippets); } // save all groups, even if they're empty var copy = new CodeSnippetGroup() { Extensions = group.Extensions }; copy.Snippets.AddRange(saveSnippets); modifiedGroups.Add(copy); } PropertyService.Set("CodeSnippets", modifiedGroups); } }
public CodeSnippet FindSnippet(string extension, string name) { CodeSnippetGroup g = FindGroup(extension); if (g != null) { return(g.Snippets.FirstOrDefault(s => s.Name == name)); } return(null); }
void AddGroupButton_Click(object sender, RoutedEventArgs e) { string result = MessageService.ShowInputBox( "${res:Dialog.Options.CodeTemplate.AddGroupLabel}", "${res:Dialog.Options.CodeTemplate.EditGroupDialog.Text}", ""); if (!string.IsNullOrEmpty(result)) { CodeSnippetGroup g = new CodeSnippetGroup(); g.Extensions = result; groups.Add(g); extensionComboBox.SelectedItem = g; } }
void EditGroupButton_Click(object sender, RoutedEventArgs e) { CodeSnippetGroup g = (CodeSnippetGroup)extensionComboBox.SelectedItem; if (g != null) { string result = MessageService.ShowInputBox( "${res:Dialog.Options.CodeTemplate.EditGroupLabel}", "${res:Dialog.Options.CodeTemplate.EditGroupDialog.Text}", g.Extensions); if (!string.IsNullOrEmpty(result)) { g.Extensions = result; } } }
public CodeSnippetGroup(CodeSnippetGroup g) { this.Extensions = g.Extensions; this.Snippets.AddRange(g.Snippets.Select(s => new CodeSnippet(s))); }