private NamingRuleTreeItemViewModel CreateRoot(SerializableNamingStylePreferencesInfo info) { var root = new NamingRuleTreeItemViewModel("Naming Rules:"); CreateRootHelper(root, info.NamingRules); return(root); }
private string MethodNamesArePascalCaseOptionString() { var symbolSpecification = new SymbolSpecification( Guid.NewGuid(), "Name", SpecializedCollections.SingletonEnumerable(new SymbolSpecification.SymbolKindOrTypeKind(SymbolKind.Method)).ToList(), SpecializedCollections.EmptyList <SymbolSpecification.AccessibilityKind>(), SpecializedCollections.EmptyList <SymbolSpecification.ModifierKind>()); var namingStyle = new NamingStyle(); namingStyle.CapitalizationScheme = Capitalization.PascalCase; namingStyle.Name = "Name"; namingStyle.Prefix = ""; namingStyle.Suffix = ""; namingStyle.WordSeparator = ""; var namingRule = new SerializableNamingRule(); namingRule.SymbolSpecificationID = symbolSpecification.ID; namingRule.NamingStyleID = namingStyle.ID; namingRule.EnforcementLevel = DiagnosticSeverity.Error; var info = new SerializableNamingStylePreferencesInfo(); info.SymbolSpecifications.Add(symbolSpecification); info.NamingStyles.Add(namingStyle); info.NamingRules.Add(namingRule); return(info.CreateXElement().ToString()); }
internal override void LoadSettings() { base.LoadSettings(); var namingPreferencesXml = this.OptionService.GetOption(SimplificationOptions.NamingPreferences, _languageName); SerializableNamingStylePreferencesInfo preferencesInfo; if (string.IsNullOrEmpty(namingPreferencesXml)) { preferencesInfo = new SerializableNamingStylePreferencesInfo(); } else { preferencesInfo = SerializableNamingStylePreferencesInfo.FromXElement(XElement.Parse(namingPreferencesXml)); } _viewModel = new NamingStylesOptionPageControlViewModel(preferencesInfo, _languageName, _categories, _notificationService); this.DataContext = _viewModel; this.RootTreeView.ItemsPath = nameof(NamingRuleTreeItemViewModel.Children); this.RootTreeView.IsExpandablePath = nameof(NamingRuleTreeItemViewModel.HasChildren); this.RootTreeView.FilterParentEvaluator = GetParent; this.RootTreeView.RootItemsSource = new ObservableCollection <NamingRuleTreeItemViewModel>() { _viewModel.rootNamingRule }; }
public NamingStyleOptionPageViewModel(SerializableNamingStylePreferencesInfo info) { var viewModels = new List <NamingRuleViewModel>(); foreach (var namingRule in info.NamingRules) { var viewModel = new NamingRuleViewModel(); viewModel.NamingStyles = new ObservableCollection <NamingStyle>(info.NamingStyles); viewModel.Specifications = new ObservableCollection <SymbolSpecification>(info.SymbolSpecifications); viewModel.NotificationPreferences = new List <EnforcementLevel>(_notifications); viewModel.SelectedSpecification = viewModel.Specifications.Single(s => s.ID == namingRule.SymbolSpecificationID); viewModel.SelectedStyle = viewModel.NamingStyles.Single(s => s.ID == namingRule.NamingStyleID); viewModel.SelectedNotificationPreference = viewModel.NotificationPreferences.Single(n => n.Name == new EnforcementLevel(namingRule.EnforcementLevel).Name); viewModels.Add(viewModel); } CodeStyleItems = new ObservableCollection <NamingRuleViewModel>(viewModels); Specifications = new ObservableCollection <SymbolSpecification>(info.SymbolSpecifications); NamingStyles = new ObservableCollection <NamingStyle>(info.NamingStyles); SetMoveArrowStatuses(); }
internal NamingStylesOptionPageControlViewModel(SerializableNamingStylePreferencesInfo info, string languageName, ImmutableArray <string> categories, INotificationService notificationService) { this._languageName = languageName; this.categories = categories; this.notificationService = notificationService; this.SymbolSpecificationList = new ObservableCollection <SymbolSpecificationViewModel>(info.SymbolSpecifications.Select(s => new SymbolSpecificationViewModel(languageName, categories, s, notificationService))); this.NamingStyleList = new ObservableCollection <NamingStyleViewModel>(info.NamingStyles.Select(s => new NamingStyleViewModel(s, this.notificationService))); this.rootNamingRule = CreateRoot(info); }
public SerializableNamingStylePreferencesInfo GetInfo() { // TODO! var info = new SerializableNamingStylePreferencesInfo(); info.SymbolSpecifications = SymbolSpecificationList.Select(s => s.GetSymbolSpecification()).ToList(); info.NamingStyles = NamingStyleList.Select(s => s.GetNamingStyle()).ToList(); info.NamingRules = CreateNamingRuleTree(); return(info); }
internal override void LoadSettings() { base.LoadSettings(); var options = OptionService.GetOption(SimplificationOptions.NamingPreferences, _languageName); if (string.IsNullOrEmpty(options)) { return; } var namingPreferencesXml = this.OptionService.GetOption(SimplificationOptions.NamingPreferences, _languageName); var preferencesInfo = SerializableNamingStylePreferencesInfo.FromXElement(XElement.Parse(namingPreferencesXml)); _viewModel = new NamingStyleOptionPageViewModel(preferencesInfo); this.DataContext = _viewModel; }
internal override void SaveSettings() { var info = new SerializableNamingStylePreferencesInfo(); foreach (var item in _viewModel.CodeStyleItems) { if (!item.IsComplete()) { continue; } var rule = new SerializableNamingRule() { EnforcementLevel = item.SelectedNotificationPreference.Value, NamingStyleID = item.SelectedStyle.ID, SymbolSpecificationID = item.SelectedSpecification.ID }; info.NamingRules.Add(rule); } foreach (var item in _viewModel.Specifications) { info.SymbolSpecifications.Add(item); } foreach (var item in _viewModel.NamingStyles) { info.NamingStyles.Add(item); } var oldOptions = OptionService.GetOptions(); var newOptions = oldOptions.WithChangedOption(SimplificationOptions.NamingPreferences, _languageName, info.CreateXElement().ToString()); OptionService.SetOptions(newOptions); OptionLogger.Log(oldOptions, newOptions); }