/// <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(); } }
/// <summary> /// Saves all. /// </summary> public void SaveAll() { DTE2 dte2 = this.project.DTE as DTE2; dte2.SaveAll(); }
/// <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(); }