private static void SetUnitySerializedFieldRule(IContextBoundSettingsStore settingsStore, SettingsIndexedEntry entry, ClrUserDefinedNamingRule userRule) { settingsStore.SetIndexedValue(entry, UnityNamingRuleDefaultSettings.SerializedFieldRuleGuid, null, userRule); #endif }
private void AddNamingSection(Lifetime lifetime, IContextBoundSettingsStore settingsStore) { BeginSection(); // Rider doesn't have a UI for editing user defined rules. See RIDER-8339 Header("Serialized field naming rules"); var entry = settingsStore.Schema.GetIndexedEntry(ourUserRulesAccessor); var userRule = GetUnitySerializedFieldRule(settingsStore, entry); Assertion.AssertNotNull(userRule, "userRule != null"); var prefixProperty = new Property <string>(lifetime, "StringOptionViewModel_SerializedFieldPrefix"); prefixProperty.SetValue(userRule.Policy.NamingRule.Prefix); prefixProperty.Change.Advise_NoAcknowledgement(lifetime, args => { var rule = GetUnitySerializedFieldRule(settingsStore, entry); rule.Policy.NamingRule.Prefix = args.New ?? string.Empty; SetUnitySerializedFieldRule(settingsStore, entry, rule); }); var suffixProperty = new Property <string>(lifetime, "StringOptionViewModel_SerializedFieldSuffix"); suffixProperty.SetValue(userRule.Policy.NamingRule.Suffix); suffixProperty.Change.Advise_NoAcknowledgement(lifetime, args => { var rule = GetUnitySerializedFieldRule(settingsStore, entry); rule.Policy.NamingRule.Suffix = args.New ?? string.Empty; SetUnitySerializedFieldRule(settingsStore, entry, rule); }); var kindProperty = new Property <object>(lifetime, "ComboOptionViewModel_SerializedFieldNamingStyle"); kindProperty.SetValue(userRule.Policy.NamingRule.NamingStyleKind); kindProperty.Change.Advise_NoAcknowledgement(lifetime, args => { var rule = GetUnitySerializedFieldRule(settingsStore, entry); rule.Policy.NamingRule.NamingStyleKind = (NamingStyleKinds)args.New; SetUnitySerializedFieldRule(settingsStore, entry, rule); }); var enabledProperty = new Property <bool>(lifetime, "BoolOptionViewModel_SerializedFieldEnableInspection"); enabledProperty.SetValue(userRule.Policy.EnableInspection); enabledProperty.Change.Advise_NoAcknowledgement(lifetime, args => { var existingRule = GetUnitySerializedFieldRule(settingsStore, entry); var newRule = new ClrUserDefinedNamingRule(existingRule.Descriptor, new NamingPolicy(existingRule.Policy.ExtraRules.ToIReadOnlyList(), existingRule.Policy.NamingRule, args.New)); SetUnitySerializedFieldRule(settingsStore, entry, newRule); }); WithIndent(AddStringOption(prefixProperty, "Prefix:")); WithIndent(AddStringOption(suffixProperty, "Suffix:")); WithIndent(AddComboOption(kindProperty, "Style:", new RadioOptionPoint(NamingStyleKinds.AaBb, "UpperCamelCase"), new RadioOptionPoint(NamingStyleKinds.AaBb_AaBb, "UpperCamelCase_UnderscoreTolerant"), new RadioOptionPoint(NamingStyleKinds.AaBb_aaBb, "UpperCamelCase_underscoreTolerant"), new RadioOptionPoint(NamingStyleKinds.aaBb, "lowerCamelCase"), new RadioOptionPoint(NamingStyleKinds.aaBb_AaBb, "lowerCamelCase_UnderscoreTolerant"), new RadioOptionPoint(NamingStyleKinds.aaBb_aaBb, "lowerCamelCase_underscoreTolerant"), new RadioOptionPoint(NamingStyleKinds.AA_BB, "ALL_UPPER"), new RadioOptionPoint(NamingStyleKinds.Aa_bb, "First_upper"))); WithIndent(AddBoolOption(enabledProperty, "Enable inspection")); EndSection(); }