public static int ReadSettingLong(this IVsSettingsReader reader, string keyFormat, int index) { var key = string.Format(keyFormat, index); int value; reader.ReadSettingLong(key, out value); return(value); }
/// <summary> /// Reads integer value from XML settings key /// </summary> protected int ReadIntFromXml(IVsSettingsReader reader, string name) { int p; int hr = reader.ReadSettingLong(name, out p); if (hr != VSConstants.S_OK) { reader.ReportError(name + " value cannot be read", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError); } return(p); }
public void Load(IVsSettingsReader reader) { lock (_Themes) { _Themes.Clear(); DefaultTheme = new IndentTheme(); string themeKeysString; reader.ReadSettingString("Themes", out themeKeysString); foreach (var key in themeKeysString.Split(';')) { if (string.IsNullOrWhiteSpace(key)) { continue; } try { var theme = IndentTheme.Load(reader, key); if (theme.IsDefault) { DefaultTheme = theme; } else { _Themes[theme.ContentType] = theme; } } catch (Exception ex) { Trace.WriteLine(string.Format("IndentGuide::LoadSettingsFromXML: {0}", ex)); } } int tempInt; reader.ReadSettingLong("Visible", out tempInt); Visible = (tempInt != 0); } OnThemesChanged(); }
// based on information from : https://github.com/hesam/SketchSharp/blob/master/SpecSharp/SpecSharp/Microsoft.VisualStudio.Shell/DialogPage.cs public override void LoadSettingsFromXml(IVsSettingsReader reader) { int multiMatch; reader.ReadSettingLong(ATASettings.Keys.AttachDescriptorDefaultMultipleMatchHandling, out multiMatch); MultipleMatchHandlingDefault = multiMatch == 0 ? MultiMatchOptionsGlobal.All: (MultiMatchOptionsGlobal)multiMatch; var items = new List <AttachDescriptor>(); try { for (var i = 0; i < ATAConstants.MaxCommands; i++) { // read from the xml feed var item = new AttachDescriptor(); try { var value = reader.ReadSettingString(ATASettings.Keys.AttachDescriptorName, i); if (value != null) { item.Name = value; } var enabled = reader.ReadSettingStringToBoolean(ATASettings.Keys.AttachDescriptorEnabled, i); if (enabled.HasValue) { item.Enabled = enabled.Value; } var multiMatchHandling = reader.ReadSettingLong(ATASettings.Keys.AttachDescriptorMultipleMatchHandling, i); item.MultiMatchHandling = multiMatchHandling == 0 ? MultiMatchOptions.Global : (MultiMatchOptions)multiMatch; value = reader.ReadSettingString(ATASettings.Keys.AttachDescriptorProcessNames, i); if (value != null) { item.ProcessNames = value.Split(new[] { ATAConstants.ProcessNamesSeparator[0] }, StringSplitOptions.RemoveEmptyEntries); } var parsedBool = reader.ReadSettingStringToBoolean(ATASettings.Keys.AttachDescriptorIsProcessNamesRegex, i); if (parsedBool.HasValue) { item.IsProcessNamesRegex = parsedBool.Value; } value = reader.ReadSettingString(ATASettings.Keys.AttachDescriptorUsername, i); if (value != null) { item.Username = value; } parsedBool = reader.ReadSettingStringToBoolean(ATASettings.Keys.AttachDescriptorIsUsernameRegex, i); if (parsedBool.HasValue) { item.IsUsernameRegex = parsedBool.Value; } value = reader.ReadSettingString(ATASettings.Keys.AttachDescriptorAppPool, i); if (value != null) { item.AppPool = value; } parsedBool = reader.ReadSettingStringToBoolean(ATASettings.Keys.AttachDescriptorIsAppPoolRegex, i); if (parsedBool.HasValue) { item.IsAppPoolRegex = parsedBool.Value; } } catch (Exception ex) { Debug.WriteLine($"Unhandled exception in LoadSettingsFromXml:{ex}"); } if (!string.IsNullOrWhiteSpace(item.Name) && item.ProcessNames != null && item.ProcessNames.Any()) { items.Add(item); } else { // this ensures it is a clean item if any of the other properties were saved previously. items.Add(new AttachDescriptor()); } } } catch (Exception ex) { Debug.WriteLine($"Unhandled exception in LoadSettingsFromXml:{ex}"); } Attachables = new ReadOnlyCollection <AttachDescriptor>(items); // notify of newly loaded settings OnSettingsLoaded(EventArgs.Empty); base.LoadSettingsFromXml(reader); }
/// <summary> /// Loads settings from XML (on import settings) /// </summary> public override void LoadSettingsFromXml(IVsSettingsReader reader) { SettingsObject.Instance.IgnorePropertyChanges = true; SettingsObject.Instance.ShowContextColumn = ReadBoolFromXml(reader, "ShowFilterContext"); SettingsObject.Instance.UseReflectionInAsp = ReadBoolFromXml(reader, "UseReflectionInAsp"); SettingsObject.Instance.MarkNotLocalizableStringsIndex = ReadIntFromXml(reader, "MarkNotLocalizableStringsIndex"); SettingsObject.Instance.NamespacePolicyIndex = ReadIntFromXml(reader, "NamespacePolicyIndex"); SettingsObject.Instance.BatchMoveSplitterDistance = ReadIntFromXml(reader, "BatchMoveSplitterDistance"); SettingsObject.Instance.SelectedKeyIndex = ReadIntFromXml(reader, "SelectedKeyIndex"); SettingsObject.Instance.SelectedUseFullName = ReadBoolFromXml(reader, "SelectedUseFullName"); int hr; string tmp; hr = reader.ReadSettingString("SelectedResourceFilePath", out tmp); SettingsObject.Instance.SelectedResourceFilePath = tmp; Marshal.ThrowExceptionForHR(hr); foreach (var pair in SettingsObject.Instance.CommonLocalizabilityCriteria) { LocalizationCommonCriterion crit = pair.Value; string val; hr = reader.ReadSettingString(crit.Name, out val); if (hr != VSConstants.S_OK) { throw new Exception("Error retrieving data from XML."); } if (val != null) { crit.FromRegData(val.ToString()); } } SettingsObject.Instance.CustomLocalizabilityCriteria.Clear(); int customCriteriaCount = 0; hr = reader.ReadSettingLong("CustomCriteriaCount", out customCriteriaCount); if (hr != VSConstants.S_OK) { throw new Exception("Error retrieving data from XML."); } for (int i = 0; i < customCriteriaCount; i++) { string val; hr = reader.ReadSettingString("CustomCriteria" + i, out val); if (val != null) { LocalizationCustomCriterion crit = new LocalizationCustomCriterion(LocalizationCriterionAction.VALUE, 0); crit.FromRegData(val.ToString()); SettingsObject.Instance.CustomLocalizabilityCriteria.Add(crit); } } SettingsObject.Instance.IgnorePropertyChanges = false; SettingsObject.Instance.NotifySettingsLoaded(); }
public void Load(IVsSettingsReader reader) { lock (_Themes) { _Themes.Clear(); DefaultTheme = new IndentTheme(); string themeKeysString; reader.ReadSettingString("Themes", out themeKeysString); foreach (var key in themeKeysString.Split(';')) { if (string.IsNullOrWhiteSpace(key)) continue; try { var theme = IndentTheme.Load(reader, key); if (theme.IsDefault) { DefaultTheme = theme; } else { _Themes[theme.ContentType] = theme; } } catch (Exception ex) { Trace.WriteLine(string.Format("IndentGuide::LoadSettingsFromXML: {0}", ex)); } } int tempInt; reader.ReadSettingLong("Visible", out tempInt); Visible = (tempInt != 0); } OnThemesChanged(); }