コード例 #1
0
ファイル: DialogPage.cs プロジェクト: Plankankul/SpecSharp
        /// <include file='doc\DialogPage.uex' path='docs/doc[@for="DialogPage.SaveSettingsToXml"]' />
        /// <devdoc>
        ///     This method does the reverse of LoadSettingsFromXml.
        /// </devdoc>
        public virtual void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            object automationObject = this.AutomationObject;
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(automationObject, new Attribute[] { DesignerSerializationVisibilityAttribute.Visible });
            // [clovett] Sort the names so that tests can depend on the order returned, otherwise the order changes
            // randomly based on some internal hashtable seed.  Besides it makes it easier for the user to
            // read the .vssettings files.
            ArrayList sortedNames = new ArrayList();

            foreach (PropertyDescriptor property in properties)
            {
                sortedNames.Add(property.Name);
            }
            sortedNames.Sort();
            foreach (string name in sortedNames)
            {
                PropertyDescriptor property  = properties[name];
                TypeConverter      converter = property.Converter;
                if (converter.CanConvertTo(typeof(string)) && converter.CanConvertFrom(typeof(string)))
                {
                    NativeMethods.ThrowOnFailure(
                        writer.WriteSettingString(property.Name, converter.ConvertToInvariantString(property.GetValue(automationObject)))
                        );
                }
            }
        }
コード例 #2
0
        // based on information from : https://github.com/hesam/SketchSharp/blob/master/SpecSharp/SpecSharp/Microsoft.VisualStudio.Shell/DialogPage.cs
        public override void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            writer.WriteSettingString(ATASettings.Keys.AttachDescriptorDefaultMultipleMatchHandling, MultipleMatchHandlingDefault.ToString());

            for (var i = 0; i < ATAConstants.MaxCommands; i++)
            {
                var item = i >= Attachables.Count ? new AttachDescriptor() : Attachables[i];

                if (string.IsNullOrWhiteSpace(item.Name) || !item.ProcessNames.Any())
                {
                    continue;
                }
                // only items with names and processes
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorName, i, item.Name);
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorEnabled, i, item.Enabled);
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorProcessNames, i, string.Join(ATAConstants.ProcessNamesSeparator, item.ProcessNames));
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorMultipleMatchHandling, i, item.MultiMatchHandling.ToString());
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorIsProcessNamesRegex, i, item.IsProcessNamesRegex);
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorUsername, i, item.Username);
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorIsUsernameRegex, i, item.IsUsernameRegex);
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorAppPool, i, item.AppPool);
                writer.WriteSettingString(ATASettings.Keys.AttachDescriptorIsAppPoolRegex, i, item.IsAppPoolRegex);
            }

            base.SaveSettingsToXml(writer);
        }
コード例 #3
0
        public string Save(IVsSettingsWriter writer)
        {
            var key     = ContentType ?? DefaultThemeName;
            var subkeys = string.Join(";", LineFormats.Values
                                      .Where(item => item.ShouldSerialize())
                                      .Select(item => key + "." + item.FormatIndexName));

            writer.WriteSettingString(key, subkeys);

            Behavior.Save(writer, key);
            writer.WriteSettingString("CaretHandler", CaretHandler ?? DefaultCaretHandler);

            foreach (var item in LineFormats.Values.Where(item => item.ShouldSerialize()))
            {
                var subkeyName = key + "." + item.FormatIndexName;

                writer.WriteSettingString(subkeyName, "");

                var values = item.ToInvariantStrings();
                writer.WriteSettingAttribute(subkeyName, "Keys", string.Join(";", values.Keys));
                foreach (var kv in values)
                {
                    writer.WriteSettingAttribute(subkeyName, kv.Key, kv.Value);
                }
            }

            return(key);
        }
コード例 #4
0
        /// <summary>
        /// Saves settings to XML (on settings export)
        /// </summary>
        public override void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            WriteBoolToXml(writer, "ShowFilterContext", SettingsObject.Instance.ShowContextColumn);
            WriteBoolToXml(writer, "UseReflectionInAsp", SettingsObject.Instance.UseReflectionInAsp);
            WriteIntToXml(writer, "MarkNotLocalizableStringsIndex", SettingsObject.Instance.MarkNotLocalizableStringsIndex);
            WriteIntToXml(writer, "NamespacePolicyIndex", SettingsObject.Instance.NamespacePolicyIndex);
            WriteIntToXml(writer, "BatchMoveSplitterDistance", SettingsObject.Instance.BatchMoveSplitterDistance);
            WriteIntToXml(writer, "SelectedKeyIndex", SettingsObject.Instance.SelectedKeyIndex);
            WriteBoolToXml(writer, "SelectedUseFullName", SettingsObject.Instance.SelectedUseFullName);

            if (SettingsObject.Instance.SelectedResourceFilePath != null)
            {
                writer.WriteSettingString("SelectedResourceFilePath", SettingsObject.Instance.SelectedResourceFilePath);
            }

            foreach (var pair in SettingsObject.Instance.CommonLocalizabilityCriteria)
            {
                LocalizationCommonCriterion crit = pair.Value;
                writer.WriteSettingString(crit.Name, crit.ToRegData());
            }

            WriteIntToXml(writer, "CustomCriteriaCount", SettingsObject.Instance.CustomLocalizabilityCriteria.Count);

            for (int i = 0; i < SettingsObject.Instance.CustomLocalizabilityCriteria.Count; i++)
            {
                int hr = writer.WriteSettingString("CustomCriteria" + i, SettingsObject.Instance.CustomLocalizabilityCriteria[i].ToRegData());
                if (hr != VSConstants.S_OK)
                {
                    writer.ReportError("CustomCriteria value cannot be written", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError);
                }
            }
        }
コード例 #5
0
 internal void Save(IVsSettingsWriter writer, string key)
 {
     writer.WriteSettingAttribute(key, "ExtendInwardsOnly", ExtendInwardsOnly.ToString());
     writer.WriteSettingAttribute(key, "VisibleAligned", VisibleAligned.ToString());
     writer.WriteSettingAttribute(key, "VisibleUnaligned", VisibleUnaligned.ToString());
     writer.WriteSettingAttribute(key, "VisibleAtTextEnd", VisibleAtTextEnd.ToString());
     writer.WriteSettingAttribute(key, "VisibleEmpty", VisibleEmpty.ToString());
     writer.WriteSettingAttribute(key, "VisibleEmptyAtEnd", VisibleEmptyAtEnd.ToString());
 }
コード例 #6
0
        /// <summary>
        /// Writes integer value to XML settings
        /// </summary>
        protected void WriteIntToXml(IVsSettingsWriter writer, string name, int value)
        {
            int hr = writer.WriteSettingLong(name, value);

            if (hr != VSConstants.S_OK)
            {
                writer.ReportError(name + " value cannot be written", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError);
            }
        }
コード例 #7
0
        public void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            var service = Service;

            if (ValidateService(service))
            {
                service.Save(writer);
            }
        }
コード例 #8
0
        public static void WriteSettingString(this IVsSettingsWriter writer, string keyFormat, int index, string value)
        {
            if (value == null)
            {
                return;
            }
            var name = string.Format(keyFormat, index);

            writer.WriteSettingString(name, value);
        }
コード例 #9
0
        /// <inheritdoc/>
        public override void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            try
            {
                base.SaveSettingsToXml(writer);

                // Write settings to XML
                writer.WriteSettingString(RegPreviewExe, this.PreviewToolExecutablePath);
                writer.WriteSettingString(RegPreviewCmdLine, this.PreviewToolCommandLine);
            }
            catch (Exception e)
            {
                Debug.Assert(false, "Error exporting Slow Cheetah settings: " + e.Message);
            }
        }
コード例 #10
0
        /// <inheritdoc/>
        public override void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            try
            {
                base.SaveSettingsToXml(writer);

                // Write settings to XML
                writer.WriteSettingBoolean(RegPreviewEnable, this.EnablePreview ? 1 : 0);
                writer.WriteSettingBoolean(RegDependentUpon, this.AddDependentUpon ? 1 : 0);
            }
            catch (Exception e)
            {
                Debug.Assert(false, "Error exporting Slow Cheetah settings: " + e.Message);
            }
        }
コード例 #11
0
ファイル: ProfileManager.cs プロジェクト: negrutiu/remarker
        public void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            RemarkerService service = this.Service;

            var stringBuilder = new StringBuilder();

            foreach (var valueName in service.ValueNames)
            {
                stringBuilder.Append(valueName);
                stringBuilder.Append(";");
                service.Save(writer, valueName);
            }

            writer.WriteSettingLong("Version", service.Version);
            writer.WriteSettingString("ValueKeys", stringBuilder.ToString());
        }
コード例 #12
0
        public void Save(IVsSettingsWriter writer)
        {
            lock (_Themes) {
                var sb = new StringBuilder();
                if (DefaultTheme != null)
                {
                    sb.Append(DefaultTheme.Save(writer));
                    sb.Append(";");
                }

                foreach (var theme in _Themes.Values)
                {
                    sb.Append(theme.Save(writer));
                    sb.Append(";");
                }

                writer.WriteSettingLong("Version", Version);
                writer.WriteSettingString("Themes", sb.ToString());
                writer.WriteSettingLong("Visible", Visible ? 1 : 0);
            }
        }
コード例 #13
0
        /// <summary>
        /// Saves settings to XML (on settings export)
        /// </summary>
        /// <param name="writer"></param>
        public override void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            WriteIntToXml(writer, "ReferenceUpdateInterval", SettingsObject.Instance.ReferenceUpdateInterval);
            WriteIntToXml(writer, "BadKeyNamePolicy", (int)SettingsObject.Instance.BadKeyNamePolicy);
            WriteBoolToXml(writer, "OptimizeSpecialSequencesInTranslation", SettingsObject.Instance.OptimizeSpecialSequencesInTranslation);
            WriteIntToXml(writer, "LanguagesCount", SettingsObject.Instance.LanguagePairs.Count);

            for (int i = 0; i < SettingsObject.Instance.LanguagePairs.Count; i++)
            {
                int hr = writer.WriteSettingString("Language" + i, SettingsObject.Instance.LanguagePairs[i].FromLanguage + ":" + SettingsObject.Instance.LanguagePairs[i].ToLanguage);
                if (hr != VSConstants.S_OK)
                {
                    writer.ReportError("Language value cannot be written", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError);
                }
            }

            int r = writer.WriteSettingString("BingAppId", SettingsObject.Instance.BingAppId == null ? string.Empty : SettingsObject.Instance.BingAppId);

            if (r != VSConstants.S_OK)
            {
                writer.ReportError("BingAppId value cannot be written", (uint)__VSSETTINGSERRORTYPES.vsSettingsErrorTypeError);
            }
        }
コード例 #14
0
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     // We do not support import/export
 }
コード例 #15
0
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     throw new NotImplementedException();
 }
コード例 #16
0
        public void Save(IVsSettingsWriter writer)
        {
            lock (_Themes) {
                var sb = new StringBuilder();
                if (DefaultTheme != null) {
                    sb.Append(DefaultTheme.Save(writer));
                    sb.Append(";");
                }

                foreach (var theme in _Themes.Values) {
                    sb.Append(theme.Save(writer));
                    sb.Append(";");
                }

                writer.WriteSettingLong("Version", Version);
                writer.WriteSettingString("Themes", sb.ToString());
                writer.WriteSettingLong("Visible", Visible ? 1 : 0);
            }
        }
コード例 #17
0
 /// <include file='doc\DialogPage.uex' path='docs/doc[@for="DialogPage.SaveSettingsToXml"]' />
 /// <devdoc>
 ///     This method does the reverse of LoadSettingsFromXml.
 /// </devdoc>
 public virtual void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     object automationObject = this.AutomationObject;
     PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(automationObject, new Attribute[] {DesignerSerializationVisibilityAttribute.Visible});
     // [clovett] Sort the names so that tests can depend on the order returned, otherwise the order changes
     // randomly based on some internal hashtable seed.  Besides it makes it easier for the user to
     // read the .vssettings files.
     ArrayList sortedNames = new ArrayList();
     foreach (PropertyDescriptor property in properties) {
         sortedNames.Add(property.Name);
     }
     sortedNames.Sort();
     foreach(string name in sortedNames) {
         PropertyDescriptor property = properties[name];
         TypeConverter converter = property.Converter;
         if (converter.CanConvertTo(typeof(string)) && converter.CanConvertFrom(typeof(string))) {
             NativeMethods.ThrowOnFailure(
                 writer.WriteSettingString(property.Name, converter.ConvertToInvariantString(property.GetValue(automationObject)))
             );
         }
     }
 }
コード例 #18
0
        public static void WriteSettingString(this IVsSettingsWriter writer, string keyFormat, int index, bool value)
        {
            var name = string.Format(keyFormat, index);

            writer.WriteSettingBoolean(name, Convert.ToInt32(value));
        }
コード例 #19
0
ファイル: Settings.cs プロジェクト: yuzd/VS-QuickNavigation
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     writer.WriteSettingString("ListedExtensions", ListedExtensionsString);
 }
コード例 #20
0
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     // We do not support import/export
 }
コード例 #21
0
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
 }
コード例 #22
0
 public override void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     _page.SaveSettings();
     base.SaveSettingsToXml(writer);
 }
コード例 #23
0
ファイル: Package.cs プロジェクト: Graham-Pedersen/IronPlot
        /// <include file='doc\Package.uex' path='docs/doc[@for="Package.MigrateSettings"]' />
        /// <devdoc>
        ///     This method implements the IVsUserSettingsMigration Interface
        ///     used to bring forward user settings from a previous version.
        /// </devdoc>
        int IVsUserSettingsMigration.MigrateSettings(IVsSettingsReader reader, IVsSettingsWriter writer, string strPageGuid)
        {
            Debug.Assert(strPageGuid != null && strPageGuid.Length > 0, "Passed page guid cannot be null");
            Debug.Assert(reader != null, "IVsSettingsReader cannot be null");
            Debug.Assert(writer != null, "IVsSettingsWriter cannot be null");

            Guid requestPageGuid = Guid.Empty;

            try
            {
                requestPageGuid = new Guid(strPageGuid);
            }
            catch (FormatException)
            {
                // If this is thrown, it means strPageGuid is not really a GUID, but rather a
                // tools options page name like "Environment.General".
            }

            IProfileMigrator profileMigrator = null;

            if (requestPageGuid == Guid.Empty)
            {
                profileMigrator = GetAutomationObject(strPageGuid) as IProfileMigrator;
            }
            else
            {
                profileMigrator = GetProfileManager(requestPageGuid, ProfileManagerLoadAction.None) as IProfileMigrator;
            }

            if(profileMigrator != null) {
                profileMigrator.MigrateSettings(reader, writer);
            }
            return NativeMethods.S_OK;
        }
コード例 #24
0
        public override void SaveSettingsToXml(IVsSettingsWriter writer)
        {
            var typeConverter = new ColorerFormatSettingsCollectionConverter();

            var buildSettings = typeConverter.ConvertTo(BuildOutputSettings, typeof(string)) as string;

            if (buildSettings != null)
                writer.WriteSettingString("BuildOutputSettings", buildSettings);

            var debugSettings = typeConverter.ConvertTo(DebugOutputSettings, typeof(string)) as string;

            if (debugSettings != null)
                writer.WriteSettingString("DebugOutputSettings", debugSettings);
        }
コード例 #25
0
ファイル: Package.cs プロジェクト: hesam/SketchSharp
        /// <include file='doc\Package.uex' path='docs/doc[@for="Package.ExportSettings"]' />
        /// <devdoc>
        ///     This method implements the IVsUserSettings Interface
        ///     used to manage profiles and import/export settings
        ///     to XML files.
        /// </devdoc>
        int IVsUserSettings.ExportSettings(string strPageGuid, IVsSettingsWriter writer) {
            Debug.Assert(strPageGuid != null && strPageGuid.Length > 0, "Passed page guid cannot be null");
            Debug.Assert(writer != null, "IVsSettingsWriter cannot be null");

            Guid requestPageGuid = new Guid(strPageGuid);
            IProfileManager profileManager = GetProfileManager(requestPageGuid, true);
            if(profileManager != null) {
                profileManager.SaveSettingsToXml(writer);
            }
            return NativeMethods.S_OK;
        }
コード例 #26
0
        public void Save(IVsSettingsWriter writer, string valueName)
        {
            string value = this.ReadValue(valueName);

            writer.WriteSettingString(valueName, value);
        }
コード例 #27
0
 /// <summary>
 /// Saves settings to XML (on settings export)
 /// </summary>
 public override void SaveSettingsToXml(IVsSettingsWriter writer)
 {
 }
コード例 #28
0
        public static void WriteSettingLong(this IVsSettingsWriter writer, string keyFormat, int index, int value)
        {
            var name = string.Format(keyFormat, index);

            writer.WriteSettingLong(name, value);
        }
コード例 #29
0
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     throw new NotImplementedException();
 }
コード例 #30
0
 public void SaveSettingsToXml(IVsSettingsWriter writer)
 {
     var service = Service;
     if (ValidateService(service)) {
         service.Save(writer);
     }
 }