Example #1
0
        /// <summary>
        /// Replaces the text.
        /// </summary>
        /// <param name="instance">The instance.</param>
        /// <param name="findText">The find text.</param>
        /// <param name="replaceText">The replace text.</param>
        /// <param name="saveFiles">if set to <c>true</c> [save files].</param>
        /// <returns>True or false.</returns>
        public static bool ReplaceText(
            this DTE2 instance,
            string findText,
            string replaceText,
            bool saveFiles)
        {
            TraceService.WriteLine("DTEExtensions::ReplaceText from '" + findText + "' to '" + replaceText + "'");

            bool replaced = true;

            Find2 find2 = (Find2)instance.Find;

            vsFindResult findResults = find2.FindReplace(
                vsFindAction.vsFindActionReplaceAll,
                findText,
                (int)vsFindOptions.vsFindOptionsFromStart,
                replaceText,
                vsFindTarget.vsFindTargetSolution,
                string.Empty,
                string.Empty,
                vsFindResultsLocation.vsFindResultsNone);

            if (findResults == vsFindResult.vsFindResultNotFound)
            {
                replaced = false;
                TraceService.WriteError("Unable to replace text from:-" + findText + " to:- " + replaceText);
            }

            if (saveFiles)
            {
                instance.SaveAll();
            }

            return(replaced);
        }
        /// <summary>
        /// Replaces the text.
        /// </summary>
        /// <param name="instance">The instance.</param>
        /// <param name="findText">The find text.</param>
        /// <param name="replaceText">The replace text.</param>
        /// <param name="saveFiles">if set to <c>true</c> [save files].</param>
        public static void ReplaceText(
            this DTE2 instance,
            string findText,
            string replaceText,
            bool saveFiles)
        {
            instance.ExecuteCommand("Edit.ReplaceInFiles");
            instance.Find.Action      = vsFindAction.vsFindActionReplaceAll;
            instance.Find.FindWhat    = findText;
            instance.Find.ReplaceWith = replaceText;

            instance.Find.Target = vsFindTarget.vsFindTargetCurrentDocument;
            ////instance.Find.Target = vsFindTarget.vsFindTargetSolution;
            instance.Find.MatchCase         = false;
            instance.Find.MatchWholeWord    = false;
            instance.Find.MatchInHiddenText = true;
            instance.Find.PatternSyntax     = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr;
            ////instance.Find.SearchPath = "Current Document";
            ////instance.Find.SearchPath = "Entire Solution";
            instance.Find.SearchSubfolders          = true;
            instance.Find.KeepModifiedDocumentsOpen = false;
            instance.Find.FilesOfType     = "*.cs";
            instance.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone;

            vsFindResult findResults = instance.Find.Execute();

            if (findResults == vsFindResult.vsFindResultNotFound)
            {
                TraceService.WriteError("Unable to replace text from:-" + findText + " to:- " + replaceText);
            }

            instance.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close();

            if (saveFiles)
            {
                instance.SaveAll();
            }
        }
Example #3
0
        /// <summary>
        /// Saves all.
        /// </summary>
        public void SaveAll()
        {
            DTE2 dte2 = this.project.DTE as DTE2;

            dte2.SaveAll();
        }
Example #4
0
        /// <summary>
        /// Adds the plugins.
        /// </summary>
        /// <param name="visualStudioService">The visual studio service.</param>
        /// <param name="plugins">The plugins.</param>
        /// <param name="viewModelName">Name of the view model.</param>
        /// <param name="codeSnippetsPath">The code snippets path.</param>
        public void AddPlugins(
            IVisualStudioService visualStudioService,
            List <Plugin> plugins,
            string viewModelName,
            string codeSnippetsPath)
        {
            Project coreProject = visualStudioService.CoreProject;

            this.AddProjectPlugins(coreProject, plugins, "Core", "Core");
            this.AddProjectPlugins(visualStudioService.DroidProject, plugins, "Droid", "Droid");
            this.AddProjectPlugins(visualStudioService.iOSProject, plugins, "iOS", "Touch");
            this.AddProjectPlugins(visualStudioService.WindowsPhoneProject, plugins, "WindowsPhone", "WindowsPhone");
            this.AddProjectPlugins(visualStudioService.WindowsStoreProject, plugins, "WindowsStore", "WindowsStore");
            this.AddProjectPlugins(visualStudioService.WpfProject, plugins, "Wpf", "Wpf");

            if (string.IsNullOrEmpty(viewModelName) == false)
            {
                ProjectItem projectItem = coreProject.GetProjectItem(viewModelName);

                if (projectItem != null)
                {
                    foreach (Plugin plugin in plugins)
                    {
                        string snippetPath = string.Format(@"{0}\Plugins.{1}.txt", codeSnippetsPath, plugin.FriendlyName);

                        if (File.Exists(snippetPath))
                        {
                            FileInfo fileInfo = new FileInfo(snippetPath);

                            //// only do if the snippet contains some text :-)
                            if (fileInfo.Length > 0)
                            {
                                string assemblyName = Path.GetFileNameWithoutExtension(plugin.FileName);

                                projectItem.AddUsingStatement("Cirrious.CrossCore");

                                projectItem.AddUsingStatement(assemblyName);

                                projectItem.InsertMethod(snippetPath);

                                //// tidy up the using statements.
                                projectItem.Save();
                                projectItem.MoveUsingStatements();
                                projectItem.Save();
                                projectItem.SortAndRemoveUsingStatements();
                                projectItem.Save();

                                if (projectItem.Document != null)
                                {
                                    projectItem.Document.ActiveWindow.Close();
                                }
                            }
                        }
                    }
                }
            }

            DTE2 dte2 = coreProject.DTE as DTE2;

            dte2.SaveAll();
        }