Example #1
0
        public static void SaveSetting(SettingModel obj)
        {
            string        xmlString;
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(SettingModel));

            using (MemoryStream ms = new MemoryStream())
            {
                xmlSerializer.Serialize(ms, obj);
                xmlString = Encoding.UTF8.GetString(ms.ToArray());
            }

            StreamWriter sw = new StreamWriter(configDirectory + "\\" + configName, false);

            sw.Write(xmlString);
            sw.Close();

            //重置所有的配置(null时会重新从配置文件中读取)
            BaseUCSetting.SettingModel = null;

            if (ThemeSetting.ThemeChanged)
            {
                if (MessageBox.Show("Program has deteched that you have changed your theme, which need restart visual studio to make it work, do you want restart visual studio now?",
                                    "Restart Visual Studio", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    VSBase.ReStartVS();
                }
            }
        }
Example #2
0
 protected override void OnExecute(Microsoft.VisualStudio.Shell.OleMenuCommand command)
 {
     VSBase.ReStartVS();
 }
Example #3
0
        protected override void OnExecute(Microsoft.VisualStudio.Shell.OleMenuCommand command)
        {
            if (VSTextView.ActiveTextView == null)
            {
                return;
            }

            long      getElement = 0;
            long      regionTime = 0;
            Stopwatch sw         = new Stopwatch();

            sw.Start();

            //开始之前先格式化
            VSBase.ExecuteCommand((uint)VSConstants.VSStd2KCmdID.FORMATDOCUMENT);
            VSStatusBar.SetText("quick region......");
            using (VSUndo.StartUndo())
            {
                SettingModel model = SettingFrm.ReadSetting();
                if (model != null)
                {
                    QuickRegionSettingModel quickRegionModel = model.QuickRegionModel;
                    VSCodeModel             codeModel        = new VSCodeModel();
                    List <CodeElement>      classLists       = GetClassAndStructInFile(codeModel);

                    for (int i = 0; i < classLists.Count; i++)
                    {
                        sw.Stop();
                        getElement = sw.ElapsedMilliseconds;
                        sw.Restart();

                        List <CodeElement> noneEventElements = codeModel.GetNotRegionNoneEventMethodInClass(classLists[i]);
                        if (noneEventElements.Count != 0)
                        {
                            RegionElement(noneEventElements, i, model.QuickRegionModel.Method);
                        }

                        List <CodeElement> eventElements = codeModel.GetNotRegionEventInClass(classLists[i]);
                        if (eventElements.Count != 0)
                        {
                            RegionElement(eventElements, i, model.QuickRegionModel.Event);
                        }

                        List <CodeElement> constructorElements = codeModel.GetNotRegionConstructorInClass(classLists[i]);
                        if (constructorElements.Count != 0)
                        {
                            RegionElement(constructorElements, i, model.QuickRegionModel.Constructor);
                        }

                        List <CodeElement> propertyElements = codeModel.GetNotRegionPropertyInClass(classLists[i]);
                        if (propertyElements.Count != 0)
                        {
                            RegionElement(propertyElements, i, model.QuickRegionModel.Property);
                        }

                        List <CodeElement> variablesElements = codeModel.GetNotRegionVariablesInClass(classLists[i]);
                        if (variablesElements.Count != 0)
                        {
                            RegionElement(variablesElements, i, model.QuickRegionModel.Variable);
                        }

                        sw.Stop();
                        regionTime = sw.ElapsedMilliseconds;
                    }

                    //QuickRegionpNonEventMethod(textView, quickRegionModel.Method);
                    //QuickRegionpEventMethod(textView, quickRegionModel.Event);
                    //QuickRegionConstructor(textView, quickRegionModel.Constructor);
                    //QuickRegionpProperty(textView, quickRegionModel.Property);
                    //QuickRegionDelegates(textView, "- Delegate -");
                    //QuickRegionVariables(textView, quickRegionModel.Variable);
                    //CleanEmptyRegion(textView);
                    CleanBlankLine(codeModel);

                    VSDocument.SaveActiveDocument();
                    VSBase.ExecuteCommand((uint)VSConstants.VSStd2KCmdID.FORMATDOCUMENT);
                    VSBase.ExecuteCommand((uint)VSConstants.VSStd2KCmdID.OUTLN_COLLAPSE_TO_DEF);
                }
            }
            VsOutput.ShowDebugMessage("region complete, get element time total: " + getElement + " milliseconds\r\n" + " region time: " + regionTime);
        }