コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        // 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);
        }
コード例 #5
0
        /// <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();
        }
コード例 #6
0
        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();
        }