From 12becb2a8ff7f2ce3907b808274b69be9978111b Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Mon, 11 May 2015 23:06:53 +0300 Subject: [PATCH] remove duplicate folder --- findandreplaceex/Backup/FindInFiles.cs | 192 -- findandreplaceex/Backup/FindReplaceEx.csproj | 111 - findandreplaceex/Backup/PluginMain.cs | 618 ------ findandreplaceex/Backup/PluginUI.cs | 1799 ---------------- findandreplaceex/Backup/PluginUI.resx | 126 -- .../Backup/Properties/AssemblyInfo.cs | 36 - .../Backup/Properties/Resources.Designer.cs | 72 - .../Backup/Properties/Resources.resx | 101 - .../Backup/Resources/LocaleHelper.cs | 34 - findandreplaceex/Backup/Resources/en_US.resX | 147 -- findandreplaceex/Backup/Results.cs | 223 -- findandreplaceex/Backup/Settings.cs | 125 -- findandreplaceex/Backup/app.config | 3 - findandreplaceex/FindInFiles.cs | 192 -- findandreplaceex/FindReplaceEx.csproj | 112 - findandreplaceex/FindReplaceEx.sln | 37 - findandreplaceex/FindReplaceEx.v12.suo | Bin 138240 -> 0 bytes findandreplaceex/PluginMain.cs | 611 ------ findandreplaceex/PluginUI.cs | 1851 ----------------- findandreplaceex/PluginUI.resx | 126 -- findandreplaceex/Properties/AssemblyInfo.cs | 36 - .../Properties/Resources.Designer.cs | 63 - findandreplaceex/Properties/Resources.resx | 101 - findandreplaceex/Resources/LocaleHelper.cs | 34 - findandreplaceex/Resources/en_US.resX | 147 -- findandreplaceex/Results.cs | 223 -- findandreplaceex/Settings.cs | 163 -- findandreplaceex/UpgradeLog.htm | Bin 39340 -> 0 bytes findandreplaceex/app.config | 3 - ...gnTimeResolveAssemblyReferencesInput.cache | Bin 6594 -> 0 bytes .../Debug/FindReplaceEx.PluginUI.resources | Bin 180 -> 0 bytes ...ndReplaceEx.Properties.Resources.resources | Bin 180 -> 0 bytes .../FindReplaceEx.Resources.en_US.resources | Bin 1397 -> 0 bytes .../FindReplaceEx.csproj.FileListAbsolute.txt | 53 - ...indReplaceEx.csproj.GenerateResource.Cache | Bin 918 -> 0 bytes findandreplaceex/obj/Debug/FindReplaceEx.dll | Bin 57344 -> 0 bytes findandreplaceex/obj/Debug/FindReplaceEx.pdb | Bin 108032 -> 0 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 16795 -> 0 bytes .../Properties.Resources.Designer.cs.dll | Bin 4096 -> 0 bytes .../Release/FindReplaceEx.PluginUI.resources | Bin 180 -> 0 bytes ...ndReplaceEx.Properties.Resources.resources | Bin 180 -> 0 bytes .../FindReplaceEx.Resources.en_US.resources | Bin 1397 -> 0 bytes .../FindReplaceEx.csproj.FileListAbsolute.txt | 31 - ...indReplaceEx.csproj.GenerateResource.Cache | Bin 918 -> 0 bytes .../obj/Release/FindReplaceEx.dll | Bin 54272 -> 0 bytes .../obj/Release/FindReplaceEx.pdb | Bin 101888 -> 0 bytes .../Release/ResolveAssemblyReference.cache | Bin 32149 -> 0 bytes .../Properties.Resources.Designer.cs.dll | Bin 4608 -> 0 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 12422 -> 0 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 6782 -> 0 bytes .../Debug/FindReplaceEx.PluginUI.resources | Bin 180 -> 0 bytes ...ndReplaceEx.Properties.Resources.resources | Bin 180 -> 0 bytes .../FindReplaceEx.Resources.en_US.resources | Bin 1397 -> 0 bytes .../FindReplaceEx.csproj.FileListAbsolute.txt | 38 - ...indReplaceEx.csproj.GenerateResource.Cache | Bin 918 -> 0 bytes ...aceEx.csprojResolveAssemblyReference.cache | Bin 25511 -> 0 bytes .../obj/x86/Debug/FindReplaceEx.dll | Bin 60928 -> 0 bytes .../obj/x86/Debug/FindReplaceEx.pdb | Bin 114176 -> 0 bytes .../Properties.Resources.Designer.cs.dll | Bin 4096 -> 0 bytes ...7\251\327\231\327\236\327\225\327\252.txt" | 31 - 60 files changed, 7439 deletions(-) delete mode 100644 findandreplaceex/Backup/FindInFiles.cs delete mode 100644 findandreplaceex/Backup/FindReplaceEx.csproj delete mode 100644 findandreplaceex/Backup/PluginMain.cs delete mode 100644 findandreplaceex/Backup/PluginUI.cs delete mode 100644 findandreplaceex/Backup/PluginUI.resx delete mode 100644 findandreplaceex/Backup/Properties/AssemblyInfo.cs delete mode 100644 findandreplaceex/Backup/Properties/Resources.Designer.cs delete mode 100644 findandreplaceex/Backup/Properties/Resources.resx delete mode 100644 findandreplaceex/Backup/Resources/LocaleHelper.cs delete mode 100644 findandreplaceex/Backup/Resources/en_US.resX delete mode 100644 findandreplaceex/Backup/Results.cs delete mode 100644 findandreplaceex/Backup/Settings.cs delete mode 100644 findandreplaceex/Backup/app.config delete mode 100644 findandreplaceex/FindInFiles.cs delete mode 100644 findandreplaceex/FindReplaceEx.csproj delete mode 100644 findandreplaceex/FindReplaceEx.sln delete mode 100644 findandreplaceex/FindReplaceEx.v12.suo delete mode 100644 findandreplaceex/PluginMain.cs delete mode 100644 findandreplaceex/PluginUI.cs delete mode 100644 findandreplaceex/PluginUI.resx delete mode 100644 findandreplaceex/Properties/AssemblyInfo.cs delete mode 100644 findandreplaceex/Properties/Resources.Designer.cs delete mode 100644 findandreplaceex/Properties/Resources.resx delete mode 100644 findandreplaceex/Resources/LocaleHelper.cs delete mode 100644 findandreplaceex/Resources/en_US.resX delete mode 100644 findandreplaceex/Results.cs delete mode 100644 findandreplaceex/Settings.cs delete mode 100644 findandreplaceex/UpgradeLog.htm delete mode 100644 findandreplaceex/app.config delete mode 100644 findandreplaceex/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.PluginUI.resources delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.Properties.Resources.resources delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.Resources.en_US.resources delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.csproj.FileListAbsolute.txt delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.csproj.GenerateResource.Cache delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.dll delete mode 100644 findandreplaceex/obj/Debug/FindReplaceEx.pdb delete mode 100644 findandreplaceex/obj/Debug/ResolveAssemblyReference.cache delete mode 100644 findandreplaceex/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.PluginUI.resources delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.Properties.Resources.resources delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.Resources.en_US.resources delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.csproj.FileListAbsolute.txt delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.csproj.GenerateResource.Cache delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.dll delete mode 100644 findandreplaceex/obj/Release/FindReplaceEx.pdb delete mode 100644 findandreplaceex/obj/Release/ResolveAssemblyReference.cache delete mode 100644 findandreplaceex/obj/Release/TempPE/Properties.Resources.Designer.cs.dll delete mode 100644 findandreplaceex/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache delete mode 100644 findandreplaceex/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.PluginUI.resources delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.Properties.Resources.resources delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.Resources.en_US.resources delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.FileListAbsolute.txt delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.GenerateResource.Cache delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.csprojResolveAssemblyReference.cache delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.dll delete mode 100644 findandreplaceex/obj/x86/Debug/FindReplaceEx.pdb delete mode 100644 findandreplaceex/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll delete mode 100644 " findandreplaceex/\327\236\327\251\327\231\327\236\327\225\327\252.txt" diff --git a/ findandreplaceex/Backup/FindInFiles.cs b/ findandreplaceex/Backup/FindInFiles.cs deleted file mode 100644 index 48ba9d5..0000000 --- a/ findandreplaceex/Backup/FindInFiles.cs +++ /dev/null @@ -1,192 +0,0 @@ -/* - * FindTool - Find In Files utility - * Author: Philippe Elsass - */ -using System; -using System.IO; -using System.Collections; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading; - -namespace FindReplaceEx -{ - class FindInFiles - { - // already explored pathes - static ArrayList known; - static FindResults lastResults; - // parameters - static Regex re_pattern; - static string fileMask; - static string pattern; - static bool recursive; - - - /// - /// Recursively convert classes - /// - /// folder to convert - static void ExploreFolder(string path) - { - known.Add(path); - - // convert classes - string[] files = Directory.GetFiles(path, fileMask); - string src; - Encoding enc; - int line = 0; - int position = 0; - int lineEndChars = 0; - TextReader sr; - //lastResults = new FindResults(); - foreach(string file in files) - { - line = 0; - position = 0; - enc = GetEncoding(file); - using( sr = new StreamReader(file, enc) ) - { - - lineEndChars = getLineEndMode(sr.ReadToEnd()); - sr.Close(); - } - using( sr = new StreamReader(file, enc) ) - { - src = sr.ReadLine(); - //findText = getSafeSearch(findText); - /** - MatchCollection searchResults = re_pattern.Matches(src); - ScintillaNet.ScintillaControl sci = new ScintillaNet.ScintillaControl(); - lastResults.AddResults(sci, searchResults); - */ - while (src != null) - { - if (re_pattern.IsMatch(src)) - { - byte[] ba = Encoding.Convert(enc, Encoding.Default, enc.GetBytes(src)); - src = Console.Out.Encoding.GetString(ba); - Match m = re_pattern.Match(src); - int pos = position + m.Index; - lastResults.AddResult(file, line, pos, src, m); - //Console.WriteLine(file+":"+line+": "+src.TrimEnd()); - } - position += src.Length+lineEndChars; - line++; - src = sr.ReadLine(); - - } - - sr.Close(); - } - } - if (!recursive) - return; - - // explore subfolders - string[] dirs = Directory.GetDirectories(path); - foreach(string dir in dirs) - { - if (!known.Contains(dir)) ExploreFolder(dir); - } - } - - static int getLineEndMode(string input) - { - if (input.IndexOf("\n\r") > -1 || input.IndexOf("\r\n") > -1) - { - return 2; - } - else - { - return 1; - } - } - - /// - /// Adapted from FlashDevelop: FileSystem.cs - /// Detects the file encoding from the file data. - /// - static Encoding GetEncoding(string file) - { - byte[] bom = new byte[4]; - System.IO.FileStream fs = new System.IO.FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); - if (fs.CanSeek) - { - fs.Read(bom, 0, 4); fs.Close(); - if ((bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf)) - { - return Encoding.UTF8; - } - else if ((bom[0] == 0xff && bom[1] == 0xfe)) - { - return Encoding.Unicode; - } - else if ((bom[0] == 0xfe && bom[1] == 0xff)) - { - return Encoding.BigEndianUnicode; - } - else if ((bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0xfe && bom[3] == 0x76)) - { - return Encoding.UTF7; - } - else - { - return Encoding.Default; - } - } - else - { - return Encoding.Default; - } - } - - - /// - /// THIS FUNCTION IS COMPLETE!! - /// - /// - /// - public static FindResults GetSearchResults(string folder, string input, string mask, bool isRecursive, bool isRegex, bool isWholeWord, bool isIgnoreCase) - { - fileMask = mask; - pattern = input; - if (!isRegex) pattern = Regex.Escape(pattern); - if (isWholeWord) pattern = "(? - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6} - Library - Properties - FindReplaceEx - FindReplaceEx - v2.0 - 512 - - - - - true - full - false - ..\..\..\FlashDevelop\Bin\Debug\Plugins\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\..\..\FlashDevelop\Bin\Debug\Plugins\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - - - - - - - - - - UserControl - - - - True - True - Resources.resx - - - - - - - - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93} - FlashDevelop - - - {4EBF2653-9654-4E40-880E-0046B3D6210E} - ASCompletion - - - {61885F70-B4DC-4B44-852D-5D6D03F2A734} - PluginCore - - - - - - - - PluginUI.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - - - Designer - - - - - \ No newline at end of file diff --git a/ findandreplaceex/Backup/PluginMain.cs b/ findandreplaceex/Backup/PluginMain.cs deleted file mode 100644 index 120416c..0000000 --- a/ findandreplaceex/Backup/PluginMain.cs +++ /dev/null @@ -1,618 +0,0 @@ -/* - * Advanced Find and Replace Plugin for FlashDevelop3 - * Author: Itzik Arzoni IAP (itzikiap@gmail.com) - * - */ - -using System; -using System.Windows.Forms; -using System.ComponentModel; -using System.Text.RegularExpressions; -using System.Collections; -//using System.Threading; -using System.Drawing; -using System.IO; -using WeifenLuo.WinFormsUI; -using WeifenLuo.WinFormsUI.Docking; -using PluginCore; -using PluginCore.Controls; -using ScintillaNet; -using PluginCore.Localization; -using PluginCore.Helpers; -using PluginCore.Managers; -using PluginCore.Utilities; -using ASCompletion.Context; -using ASCompletion.Model; -using System.Collections.Generic; -using FindReplaceEx.Resources; - -namespace FindReplaceEx -{ - public class PluginMain : IPlugin - { - - private Timer typingTimer; - private string pluginName = "FindReplaceEx"; - private string pluginGuid = "0a84cd4e-64d8-4669-a082-8238aee69658"; - private string pluginAuth = "Itzik Arzoni"; - private string pluginHelp = "http://www.flashdevelop.org/community/viewtopic.php?t=485"; - private string pluginDesc = "Find and Replace plugin Expanded"; - private EventType eventMask = EventType.UIRefresh | EventType.ApplySettings | EventType.Keys; - private DockContent pluginPanel; - private PluginUI pluginUI; - private String settingFilename; - private Image pluginImage; - private Settings settingObject; - - private string[] classPaths; - - private FindResults results; - - #region RequiredPluginVariables - - public string Name - { - get { return this.pluginName; } - } - - public string Guid - { - get { return this.pluginGuid; } - } - - public string Author - { - get { return this.pluginAuth; } - } - - public string Description - { - get { return this.pluginDesc; } - } - - public string Help - { - get { return this.pluginHelp; } - } - - public EventType EventMask - { - get { return this.eventMask; } - } - - [Browsable(false)] - public DockContent Panel - { - get { return this.pluginPanel; } - } - - #endregion - - #region extra properties - public IMainForm MainForm - { - get { return PluginBase.MainForm; } - } - - [Browsable(false)] - public PluginUI PluginUI - { - get { return this.pluginUI; } - } - - /// - /// a reference to the currently active acientilla control - /// - public ScintillaControl CurSciControl - { - get - { - // current active document - ITabbedDocument doc = MainForm.CurrentDocument; - ScintillaControl sci = doc.SciControl; - return sci; - } - } - - - - #endregion - - - #region Required Methods - - /// - /// Initializes the plugin - /// - public void Initialize() - { - this.InitBasics(); - this.LoadSettings(); - this.AddEventHandlers(); - this.CreateMenuItem(); - this.CreatePluginPanel(); - - this.typingTimer = new Timer(); - this.typingTimer.Enabled = false; - this.typingTimer.Tick += delegate { this.TypingTimerTick(); }; - } - - /// - /// Disposes the plugin - /// - public void Dispose() - { - this.SaveSettings(); - this.pluginUI.Terminate(); - } - - /// - /// Handles the incoming events - /// - public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = null; - if (document != null) - { - doc = document.SciControl; - } - - switch (e.Type) - { - - case EventType.ApplySettings: - UpdateSettings(); - break; - - case EventType.UIRefresh: - try - { - if (pluginPanel.Visible && !(MainForm == null)) - { - if (doc.SelectionStart == doc.SelectionEnd) - { - if (settingObject.FeedOnCaret) - { - typingTimer.Stop(); - typingTimer.Start(); - } - pluginUI.SelectionChanged(false); - } - else - { - pluginUI.SelectionChanged(); - } - } - } - catch - { - // ignore any error - } - - break; - case EventType.Keys: - Keys key = ((KeyEvent)e).Value; - if (key == settingObject.ReplaceShortcut) - { - pluginUI.EnableFocus(true); - e.Handled = false; - } - else if (key == settingObject.FindShortcut) - { - pluginUI.EnableFocus(); - e.Handled = true; - } - break; - - } - } - - private void UpdateSettings() - { - this.pluginUI.UpdateSettings(settingObject); - - this.typingTimer.Interval = settingObject.TypingTimerInterval; - } - - #endregion - - #region Custom Methods - - /// - /// Initializes important variables - /// - public void InitBasics() - { - InitLocalization(); - String dataPath = Path.Combine(PathHelper.DataDir, "FindReplaceEx"); - if (!Directory.Exists(dataPath)) Directory.CreateDirectory(dataPath); - this.settingFilename = Path.Combine(dataPath, "Settings.fdb"); - this.pluginImage = PluginBase.MainForm.FindImage("484|12|4|-1"); - } - - - /// - /// Initializes the localization of the plugin - /// - public void InitLocalization() - { - LocaleVersion locale = PluginBase.MainForm.Settings.LocaleVersion; - switch (locale) - { - /* - case LocaleVersion.fi_FI : - // We have Finnish available... or not. :) - LocaleHelper.Initialize(LocaleVersion.fi_FI); - break; - */ - default: - // Plugins should default to English... - LocaleHelper.Initialize(LocaleVersion.en_US); - break; - } - this.pluginDesc = LocaleHelper.GetString("Info.Description"); - } - - - /// - /// Adds the required event handlers - /// - public void AddEventHandlers() - { - EventManager.AddEventHandler(this, eventMask); - } - - /// - /// Creates a plugin panel for the plugin - /// - public void CreatePluginPanel() - { - this.pluginUI = new PluginUI(this); - this.pluginUI.Text = "Advanced F&R"; - this.pluginPanel = PluginBase.MainForm.CreateDockablePanel(this.pluginUI, this.pluginGuid, this.pluginImage, DockState.DockBottomAutoHide); - } - - /// - /// Creates a menu item for the plugin and adds a ignored key - /// - public void CreateMenuItem() - { - //String title = LocalHelper.GetString("Label.ViewMenuItem"); - String title = "Advanced Find And Replace"; - ToolStripMenuItem viewMenu = (ToolStripMenuItem)PluginBase.MainForm.FindMenuItem("ViewMenu"); - viewMenu.DropDownItems.Add(new ToolStripMenuItem(title, this.pluginImage, new EventHandler(this.OpenPanel))); - } - - /// - /// Loads the plugin settings - /// - public void LoadSettings() - { - this.settingObject = new Settings(); - if (!File.Exists(this.settingFilename)) this.SaveSettings(); - else - { - Object obj = ObjectSerializer.Deserialize(this.settingFilename, this.settingObject); - this.settingObject = (Settings)obj; - } - } - - /// - /// Saves the plugin settings - /// - public void SaveSettings() - { - ObjectSerializer.Serialize(this.settingFilename, this.settingObject); - } - - /// - /// Opens the plugin panel if closed - /// - public void OpenPanel(Object sender, System.EventArgs e) - { - this.pluginPanel.Show(); - } - - #endregion - - - #region sync project explorer code - - /// - /// Updates the class paths from ther project explorer to use in "Find In Files" - /// - public void UpdateProjectClassPaths() - { - List classPath = ASContext.Context.Classpath; - - string[] paths = new string[classPath.Count]; - int i = 0; - - foreach (PathModel path in classPath) - { - paths.SetValue(path.Path, i++); - } -/* localClassPaths = (projectInfo["classpaths"]) as string[]; - string[] globalPaths = globalClassPaths.Split(';'); - classPaths = new string[localClassPaths.Length + globalPaths.Length]; - localClassPaths.CopyTo(classPaths, 0); - globalPaths.CopyTo(classPaths,localClassPaths.Length);*/ - pluginUI.UpdateFolderClassPaths(paths); - } - - #endregion - - #region Find and Replace commands - - /// - /// Event that happens several milliseconds after typing was stopped - /// It update the find input box - /// - private void TypingTimerTick() - { - typingTimer.Stop(); - SetFindTextInDocument(); - } - - /// - /// update the find input box according to the word that is under the cursor - /// - public void SetFindTextInDocument() - { - // current active document - ITabbedDocument doc = MainForm.CurrentDocument; - if (doc != null) - { - ScintillaControl Sci = doc.SciControl; - string text = Sci.GetWordFromPosition(Sci.CurrentPos + 1); - SetFindTextInDocument(text); - } - } - - /// - /// updates the find input box according to a desired text - /// - /// Text to find - public void SetFindTextInDocument(string Text) - { - if (Text != null) - pluginUI.SetFindText(Text); - } - - /// - /// Initiate a search for a text - /// - /// Text to find - public void SearchTextInDocument(string text) - { - if (text.Length > 1) - { - SetFindTextInDocument(text); - } - else - { - SetFindTextInDocument(); - } - pluginUI.ListAllFindText(); - } - - /// - /// Get the options to add to the regexp search according to user selection - /// - /// Regexp options with the current choice - private RegexOptions GetRegexOptions() - { - RegexOptions options = RegexOptions.None; - if (!pluginUI.MatchCase) - options = options | RegexOptions.IgnoreCase; - return options; - } - - /// - /// gets a search string that is safe to searchs - /// - /// - /// - private string getSafeSearch(string input) - { - if (!pluginUI.RegExp) - { - input = Regex.Escape(input); - } - if (pluginUI.WholeWord) - { - input = "(? - /// gets a collection of results based on input text - /// - /// Text to find - /// results - public FindResults GetResultsList(string findText) - { - return GetResultsList(CurSciControl, findText); - } - - /// - /// gets a collection of results based on input text in a specific scientilla control - /// - /// Scientilla control to perform the search - /// text to find - /// results - public FindResults GetResultsList(ScintillaControl sci, string findText) - { - results = new FindResults(); - AddToResultsList(sci, findText); - //SendResults(results, "resultsListUpdate"); - return results; - } - - /// - /// gets a results list from all open docuents to the wanted text - /// - /// text to find - /// results - public FindResults GetAllDocumentsResultsList(string findText) - { - results = new FindResults(); - foreach (ITabbedDocument document in MainForm.Documents) - { - if (document.Controls.Count == 0) continue; - ScintillaControl sci = document.SciControl; - - if (sci == null) continue; - AddToResultsList(sci , findText); - } - //SendResults(results, "resultsListUpdate"); - return results; - } - - /// - /// Initiate a find in folders search - /// - /// text to find in a form of regexp expression - /// folder to search - /// set true to search subfolders - /// results - public FindResults GetFindInFolderResultsList(string pattern, string folder, bool recursive) - { - return GetFindInFolderResultsList(pattern, folder, "*.as", recursive); - } - - /// - /// Initiate a find in folders search with different file mask - /// - /// text to find in a form of regexp expression - /// folder to search - /// mask of files to search - /// set true to search subfolders - /// results - public FindResults GetFindInFolderResultsList(string pattern, string folder, string mask, bool recursive) - { - results = FindInFiles.GetSearchResults(folder, pattern, mask, recursive, pluginUI.RegExp, pluginUI.WholeWord, pluginUI.MatchCase); - //SendResults(results, "resultsListUpdate"); - return results; - } - - /// - /// perform a search - /// - /// - /// - /// - private FindResults AddToResultsList(ScintillaControl sci, string findText) - { - try - { - string inText = sci.Text; - findText = getSafeSearch(findText); - MatchCollection searchResults = Regex.Matches(inText, findText, GetRegexOptions()); - results.AddResults(sci, searchResults); - } - catch - { - //MessageBox.Show("error in addToResultsList"); - //MainForm.AddTraceLogEntry("Error searching in file", 5); - } - return results; - } - - /// - /// focus the scintilla control and move carret to position - /// - /// position count in chars from the beginning of document - public void GotoPosAndFocus(int position) - { - try{ - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - - GotoPosAndFocus(document.SciControl, position, 0); - } - catch{ - } - - } - - /// - /// focus on a file, open it if needed and position the carret - /// - /// file to open - /// position in file - /// - public void GotoPosAndFocus(string fileName, int position, int length) - { - MainForm.OpenEditableDocument(fileName); - GotoPosAndFocus(position); - } - - /// - /// focus a needed scientilla control and position the carret - /// - /// a scientilla control to focus - /// position of the carret in the text - /// - public void GotoPosAndFocus(ScintillaNet.ScintillaControl sci, int position, int length) - { - // don't correct to multi-byte safe position (assumed correct) - int line = sci.LineFromPosition(position); - //sci.EnsureVisible(line); - sci.ExpandAllFolds(); - - sci.SetSel(position, position + length); - // sci.EnsureVisible(line); - - int top = sci.FirstVisibleLine; - int middle = top + sci.LinesOnScreen/2; - sci.LineScroll(0, line-middle); - - } - - - #endregion - - #region settings getters - public string CurFile - { - get {return MainForm.CurrentDocument.FileName; } - } - - public int CurPosition - { - get { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - return document.SciControl.CurrentPos; - } - } - - public string[] ClassPaths - { - get {return classPaths;} - } - #endregion - - - #region IPlugin Members - - - public object Settings - { - get { return settingObject; } - } - - #endregion - - #region IPlugin Members - - - public int Api - { - get { return 1; } - } - - #endregion - } -} diff --git a/ findandreplaceex/Backup/PluginUI.cs b/ findandreplaceex/Backup/PluginUI.cs deleted file mode 100644 index b95876e..0000000 --- a/ findandreplaceex/Backup/PluginUI.cs +++ /dev/null @@ -1,1799 +0,0 @@ -/* - * Created by IAP. - * User: Itzik Arzoni (itzikiap@nana.co.il) - * Date: 13/12/2005 - * Time: 21:43 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ - -using System; -using System.ComponentModel; -using System.Text.RegularExpressions; -using WeifenLuo.WinFormsUI; -using ScintillaNet; -using System.Windows.Forms; -using System.Collections; -using System.Text; -using System.Diagnostics; -using System.Collections.Generic; -using PluginCore; -using PluginCore.Managers; -using System.Drawing; -using FlashDevelop; - - -namespace FindReplaceEx -{ - /// - /// Description of PluginUI. - /// - public class PluginUI : System.Windows.Forms.DockPanelControl - { - private System.ComponentModel.IContainer components; - // reference to the plugin interface - private PluginMain plugin; - private string lastPath; - private bool replaceShown; - private TextBox findTxt; - private ToolTip toolTip; - private TabControl tabControl; - private TabPage optionsPage; - private CheckBox autoFeedChk; - private CheckBox autoChk; - private CheckBox openFilesChk; - private TabPage replacePage; - private Label resultsLbl; - private Button switchFindReplaceBtn; - private TextBox replaceTxt; - private Button replaceBtn; - private Button copyFindReplaceBtn; - private Button button1; - private Button ofrBtn; - private TabPage filterPage; - private ComboBox filterTxt; - private Button regexHelpBtn; - private TabPage foldersPage; - private TextBox fileMaskTxt; - private CheckBox searchSubfoldersChk; - private Button browseBtn; - private ComboBox folderTxt; - private CheckBox folderFilesChk; - private RadioButton checkNoneRdo; - private RadioButton checkcCustomeRdo; - private RadioButton checkFileRdo; - private RadioButton checkSelectonRdo; - private RadioButton checkFilterRdo; - private GroupBox filterGroup; - private RadioButton checkAllRdo; - private ColumnHeader at; - private ListView resultsLst; - private ColumnHeader columnLineNum; - private ColumnHeader columnFileName; - private ColumnHeader columnLineText; - private FolderBrowserDialog fileBrowserDlg; - private Button findBtn; - private CheckBox regexpChk; - private CheckBox wholeWordChk; - private CheckBox matchCaseChk; - private GroupBox findGroup; - private ColumnHeader result; - private ColumnHeader filename; - private ColumnHeader mark; - private TabPage operationsPage; - private Button deleteBtn; - private Button bookmarkBtn; - private Button clearFilterBtn; - private CheckBox regExReplaceChk; - private Button CopyResultsBtn; - private string state; -// private bool classPathRoot; - - public PluginUI(PluginMain pluginMain) - { - InitializeComponent(); - - // reference to the plugin interface - this.plugin = pluginMain; - toolTip.Active = true; - state = "<>"; - // switchFindReplaceBtn.Image = plugin.MainForm.GetSystemImage(10); - - - //resultsPanel = plugin.MainForm.FindPlugin("24df7cd8-e5f0-4171-86eb-7b2a577703ba"); - } - - #region Windows Forms Designer generated code - /// - /// This method is required for Windows Forms designer support. - /// Do not change the method contents inside the source code editor. The Forms designer might - /// not be able to load this method if it was changed manually. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.findTxt = new System.Windows.Forms.TextBox(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.checkNoneRdo = new System.Windows.Forms.RadioButton(); - this.checkcCustomeRdo = new System.Windows.Forms.RadioButton(); - this.checkFileRdo = new System.Windows.Forms.RadioButton(); - this.checkSelectonRdo = new System.Windows.Forms.RadioButton(); - this.checkFilterRdo = new System.Windows.Forms.RadioButton(); - this.folderFilesChk = new System.Windows.Forms.CheckBox(); - this.browseBtn = new System.Windows.Forms.Button(); - this.searchSubfoldersChk = new System.Windows.Forms.CheckBox(); - this.fileMaskTxt = new System.Windows.Forms.TextBox(); - this.openFilesChk = new System.Windows.Forms.CheckBox(); - this.autoChk = new System.Windows.Forms.CheckBox(); - this.autoFeedChk = new System.Windows.Forms.CheckBox(); - this.checkAllRdo = new System.Windows.Forms.RadioButton(); - this.findBtn = new System.Windows.Forms.Button(); - this.regexHelpBtn = new System.Windows.Forms.Button(); - this.regexpChk = new System.Windows.Forms.CheckBox(); - this.wholeWordChk = new System.Windows.Forms.CheckBox(); - this.matchCaseChk = new System.Windows.Forms.CheckBox(); - this.ofrBtn = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.copyFindReplaceBtn = new System.Windows.Forms.Button(); - this.replaceBtn = new System.Windows.Forms.Button(); - this.switchFindReplaceBtn = new System.Windows.Forms.Button(); - this.bookmarkBtn = new System.Windows.Forms.Button(); - this.deleteBtn = new System.Windows.Forms.Button(); - this.regExReplaceChk = new System.Windows.Forms.CheckBox(); - this.tabControl = new System.Windows.Forms.TabControl(); - this.optionsPage = new System.Windows.Forms.TabPage(); - this.replacePage = new System.Windows.Forms.TabPage(); - this.replaceTxt = new System.Windows.Forms.TextBox(); - this.filterPage = new System.Windows.Forms.TabPage(); - this.filterTxt = new System.Windows.Forms.ComboBox(); - this.clearFilterBtn = new System.Windows.Forms.Button(); - this.foldersPage = new System.Windows.Forms.TabPage(); - this.folderTxt = new System.Windows.Forms.ComboBox(); - this.operationsPage = new System.Windows.Forms.TabPage(); - this.resultsLbl = new System.Windows.Forms.Label(); - this.filterGroup = new System.Windows.Forms.GroupBox(); - this.at = new System.Windows.Forms.ColumnHeader(); - this.resultsLst = new System.Windows.Forms.ListView(); - this.mark = new System.Windows.Forms.ColumnHeader(); - this.result = new System.Windows.Forms.ColumnHeader(); - this.filename = new System.Windows.Forms.ColumnHeader(); - this.columnLineNum = new System.Windows.Forms.ColumnHeader(); - this.columnFileName = new System.Windows.Forms.ColumnHeader(); - this.columnLineText = new System.Windows.Forms.ColumnHeader(); - this.fileBrowserDlg = new System.Windows.Forms.FolderBrowserDialog(); - this.findGroup = new System.Windows.Forms.GroupBox(); - this.CopyResultsBtn = new System.Windows.Forms.Button(); - this.tabControl.SuspendLayout(); - this.optionsPage.SuspendLayout(); - this.replacePage.SuspendLayout(); - this.filterPage.SuspendLayout(); - this.foldersPage.SuspendLayout(); - this.operationsPage.SuspendLayout(); - this.filterGroup.SuspendLayout(); - this.findGroup.SuspendLayout(); - this.SuspendLayout(); - // - // findTxt - // - this.findTxt.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.findTxt.Location = new System.Drawing.Point(312, 4); - this.findTxt.Name = "findTxt"; - this.findTxt.Size = new System.Drawing.Size(476, 20); - this.findTxt.TabIndex = 0; - this.findTxt.WordWrap = false; - this.findTxt.TextChanged += new System.EventHandler(this.FindTxtTextChanged); - // - // checkNoneRdo - // - this.checkNoneRdo.AutoSize = true; - this.checkNoneRdo.BackColor = System.Drawing.Color.Transparent; - this.checkNoneRdo.Location = new System.Drawing.Point(261, 13); - this.checkNoneRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkNoneRdo.Name = "checkNoneRdo"; - this.checkNoneRdo.Size = new System.Drawing.Size(51, 17); - this.checkNoneRdo.TabIndex = 3; - this.checkNoneRdo.Text = "None"; - this.toolTip.SetToolTip(this.checkNoneRdo, "Uncheck all the entries to not replace"); - this.checkNoneRdo.UseVisualStyleBackColor = false; - this.checkNoneRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkcCustomeRdo - // - this.checkcCustomeRdo.AutoSize = true; - this.checkcCustomeRdo.BackColor = System.Drawing.Color.Transparent; - this.checkcCustomeRdo.Location = new System.Drawing.Point(159, 13); - this.checkcCustomeRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkcCustomeRdo.Name = "checkcCustomeRdo"; - this.checkcCustomeRdo.Size = new System.Drawing.Size(66, 17); - this.checkcCustomeRdo.TabIndex = 6; - this.checkcCustomeRdo.Text = "Custome"; - this.toolTip.SetToolTip(this.checkcCustomeRdo, "Default for manually checked entries."); - this.checkcCustomeRdo.UseVisualStyleBackColor = false; - this.checkcCustomeRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkFileRdo - // - this.checkFileRdo.AutoSize = true; - this.checkFileRdo.BackColor = System.Drawing.Color.Transparent; - this.checkFileRdo.Checked = true; - this.checkFileRdo.Location = new System.Drawing.Point(2, 13); - this.checkFileRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkFileRdo.Name = "checkFileRdo"; - this.checkFileRdo.Size = new System.Drawing.Size(41, 17); - this.checkFileRdo.TabIndex = 4; - this.checkFileRdo.TabStop = true; - this.checkFileRdo.Text = "File"; - this.toolTip.SetToolTip(this.checkFileRdo, "Check all the entries of the current file. (Same as All if \"search all opened fil" + - "es\" is unchecked)"); - this.checkFileRdo.UseVisualStyleBackColor = false; - this.checkFileRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkSelectonRdo - // - this.checkSelectonRdo.AutoSize = true; - this.checkSelectonRdo.BackColor = System.Drawing.Color.Transparent; - this.checkSelectonRdo.Location = new System.Drawing.Point(43, 13); - this.checkSelectonRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkSelectonRdo.Name = "checkSelectonRdo"; - this.checkSelectonRdo.Size = new System.Drawing.Size(69, 17); - this.checkSelectonRdo.TabIndex = 5; - this.checkSelectonRdo.Text = "Selection"; - this.toolTip.SetToolTip(this.checkSelectonRdo, "Check all the checkboxes that inside the selection."); - this.checkSelectonRdo.UseVisualStyleBackColor = false; - this.checkSelectonRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkFilterRdo - // - this.checkFilterRdo.AutoSize = true; - this.checkFilterRdo.BackColor = System.Drawing.Color.Transparent; - this.checkFilterRdo.Location = new System.Drawing.Point(112, 13); - this.checkFilterRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkFilterRdo.Name = "checkFilterRdo"; - this.checkFilterRdo.Size = new System.Drawing.Size(47, 17); - this.checkFilterRdo.TabIndex = 6; - this.checkFilterRdo.Text = "Filter"; - this.toolTip.SetToolTip(this.checkFilterRdo, "Check the entries that match the filter string"); - this.checkFilterRdo.UseVisualStyleBackColor = false; - this.checkFilterRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // folderFilesChk - // - this.folderFilesChk.Location = new System.Drawing.Point(8, 32); - this.folderFilesChk.Name = "folderFilesChk"; - this.folderFilesChk.Size = new System.Drawing.Size(108, 24); - this.folderFilesChk.TabIndex = 9; - this.folderFilesChk.Text = "All Files in Folder"; - this.toolTip.SetToolTip(this.folderFilesChk, "Check this to set the next search to be in alll files in the above directory."); - this.folderFilesChk.CheckedChanged += new System.EventHandler(this.FolderFilesChkCheckedChanged); - // - // browseBtn - // - this.browseBtn.Location = new System.Drawing.Point(232, 32); - this.browseBtn.Name = "browseBtn"; - this.browseBtn.Size = new System.Drawing.Size(66, 23); - this.browseBtn.TabIndex = 1; - this.browseBtn.Text = "Browse..."; - this.toolTip.SetToolTip(this.browseBtn, "Browse for a folder to search in."); - this.browseBtn.Click += new System.EventHandler(this.BrowseBtnClick); - // - // searchSubfoldersChk - // - this.searchSubfoldersChk.Checked = true; - this.searchSubfoldersChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.searchSubfoldersChk.Location = new System.Drawing.Point(104, 32); - this.searchSubfoldersChk.Name = "searchSubfoldersChk"; - this.searchSubfoldersChk.Size = new System.Drawing.Size(80, 24); - this.searchSubfoldersChk.TabIndex = 9; - this.searchSubfoldersChk.Text = "Subfolders"; - this.toolTip.SetToolTip(this.searchSubfoldersChk, "Also search in subfolders."); - this.searchSubfoldersChk.CheckedChanged += new System.EventHandler(this.FolderFilesChkCheckedChanged); - // - // fileMaskTxt - // - this.fileMaskTxt.Location = new System.Drawing.Point(177, 33); - this.fileMaskTxt.Name = "fileMaskTxt"; - this.fileMaskTxt.Size = new System.Drawing.Size(48, 20); - this.fileMaskTxt.TabIndex = 10; - this.fileMaskTxt.Text = "*.as"; - this.toolTip.SetToolTip(this.fileMaskTxt, "Specify the file mask to search in."); - // - // openFilesChk - // - this.openFilesChk.Checked = true; - this.openFilesChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.openFilesChk.Location = new System.Drawing.Point(8, 8); - this.openFilesChk.Name = "openFilesChk"; - this.openFilesChk.Size = new System.Drawing.Size(142, 24); - this.openFilesChk.TabIndex = 9; - this.openFilesChk.Text = "All Opened Files"; - this.toolTip.SetToolTip(this.openFilesChk, "Show the reslts from all opened files."); - this.openFilesChk.CheckedChanged += new System.EventHandler(this.OptionsChkCheckedChanged); - // - // autoChk - // - this.autoChk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.autoChk.Checked = true; - this.autoChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.autoChk.Location = new System.Drawing.Point(161, 28); - this.autoChk.Name = "autoChk"; - this.autoChk.Size = new System.Drawing.Size(135, 16); - this.autoChk.TabIndex = 4; - this.autoChk.Tag = ""; - this.autoChk.Text = "Automatic find"; - this.toolTip.SetToolTip(this.autoChk, "List results immediately while typing in the find box."); - // - // autoFeedChk - // - this.autoFeedChk.Checked = true; - this.autoFeedChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.autoFeedChk.Location = new System.Drawing.Point(161, 8); - this.autoFeedChk.Name = "autoFeedChk"; - this.autoFeedChk.Size = new System.Drawing.Size(135, 18); - this.autoFeedChk.TabIndex = 21; - this.autoFeedChk.Tag = ""; - this.autoFeedChk.Text = "Update as you type"; - this.toolTip.SetToolTip(this.autoFeedChk, "Update the find box when typing in the editor"); - // - // checkAllRdo - // - this.checkAllRdo.AutoSize = true; - this.checkAllRdo.BackColor = System.Drawing.Color.Transparent; - this.checkAllRdo.Location = new System.Drawing.Point(225, 13); - this.checkAllRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkAllRdo.Name = "checkAllRdo"; - this.checkAllRdo.Size = new System.Drawing.Size(36, 17); - this.checkAllRdo.TabIndex = 2; - this.checkAllRdo.Text = "All"; - this.toolTip.SetToolTip(this.checkAllRdo, "Check all the entries to replace"); - this.checkAllRdo.UseVisualStyleBackColor = false; - this.checkAllRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // findBtn - // - this.findBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.findBtn.Location = new System.Drawing.Point(794, 2); - this.findBtn.Name = "findBtn"; - this.findBtn.Size = new System.Drawing.Size(56, 22); - this.findBtn.TabIndex = 1; - this.findBtn.Text = "Find"; - this.toolTip.SetToolTip(this.findBtn, "Find the wanted phrase"); - this.findBtn.Click += new System.EventHandler(this.FindBtnClick); - // - // regexHelpBtn - // - this.regexHelpBtn.Location = new System.Drawing.Point(282, 8); - this.regexHelpBtn.Name = "regexHelpBtn"; - this.regexHelpBtn.Size = new System.Drawing.Size(19, 21); - this.regexHelpBtn.TabIndex = 7; - this.regexHelpBtn.Text = "?"; - this.toolTip.SetToolTip(this.regexHelpBtn, "Help about regular expressions"); - this.regexHelpBtn.Click += new System.EventHandler(this.RegexHelpBtnClick); - // - // regexpChk - // - this.regexpChk.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.regexpChk.Location = new System.Drawing.Point(178, 12); - this.regexpChk.Name = "regexpChk"; - this.regexpChk.Size = new System.Drawing.Size(54, 24); - this.regexpChk.TabIndex = 4; - this.regexpChk.Tag = ""; - this.regexpChk.Text = "RegEx"; - this.toolTip.SetToolTip(this.regexpChk, "Threat the find text as Regular Expression"); - this.regexpChk.CheckedChanged += new System.EventHandler(this.regexpChk_CheckedChanged); - // - // wholeWordChk - // - this.wholeWordChk.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.wholeWordChk.Location = new System.Drawing.Point(92, 12); - this.wholeWordChk.Name = "wholeWordChk"; - this.wholeWordChk.Size = new System.Drawing.Size(84, 24); - this.wholeWordChk.TabIndex = 3; - this.wholeWordChk.Tag = ""; - this.wholeWordChk.Text = "Whole Word"; - this.toolTip.SetToolTip(this.wholeWordChk, "Search for whole word only"); - // - // matchCaseChk - // - this.matchCaseChk.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.matchCaseChk.Location = new System.Drawing.Point(4, 12); - this.matchCaseChk.Name = "matchCaseChk"; - this.matchCaseChk.Size = new System.Drawing.Size(88, 24); - this.matchCaseChk.TabIndex = 2; - this.matchCaseChk.Tag = ""; - this.matchCaseChk.Text = "Match Case"; - this.toolTip.SetToolTip(this.matchCaseChk, "Ignore the case OF cHaraCtERs"); - // - // ofrBtn - // - this.ofrBtn.BackColor = System.Drawing.Color.Silver; - this.ofrBtn.Location = new System.Drawing.Point(240, 8); - this.ofrBtn.Name = "ofrBtn"; - this.ofrBtn.Size = new System.Drawing.Size(64, 32); - this.ofrBtn.TabIndex = 7; - this.ofrBtn.Text = "Open Files && Search "; - this.toolTip.SetToolTip(this.ofrBtn, "Open all the files in the results list and redo he search"); - this.ofrBtn.UseVisualStyleBackColor = false; - this.ofrBtn.Click += new System.EventHandler(this.OfrBtnClick); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(96, 32); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(40, 27); - this.button1.TabIndex = 7; - this.button1.Text = "Clear"; - this.toolTip.SetToolTip(this.button1, "Copies the text from the find box"); - this.button1.Click += new System.EventHandler(this.Button1Click); - // - // copyFindReplaceBtn - // - this.copyFindReplaceBtn.Location = new System.Drawing.Point(56, 32); - this.copyFindReplaceBtn.Name = "copyFindReplaceBtn"; - this.copyFindReplaceBtn.Size = new System.Drawing.Size(40, 27); - this.copyFindReplaceBtn.TabIndex = 7; - this.copyFindReplaceBtn.Text = "Copy"; - this.toolTip.SetToolTip(this.copyFindReplaceBtn, "Copies the text from the find box"); - this.copyFindReplaceBtn.Click += new System.EventHandler(this.copyFindReplaceBtnClick); - // - // replaceBtn - // - this.replaceBtn.Location = new System.Drawing.Point(242, 8); - this.replaceBtn.Name = "replaceBtn"; - this.replaceBtn.Size = new System.Drawing.Size(59, 23); - this.replaceBtn.TabIndex = 1; - this.replaceBtn.Text = "Replace"; - this.toolTip.SetToolTip(this.replaceBtn, "Replace the selected text in all the checked entries"); - this.replaceBtn.Click += new System.EventHandler(this.ReplaceBtnClick); - // - // switchFindReplaceBtn - // - this.switchFindReplaceBtn.Location = new System.Drawing.Point(8, 32); - this.switchFindReplaceBtn.Name = "switchFindReplaceBtn"; - this.switchFindReplaceBtn.Size = new System.Drawing.Size(48, 27); - this.switchFindReplaceBtn.TabIndex = 7; - this.switchFindReplaceBtn.Text = "Switch"; - this.toolTip.SetToolTip(this.switchFindReplaceBtn, "Switches the text between find and replace"); - this.switchFindReplaceBtn.Click += new System.EventHandler(this.SwtchFindReplaceBtnClick); - // - // bookmarkBtn - // - this.bookmarkBtn.Location = new System.Drawing.Point(8, 7); - this.bookmarkBtn.Name = "bookmarkBtn"; - this.bookmarkBtn.Size = new System.Drawing.Size(75, 23); - this.bookmarkBtn.TabIndex = 0; - this.bookmarkBtn.Text = "Bookmark"; - this.toolTip.SetToolTip(this.bookmarkBtn, "Bookmark all the selected items"); - this.bookmarkBtn.UseVisualStyleBackColor = true; - this.bookmarkBtn.Click += new System.EventHandler(this.bookmarkBtn_Click); - // - // deleteBtn - // - this.deleteBtn.Location = new System.Drawing.Point(89, 7); - this.deleteBtn.Name = "deleteBtn"; - this.deleteBtn.Size = new System.Drawing.Size(75, 23); - this.deleteBtn.TabIndex = 1; - this.deleteBtn.Text = "Delete"; - this.toolTip.SetToolTip(this.deleteBtn, "Delete all selected line"); - this.deleteBtn.UseVisualStyleBackColor = true; - this.deleteBtn.Click += new System.EventHandler(this.deleteBtn_Click); - // - // regExReplaceChk - // - this.regExReplaceChk.AutoSize = true; - this.regExReplaceChk.Location = new System.Drawing.Point(138, 38); - this.regExReplaceChk.Name = "regExReplaceChk"; - this.regExReplaceChk.Size = new System.Drawing.Size(96, 17); - this.regExReplaceChk.TabIndex = 8; - this.regExReplaceChk.Text = "RegEx replace"; - this.toolTip.SetToolTip(this.regExReplaceChk, "If checked, you can use searched groups from the match in your replace. \\n Write " + - "$1 to insert the text from the first group, and so on."); - this.regExReplaceChk.UseVisualStyleBackColor = true; - // - // tabControl - // - this.tabControl.Controls.Add(this.optionsPage); - this.tabControl.Controls.Add(this.replacePage); - this.tabControl.Controls.Add(this.filterPage); - this.tabControl.Controls.Add(this.foldersPage); - this.tabControl.Controls.Add(this.operationsPage); - this.tabControl.Location = new System.Drawing.Point(0, 43); - this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 0; - this.tabControl.Size = new System.Drawing.Size(312, 90); - this.tabControl.TabIndex = 5; - this.tabControl.SelectedIndexChanged += new System.EventHandler(this.TabControlSelectedIndexChanged); - // - // optionsPage - // - this.optionsPage.Controls.Add(this.autoFeedChk); - this.optionsPage.Controls.Add(this.autoChk); - this.optionsPage.Controls.Add(this.openFilesChk); - this.optionsPage.Location = new System.Drawing.Point(4, 22); - this.optionsPage.Name = "optionsPage"; - this.optionsPage.Size = new System.Drawing.Size(304, 64); - this.optionsPage.TabIndex = 2; - this.optionsPage.Text = "Options"; - this.optionsPage.UseVisualStyleBackColor = true; - // - // replacePage - // - this.replacePage.Controls.Add(this.regExReplaceChk); - this.replacePage.Controls.Add(this.switchFindReplaceBtn); - this.replacePage.Controls.Add(this.replaceTxt); - this.replacePage.Controls.Add(this.replaceBtn); - this.replacePage.Controls.Add(this.copyFindReplaceBtn); - this.replacePage.Controls.Add(this.button1); - this.replacePage.Controls.Add(this.ofrBtn); - this.replacePage.Location = new System.Drawing.Point(4, 22); - this.replacePage.Name = "replacePage"; - this.replacePage.Size = new System.Drawing.Size(304, 64); - this.replacePage.TabIndex = 0; - this.replacePage.Text = "Replace"; - this.replacePage.UseVisualStyleBackColor = true; - // - // replaceTxt - // - this.replaceTxt.Location = new System.Drawing.Point(4, 8); - this.replaceTxt.Name = "replaceTxt"; - this.replaceTxt.Size = new System.Drawing.Size(238, 20); - this.replaceTxt.TabIndex = 0; - this.replaceTxt.Text = "@FIND"; - // - // filterPage - // - this.filterPage.Controls.Add(this.filterTxt); - this.filterPage.Controls.Add(this.clearFilterBtn); - this.filterPage.Controls.Add(this.regexHelpBtn); - this.filterPage.Location = new System.Drawing.Point(4, 22); - this.filterPage.Name = "filterPage"; - this.filterPage.Size = new System.Drawing.Size(304, 64); - this.filterPage.TabIndex = 2; - this.filterPage.Text = "Filter"; - this.filterPage.UseVisualStyleBackColor = true; - // - // filterTxt - // - this.filterTxt.Items.AddRange(new object[] { - "", - "(import|new)\\s*[\\w\\.]*@FIND[\\.;]", - "(function|var)\\s*\\w*\\s*:\\s*@FIND\\s*[;\\(]"}); - this.filterTxt.Location = new System.Drawing.Point(8, 8); - this.filterTxt.Name = "filterTxt"; - this.filterTxt.Size = new System.Drawing.Size(243, 21); - this.filterTxt.TabIndex = 15; - this.filterTxt.TextChanged += new System.EventHandler(this.FilterTxtTextChanged); - // - // clearFilterBtn - // - this.clearFilterBtn.Location = new System.Drawing.Point(257, 8); - this.clearFilterBtn.Name = "clearFilterBtn"; - this.clearFilterBtn.Size = new System.Drawing.Size(19, 21); - this.clearFilterBtn.TabIndex = 7; - this.clearFilterBtn.Text = "X"; - this.clearFilterBtn.Click += new System.EventHandler(this.clearFilterBtn_Click); - // - // foldersPage - // - this.foldersPage.Controls.Add(this.fileMaskTxt); - this.foldersPage.Controls.Add(this.searchSubfoldersChk); - this.foldersPage.Controls.Add(this.browseBtn); - this.foldersPage.Controls.Add(this.folderTxt); - this.foldersPage.Controls.Add(this.folderFilesChk); - this.foldersPage.Location = new System.Drawing.Point(4, 22); - this.foldersPage.Name = "foldersPage"; - this.foldersPage.Size = new System.Drawing.Size(304, 64); - this.foldersPage.TabIndex = 1; - this.foldersPage.Text = "Folders"; - this.foldersPage.UseVisualStyleBackColor = true; - // - // folderTxt - // - this.folderTxt.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.folderTxt.Location = new System.Drawing.Point(4, 8); - this.folderTxt.Name = "folderTxt"; - this.folderTxt.Size = new System.Drawing.Size(296, 21); - this.folderTxt.TabIndex = 2; - this.folderTxt.SelectedIndexChanged += new System.EventHandler(this.FolderTxtSelectedIndexChanged); - // - // operationsPage - // - this.operationsPage.Controls.Add(this.CopyResultsBtn); - this.operationsPage.Controls.Add(this.deleteBtn); - this.operationsPage.Controls.Add(this.bookmarkBtn); - this.operationsPage.Location = new System.Drawing.Point(4, 22); - this.operationsPage.Name = "operationsPage"; - this.operationsPage.Padding = new System.Windows.Forms.Padding(3); - this.operationsPage.Size = new System.Drawing.Size(304, 64); - this.operationsPage.TabIndex = 3; - this.operationsPage.Text = "Operations"; - this.operationsPage.UseVisualStyleBackColor = true; - // - // resultsLbl - // - this.resultsLbl.AutoSize = true; - this.resultsLbl.Location = new System.Drawing.Point(38, 0); - this.resultsLbl.Name = "resultsLbl"; - this.resultsLbl.Size = new System.Drawing.Size(19, 13); - this.resultsLbl.TabIndex = 8; - this.resultsLbl.Text = "----"; - // - // filterGroup - // - this.filterGroup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.filterGroup.Controls.Add(this.resultsLbl); - this.filterGroup.Controls.Add(this.checkFilterRdo); - this.filterGroup.Controls.Add(this.checkSelectonRdo); - this.filterGroup.Controls.Add(this.checkFileRdo); - this.filterGroup.Controls.Add(this.checkcCustomeRdo); - this.filterGroup.Controls.Add(this.checkAllRdo); - this.filterGroup.Controls.Add(this.checkNoneRdo); - this.filterGroup.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.filterGroup.Location = new System.Drawing.Point(0, 278); - this.filterGroup.Name = "filterGroup"; - this.filterGroup.Size = new System.Drawing.Size(312, 43); - this.filterGroup.TabIndex = 11; - this.filterGroup.TabStop = false; - this.filterGroup.Text = "Filter"; - // - // at - // - this.at.Text = "@"; - this.at.Width = 51; - // - // resultsLst - // - this.resultsLst.Alignment = System.Windows.Forms.ListViewAlignment.SnapToGrid; - this.resultsLst.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.resultsLst.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.mark, - this.at, - this.result, - this.filename}); - this.resultsLst.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177))); - this.resultsLst.FullRowSelect = true; - this.resultsLst.GridLines = true; - this.resultsLst.HideSelection = false; - this.resultsLst.LabelWrap = false; - this.resultsLst.Location = new System.Drawing.Point(314, 27); - this.resultsLst.Name = "resultsLst"; - this.resultsLst.ShowGroups = false; - this.resultsLst.Size = new System.Drawing.Size(540, 291); - this.resultsLst.TabIndex = 7; - this.resultsLst.UseCompatibleStateImageBehavior = false; - this.resultsLst.View = System.Windows.Forms.View.Details; - this.resultsLst.SelectedIndexChanged += new System.EventHandler(this.resultsLst_SelectedIndexChanged); - this.resultsLst.DoubleClick += new System.EventHandler(this.ResultsLstDoubleClick); - this.resultsLst.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.ResultsLstItemCheck); - this.resultsLst.MouseMove += new System.Windows.Forms.MouseEventHandler(this.ResultsLstMouseMove); - this.resultsLst.MouseLeave += new System.EventHandler(this.resultsLst_MouseLeave); - this.resultsLst.Click += new System.EventHandler(this.ResultsLstClick); - // - // mark - // - this.mark.Text = ""; - this.mark.Width = 30; - // - // result - // - this.result.Text = "Result Line"; - this.result.Width = 260; - // - // filename - // - this.filename.Text = "File Name"; - // - // columnLineNum - // - this.columnLineNum.Text = "@"; - this.columnLineNum.Width = 35; - // - // columnFileName - // - this.columnFileName.Text = "File Name"; - this.columnFileName.Width = 87; - // - // columnLineText - // - this.columnLineText.Text = "Line Text"; - this.columnLineText.Width = 351; - // - // findGroup - // - this.findGroup.Controls.Add(this.matchCaseChk); - this.findGroup.Controls.Add(this.wholeWordChk); - this.findGroup.Controls.Add(this.regexpChk); - this.findGroup.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.findGroup.Location = new System.Drawing.Point(0, 0); - this.findGroup.Name = "findGroup"; - this.findGroup.Size = new System.Drawing.Size(312, 41); - this.findGroup.TabIndex = 4; - this.findGroup.TabStop = false; - this.findGroup.Text = "Find"; - // - // CopyResultsBtn - // - this.CopyResultsBtn.Location = new System.Drawing.Point(8, 35); - this.CopyResultsBtn.Name = "CopyResultsBtn"; - this.CopyResultsBtn.Size = new System.Drawing.Size(107, 23); - this.CopyResultsBtn.TabIndex = 1; - this.CopyResultsBtn.Text = "Copy To Results"; - this.CopyResultsBtn.UseVisualStyleBackColor = true; - this.CopyResultsBtn.Click += new System.EventHandler(this.CopyResultsBtn_Click); - // - // PluginUI - // - this.BackColor = System.Drawing.SystemColors.Control; - this.Controls.Add(this.findGroup); - this.Controls.Add(this.findBtn); - this.Controls.Add(this.filterGroup); - this.Controls.Add(this.findTxt); - this.Controls.Add(this.tabControl); - this.Controls.Add(this.resultsLst); - this.Name = "PluginUI"; - this.Size = new System.Drawing.Size(854, 322); - this.tabControl.ResumeLayout(false); - this.optionsPage.ResumeLayout(false); - this.replacePage.ResumeLayout(false); - this.replacePage.PerformLayout(); - this.filterPage.ResumeLayout(false); - this.foldersPage.ResumeLayout(false); - this.foldersPage.PerformLayout(); - this.operationsPage.ResumeLayout(false); - this.filterGroup.ResumeLayout(false); - this.filterGroup.PerformLayout(); - this.findGroup.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - #region settings and updates - /// - /// udate the selected settings - /// - /// - public void UpdateSettings(Settings settingsObject) - { - autoFeedChk.Checked = settingsObject.FeedAsYouType; - - autoChk.Checked = settingsObject.FindAsYouType; - //resizeToFit = resize; - ChangeFilterPresets(settingsObject.FilterPresets); - - resultsLst.ShowGroups = settingsObject.GroupByFile; - } - - /// - /// update the class paths list for the find in folder - /// - /// new class paths - public void UpdateFolderClassPaths(string[] classPaths) - { - string[] presets = classPaths; - folderTxt.BeginUpdate(); - folderTxt.Items.Clear(); - foreach (string itemTxt in presets) - { - folderTxt.Items.Add(itemTxt); - } - folderTxt.Text = presets[0]; - lastPath = presets[0]; - folderTxt.EndUpdate(); - } - - /// - /// show or hide the folder tab - /// - /// show or hide - private void ShowFolderMode(bool flag) - { - if (flag) - { - ShowReplaceMode(false); - plugin.UpdateProjectClassPaths(); - folderFilesChk.Checked = true; - } - else - { - folderFilesChk.Checked = false; - } - } - - /// - /// focus the find text box - /// - public void EnableFocus() - { - EnableFocus(false); - } - - /// - /// focus in the find or the replace input box - /// - /// if true - focus on the replace - public void EnableFocus(bool replace) - { - this.plugin.Panel.Show(); - - if (!replace) - { - findTxt.Focus(); - } - else - { - ShowReplace = true; - replaceTxt.Focus(); - } - } - - /// - /// save the status of the panel - /// - private void SaveState() - { - if (state.IndexOf("<>") == 0) - { - string pState = ""; - if (autoChk.Checked) - pState += "A"; - if (autoFeedChk.Checked) - pState += "F"; - if (MatchCase) - pState += "I"; - if (WholeWord) - pState += "W"; - if (RegExp) - pState += "R"; - if (openFilesChk.Checked) - pState += "O"; - state = pState; - } - } - - /// - /// restore the status of the panel, after some operations that changed it - /// - private void RestoreState() - { - autoChk.Checked = state.IndexOf("A") > -1; - autoFeedChk.Checked = state.IndexOf("F") > -1; - MatchCase = state.IndexOf("I") > -1; - WholeWord = state.IndexOf("W") > -1; - RegExp = state.IndexOf("R") > -1; - openFilesChk.Checked = state.IndexOf("O") > -1; - state = "<>"; - } - - /// - /// Stops the parse timer if not enabled. - /// - public void Terminate() - { - } - - #endregion - - #region Find Code - /// - /// set the text in the find box - /// - /// new text - public void SetFindText(string newText) - { - SetFindText(newText, false); - } - - /// - /// Set the text in the find box, no matter what are the settings - /// - /// new text - /// true to force change it - public void SetFindText(string newText, bool force) - { - if ((autoFeedChk.Checked) || force) - { - if (ShowReplace) - { - replaceTxt.Text = newText; - } - else - { - findTxt.Text = newText; - } - } - } - - /// - ///lists all the results in the list box - ///given a results object - /// - public void ListAllResults(FindResults results) - { - if (state.IndexOf("<>") == 0) - { - resultsLst.BeginUpdate(); - resultsLst.Items.Clear(); - resultsLst.Groups.Clear(); - FindMatch match = results.FirstResult(); - String file = ""; - ListViewGroup gr = null; - while (match != null) - { - if (file != match.FileName) - { - file = match.FileName; - gr = new ListViewGroup(file, HorizontalAlignment.Left); - - gr.Name = file; - gr.Header = file; - this.resultsLst.Groups.Add(gr); - } - - AddMatchToGroup(gr, match); - - match = results.NextResult(); - } -// if (resultsLst.Items.Count > 0) -// resultsLst.EnsureVisible(resultsLst.Items.Count-1); - CheckListItems(); - resultsLst.EndUpdate(); - } - } - - /// - /// Finds a text in open document, or all open documents and list it. - /// using text in find input box - /// - public void ListAllFindText() - { - ListAllFindText(findTxt.Text); - } - - /// - /// Finds a text in open document, or all open documents and list it - /// - /// text to find - public void ListAllFindText(string Text) - { - ListAllFindText(Text, (plugin.Settings as Settings).IgnoreBelow); - } - - /// - /// Finds a text in open document, or all open documents and list it - /// - /// text to find - /// characters threshold - public void ListAllFindText(string Text, int minChars) - { - if (Text.Length >= minChars) - { - resultsLst.Tag = folderFilesChk.Checked ? "V": "X"; - DefaultReplaceCheck(); - FindResults results; - if (folderFilesChk.Checked) - { - results = plugin.GetFindInFolderResultsList(Text, folderTxt.Text, fileMaskTxt.Text, searchSubfoldersChk.Checked); - folderFilesChk.Checked = false; - } - else if (openFilesChk.Checked) - { - results = plugin.GetAllDocumentsResultsList(Text); - } - else - { - results = plugin.GetResultsList(Text); - } - resultsLst.Columns[2].Text = Text; - ListAllResults(results); - } - } - - /// - /// adds a match item to a list group - /// - /// a group - /// the match to add to the group - private void AddMatchToGroup(ListViewGroup gr, FindMatch match) - { - ListViewItem item = getListItemFromMatch(match); - item.Group = gr; - gr.Items.Add(item); - AddItemToList(item); - } - - /// - /// Add a list view item to the list - /// - /// A list view item to add - private void AddItemToList(ListViewItem item) - { - this.resultsLst.Items.Add(item); - } - - /// - /// Add a match item to the list - /// - /// A match item - public void AddMatchToList(FindMatch m) - { - AddItemToList(getListItemFromMatch(m)); - } - - /// - /// create a list item that represnts a match - /// - /// - /// - private ListViewItem getListItemFromMatch(FindMatch m) - { - string first = " "; - if (m.FileName == plugin.CurFile) - first = ">"; - ListViewItem item = new ListViewItem(first, 0); - item.Tag = m; - item.SubItems.Add("" + (m.Line + 1)); - item.SubItems.Add(m.LineText.Trim()); - item.SubItems.Add(m.FileName.Substring(m.FileName.LastIndexOf("\\") + 1)); - return item; - } - - /// - /// Sets the flag of "find as you type" - /// - /// New value - public void SetFindAsYouType(bool val) - { - autoChk.Checked = val; - } - - #endregion - - #region Replace code - /// - /// check the list items that need to be checked according to the settings - /// - private void CheckListItems() - { - if (state.IndexOf("<>") == 0) - { - try - { - string curFile = plugin.CurFile; - string filterText = filterTxt.Tag as string; - foreach (ListViewItem item in resultsLst.Items) - { - FindMatch m = item.Tag as FindMatch; - if (checkAllRdo.Checked) - { - item.Checked = true; - } - else if (checkNoneRdo.Checked) - { - item.Checked = false; - } - else if (checkFileRdo.Checked) - { - item.Checked = (m.FileName == curFile); - } - else if (checkSelectonRdo.Checked) - { - int selStaert = m.Scintilla.SelectionStart; - int selEnd = m.Scintilla.SelectionEnd; - bool inRange = m.Position > selStaert & m.Position < selEnd; - item.Checked = (m.FileName == curFile) & inRange; - } - else if (checkFilterRdo.Checked) - { - item.Checked = IsMatchInItem(item, 2, filterText); - - } - HilightItem(item, item.Checked); - } - UpdateStatusBar(); - } - catch - { - checkNoneRdo.Checked = true; - } - } - } - - /// - /// called when a selection was changed - /// - public void SelectionChanged() - { - SelectionChanged(true); - } - - /// - /// Called when a selection is changed in the scientilla - /// - /// Is there or isn't there a selection - public void SelectionChanged(bool flag) - { - if (flag) - { - checkSelectonRdo.Checked = true; - } - else - { - DefaultReplaceCheck(); - } - CheckListItems(); - } - - /// - /// Goes thrugh all the entries and if they are checked, it replaces the text - /// - /// the text to replace - private void ReplaceSelectedEntries(string replaceText) - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = document.SciControl; - - SaveState(); - autoFeedChk.Checked = false; - autoChk.Checked = false; - string workingFile = ""; - if (replaceShown && replaceText != "") - { - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - - // switch to the next file - if (fileName != workingFile) { - doc.EndUndoAction(); - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - } - doc.MBSafeSetSel(m.Position, m.Text); - string rep = replaceText.Clone() as string; - if (regExReplaceChk.Checked) rep = ExpandReplaceGroups(rep, m); - doc.ReplaceSel(rep); - } - } - doc.EndUndoAction(); - - } - RestoreState(); - ShowOfr(); - } - - /// - /// Replace regular expressions groups in replacement text - /// - /// Text to expand - /// Search result (for reinjecting groups) - public string ExpandReplaceGroups(string text, FindMatch match) - { - if (text.IndexOf('$') < 0) return match.Text; - for (int i = 0; i < match.Groups.Count; i++) - text = text.Replace("$" + i, match.Groups[i].Value); - return text; - } - - /// - /// Open all files found in "Find in files" and make the search again - /// - private void OpenAndResearch() - { - SaveState(); - string findText = findTxt.Text; - string workingFile = ""; - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - if (fileName != workingFile) { - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - } - } - } - RestoreState(); - ListAllFindText(findText); - ShowOfr(); - } - - /// - /// Shows the Open and replace button instead of the normal replace - /// - private void ShowOfr() - { - string fif = "" + resultsLst.Tag; - bool vis = (fif.IndexOf("V") != 0); - replaceBtn.Visible = vis; - ofrBtn.Visible = !vis; - } - - /// - /// Hides the checkboxes - /// - private void HideCheckboxes() - { - resultsLst.BeginUpdate(); - resultsLst.Visible = false; - resultsLst.CheckBoxes = false; - resultsLst.MultiSelect = false; - resultsLst.Visible = true; - resultsLst.EndUpdate(); - } - - /// - /// Shows the checkboxes in the list - /// - private void ShowCheckboxes() - { - resultsLst.BeginUpdate(); - resultsLst.Visible = false; - resultsLst.CheckBoxes = true; - resultsLst.MultiSelect = true; - CheckListItems(); - resultsLst.Visible = true; - resultsLst.EndUpdate(); - } - - /// - /// Shows or hide the replace tab - /// - /// true - shows the replace tab - private void ShowReplaceMode(bool flag) - { - DefaultReplaceCheck(); - if (flag) - { - ShowCheckboxes(); - ShowOfr(); - } - replaceShown = flag; - } - #endregion - - #region filter code - /// - /// Updates the status bar with the search results - /// - private void UpdateStatusBar() - { - this.resultsLbl.Text = "Results: "+resultsLst.Items.Count+". Selected: "+resultsLst.CheckedItems.Count; - } - - /// - /// Highlight the items in the list that match the filter - /// - /// - private void HilightFilteredList(string filterText) - { - filterTxt.Tag = ""; - DefaultReplaceCheck(); - if (filterText.Length > 0) - { - - try - { - Regex.IsMatch("test pattern", filterTxt.Text); - filterTxt.Tag = Regex.Replace(filterTxt.Text, "@FIND", findTxt.Text); - if (!checkFilterRdo.Checked) - checkFilterRdo.Checked = true; - } - catch - { - filterTxt.Tag = Regex.Unescape(filterText); - checkNoneRdo.Checked = true; - } - CheckListItems(); - } - else - { - - } - } - - /// - /// Highlight an item - /// - /// List view item to highlight - /// true - to highlight - private void HilightItem(ListViewItem item, bool isHilight) - { - Font font = item.Font; - if (isHilight) - { - item.Font = new Font(font, FontStyle.Regular); - item.BackColor = Color.Lavender; - } - else - { - item.Font = new Font(font, FontStyle.Regular); - item.BackColor = Color.White; - } - } - - /// - /// Return true if the item match the filter pattern, entered in the filter input box - /// - /// a list view item - /// index of subitem (column) - /// pattern to match - /// - private bool IsMatchInItem(ListViewItem item, int index, string pattern) - { - if (pattern.Length > 0) - { - bool ret = Regex.IsMatch(item.SubItems[index].Text, pattern, RegexOptions.IgnoreCase); - return ret; - } - else - return false; - } - - /// - /// Change the presets for the filter combo box - /// - /// - private void ChangeFilterPresets(string[] newPresets) - { - if (newPresets != null) - { - string[] presets = newPresets; - filterTxt.BeginUpdate(); - filterTxt.Items.Clear(); - foreach (string itemTxt in presets) - { - filterTxt.Items.Add(itemTxt); - } - filterTxt.EndUpdate(); - } - } - - /// - /// check the default filter mode, is "filter" if there is a pattern entered of "file" if no - /// - private void DefaultReplaceCheck() - { - - if (!replaceShown)// && !openFilesChk.Checked) - { - FilterRadioCheck(); - } - else - { - checkFileRdo.Checked = true; - } - CheckListItems(); - } - - /// - /// Check the filter radio. - /// If the RegEx is not valid it check the "file" mode - /// - private void FilterRadioCheck() - { - - ScintillaControl sci =plugin.CurSciControl; - if (sci != null) - { - if (sci.SelectionStart != sci.SelectionEnd) - { - checkSelectonRdo.Checked = true; - } - else if (filterTxt.Text.Length > 0) - { - checkFilterRdo.Checked = true; - } - else - { - checkFileRdo.Checked = true; - } - } - } - #endregion - - #region operation code - - /// - /// switch to operation mode, show the checkboxes - /// - /// is in operation - private void ShowOperationMode(bool p) - { - if (p) - { - ShowCheckboxes(); - } - } - - - /// - /// adds bookmarks to all selected items - /// - private void BookmarkSearchResults() - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = document.SciControl; - - SaveState(); - string workingFile = ""; - doc.BeginUndoAction(); - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - if (fileName != workingFile) { - doc.EndUndoAction(); - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - } - - doc.MarkerAdd(m.Line, 0); - } - } - - RestoreState(); - - ShowReplace = false; - } - - private void CopyToResultsPanel() - { - Globals.MainForm.CallCommand("PluginCommand", "ResultsPanel.ClearResults"); - foreach (ListViewItem item in resultsLst.Items) - { - FindMatch m = item.Tag as FindMatch; - int column = m.Column; - TraceManager.Add(m.FileName + ":" + (m.Line+1).ToString() + ": characters " + m.Column + "-" + (m.Column + m.Text.Length) + " : " + m.LineText.Trim(), (Int32)TraceType.Info); - } - Globals.MainForm.CallCommand("PluginCommand", "ResultsPanel.ShowResults"); - - ShowReplace = false; - } - - /// - /// Deletes all the selected (checked) results - /// - private void DeleteResultsLines() - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = document.SciControl; - - SaveState(); - string workingFile = ""; - doc.BeginUndoAction(); - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - if (fileName != workingFile) { - doc.EndUndoAction(); - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - } - doc.SetSel(m.Position, m.Position); - doc.LineDelete(); - } - } - - doc.EndUndoAction(); - RestoreState(); - ShowReplace = false; - } - #endregion - - - #region options properties - /// - /// Is the mach case sensitive - /// - public bool MatchCase - { - get {return matchCaseChk.Checked; } - set {matchCaseChk.Checked = value;} - } - /// - /// Select to match only whole word - /// - public bool WholeWord - { - get {return wholeWordChk.Checked; } - set {wholeWordChk.Checked = value; } - } - /// - /// Check as Regular expression or normal text - /// - public bool RegExp - { - get {return regexpChk.Checked; } - set {regexpChk.Checked = value; } - } - /// - /// Shows the replace tab - /// - public bool ShowReplace - { - get {return replaceShown; } - set - { - if (value) - { - tabControl.SelectedTab = replacePage; - } - else - { - tabControl.SelectedIndex = 0; - } - replaceShown = value; - } - } - /// - /// Change the search path for "Find in Files" - /// - public string SearchPath - { - get {return folderTxt.Text; } - set { folderTxt.Text = value; } - } - #endregion - - #region Controlls Events - private void FindBtnClick(object sender, System.EventArgs e) - { - ListAllFindText(findTxt.Text, 1); - //CheckListItems(); - } - - private void ResultsLstDoubleClick(object sender, System.EventArgs e) - { - - ListViewItem item = this.resultsLst.SelectedItems[0]; - if (item == null) return; - FindMatch m = (FindMatch)item.Tag; - int position = m.Position; - - plugin.GotoPosAndFocus(m.FileName, position, m.Text.Length); - } - - private void FindTxtTextChanged(object sender, System.EventArgs e) - { - if(autoChk.Checked) - { - ListAllFindText(findTxt.Text); - } - } - - private void OptionsChkCheckedChanged(object sender, System.EventArgs e) - { - ListAllFindText(); - } - - - private void ReplaceBtnClick(object sender, System.EventArgs e) - { - string find = findTxt.Text; - string replace = replaceTxt.Text; - string curFile = plugin.CurFile; - int curPosition = plugin.CurPosition; - replace = Regex.Replace(replace, "@FIND", find); - ReplaceSelectedEntries(replace); - //ListAllFindText(replace); - //replaceTxt.Text = "@FIND"; -// if (plugin.HideReplace) -// ShowReplace = false; - if ((plugin.Settings as Settings).AutoHideReplace) { - ShowReplace = false; - } - plugin.GotoPosAndFocus(curFile, curPosition, 0); - } - - private void CheckRdoCheckedChanged(object sender, System.EventArgs e) - { - CheckListItems(); - } - - private void ResultsLstClick(object sender, System.EventArgs e) - { - if (ShowReplace) - { - checkcCustomeRdo.Checked = true; - } - } - - private void ResultsLstItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e) - { - ListViewItem item = resultsLst.Items[e.Index]; - HilightItem(item, (e.NewValue == CheckState.Checked)); - } - - private void FilterTxtTextChanged(object sender, System.EventArgs e) - { - HilightFilteredList(filterTxt.Text); - } - - private void SwtchFindReplaceBtnClick(object sender, System.EventArgs e) - { - string tempTxt = replaceTxt.Text; - replaceTxt.Text = findTxt.Text; - findTxt.Text = tempTxt; - } - - private void FilterBtnClick(object sender, System.EventArgs e) - { - HilightFilteredList(filterTxt.Text); - } - - private void RegexHelpBtnClick(object sender, System.EventArgs e) - { - MessageBox.Show("\\t Matches a tab \\u0009.\n\\e Matches an escape \\u001B.\n\\040 Matches an ASCII character as octal (up to three digits); numbers with no leading zero are backreferences \n\\x20 Matches an ASCII character using hexadecimal representation.\n\\cC Matches an ASCII control character; for example, \\cC is control-C.\n\\ When followed by a character that is not recognized as an escaped character, matches that character. For example, \\*.\n---------------------\n"+ - ". Matches any character except \\n.\n[aeiou] Matches any single character included in the specified set of characters.\n[^aeiou] Matches any single character not in the specified set of characters. [0-9a-fA-F] Use of a hyphen (–) allows specification of contiguous character ranges.\n\\w Matches any word character.equivalent to [a-zA-Z_0-9].\n\\W Matches any nonword character. equivalent to [^a-zA-Z_0-9].\n\\s Matches any white-space character. Equivalent to [ \\f\\n\\r\\t\\v].\n\\S Matches any non-white-space character. Equivalent to [^ \\f\\n\\r\\t\\v].\n\\d Matches any decimal digit.\n\\D Matches any nondigit.\n---------------------\n"+ - "\\A Specifies that the match must occur at the beginning of the string\n\\Z Specifies that the match must occur at the end of the string or before \n at the end of the string\n\\z Specifies that the match must occur at the end of the string\n\\b Specifies that the match must occur on word boundaries — that is, at the first or last characters in words separated by any nonalphanumeric characters.\n\\B Specifies that the match must not occur on a \\b boundary.\n---------------------\n"+ - "* Specifies zero or more matches; Equivalent to {0,}.\\+ Specifies one or more matches; Equivalent to {1,}.\n? Specifies zero or one matches; Equivalent to {0,1}. \n{n} Specifies exactly n matches;\n{n,} Specifies at least n matches;\n{n,m} Specifies at least n, but no more than m, matches.\n---------------------\n"+ - "| Matches any one of the terms separated by the | (vertical bar) character; The leftmost successful match wins.\n(?= ) Zero-width positive lookahead assertion. Continues match only if the subexpression matches at this position on the right. \n(?! ) Zero-width negative lookahead assertion. Continues match only if the subexpression does not match at this position on the right. \n(?<= ) Zero-width positive lookbehind assertion. Continues match only if the subexpression matches at this position on the left. For example, \n(? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 140, 17 - - - 17, 17 - - \ No newline at end of file diff --git a/ findandreplaceex/Backup/Properties/AssemblyInfo.cs b/ findandreplaceex/Backup/Properties/AssemblyInfo.cs deleted file mode 100644 index c68fc1c..0000000 --- a/ findandreplaceex/Backup/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -ן»¿using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FindReplaceEx")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("I.A.P")] -[assembly: AssemblyProduct("FindReplaceEx")] -[assembly: AssemblyCopyright("Copyright ֲ© I.A.P 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(true)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("56827e36-936c-412a-a90a-22008a8d9cac")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.4.0.0")] -[assembly: AssemblyFileVersion("1.4.0.0")] diff --git a/ findandreplaceex/Backup/Properties/Resources.Designer.cs b/ findandreplaceex/Backup/Properties/Resources.Designer.cs deleted file mode 100644 index 5b54c1c..0000000 --- a/ findandreplaceex/Backup/Properties/Resources.Designer.cs +++ /dev/null @@ -1,72 +0,0 @@ -ן»¿//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3053 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindReplaceEx.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindReplaceEx.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to . - /// - internal static string Label_ViewMenuItem { - get { - return ResourceManager.GetString("Label.ViewMenuItem", resourceCulture); - } - } - } -} diff --git a/ findandreplaceex/Backup/Properties/Resources.resx b/ findandreplaceex/Backup/Properties/Resources.resx deleted file mode 100644 index 4fdb1b6..0000000 --- a/ findandreplaceex/Backup/Properties/Resources.resx +++ /dev/null @@ -1,101 +0,0 @@ -ן»¿ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ findandreplaceex/Backup/Resources/LocaleHelper.cs b/ findandreplaceex/Backup/Resources/LocaleHelper.cs deleted file mode 100644 index 6691594..0000000 --- a/ findandreplaceex/Backup/Resources/LocaleHelper.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Resources; -using System.Reflection; -using System.Collections.Generic; -using PluginCore.Localization; -using PluginCore; - -namespace FindReplaceEx.Resources -{ - class LocaleHelper - { - private static ResourceManager resources = null; - - /// - /// Initializes the localization of the plugin - /// - public static void Initialize(LocaleVersion locale) - { - String path = "FindReplaceEx.Resources." + locale.ToString(); - resources = new ResourceManager(path, Assembly.GetExecutingAssembly()); - } - - /// - /// Loads a string from the internal resources - /// - public static String GetString(String identifier) - { - return resources.GetString(identifier); - } - - } - -} diff --git a/ findandreplaceex/Backup/Resources/en_US.resX b/ findandreplaceex/Backup/Resources/en_US.resX deleted file mode 100644 index 9291e16..0000000 --- a/ findandreplaceex/Backup/Resources/en_US.resX +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Set to true to automaticaly hide the replace after a successful replace operation. - - - Set to true to feed the "find" input box as you type in the scientilla editor - - - Set to true to automaticaly feed the "find" input with the word under the cursor when the carret is moved. - - - Set true to instantly find all text as you type in the "find" input box. - - - Shortcut to open the Find panel - - - rtcut to open the Replace section in the FindReplace panel - - - Extended Find and Replace Dialog - - - &Find && Replace Ex - - - Find &&Replace Ex - - \ No newline at end of file diff --git a/ findandreplaceex/Backup/Results.cs b/ findandreplaceex/Backup/Results.cs deleted file mode 100644 index 7bd3ad1..0000000 --- a/ findandreplaceex/Backup/Results.cs +++ /dev/null @@ -1,223 +0,0 @@ -/* - * results list holder for find operations - */ - -using System; -using System.Text.RegularExpressions; -using System.Collections; -using System.IO; -//using System.Text.RegularExpressions; -using WeifenLuo.WinFormsUI; -using ScintillaNet; - -namespace FindReplaceEx -{ - /// - /// Description of Results. - /// - public class FindMatch - { - private Match match; - private string fileName; - private ScintillaControl scintilla; - private Int32 position; - private int column; - private string text; - private string lineText; - private int line; - private GroupCollection groups; - - public FindMatch(ScintillaControl sci, Match m) - { - fileName = sci.FileName as string; - scintilla = sci; - NewMatch(m); - - } - - public FindMatch(string file, int fline, int pos, string ftext, Match m) - { - match = m; - fileName = file; - line = fline; - position = pos; - text = ftext; - lineText = ftext; - if (scintilla != null) - { - column = scintilla.Column(position); - } - else - { - column = 0; - } - - } - - private void NewMatch(Match m) - { - match = m; - position = m.Index; - line = scintilla.LineFromPosition(position); - column = scintilla.Column(position); - text = m.Value; - lineText = scintilla.GetLine(line); - } - - public int Line { - get { - return line; - } - } - public Int32 Position { - get { - return position; - } - } - public int Column - { - get - { - return column; - } - } - /// - /// the "find" text iteself - /// - public string Text { - get { - return text; - } - } - public string LineText { - get { - return lineText; - } - } - public string FileName { - get { - return fileName; - } - } - public Match Match - { - get - { - return match; - } - set - { - NewMatch(value); - } - } - - public GroupCollection Groups - { - get - { - return match.Groups; - } - } - - public ScintillaControl Scintilla { - get { - return scintilla; - } - } - - - } - - public class FindResults - { - private ArrayList results; - private int lastIndex; - - - public FindResults() - { - results = new ArrayList(); - lastIndex = 0; - } - - public int AddResults(ScintillaControl sci, MatchCollection r) - { - int count = r.Count; - for (int i=0; i< count; i++) - { - Match m = r[i]; - AddResult(sci, r[i]); - } - return Count; - } - - public int AddResult(ScintillaControl sci, Match m) - { - FindMatch fm = new FindMatch(sci, m); - return AddResult(fm); - } - - public int AddResult(string file, int fline, int pos, string ftext, Match m) - { - FindMatch fm = new FindMatch(file, fline, pos, ftext, m); - return AddResult(fm); - } - - public int AddResult(FindMatch fm) - { - results.Add(fm); - return Count; - } - - public FindMatch GetResult(int index) - { - if (index < 0 || index >= Count) - { - return null; - } - lastIndex = index; - FindMatch ret = (FindMatch)results[index]; - return ret; - } - - public FindMatch FirstResult() - { - return GetResult(0); - } - - public FindMatch NextResult() - { - return GetResult(lastIndex + 1); - } - - public FindMatch PreviousResult() - { - return GetResult(lastIndex - 1); - } - - public void Filter(string filterText) - { - foreach(FindMatch m in results) - { - if (Regex.IsMatch(m.LineText, Regex.Unescape(filterText))) - results.Remove(m); - } - } - - public int Index { - get { - return lastIndex; - } - set { - if (value >= 0 || value < Count) - lastIndex = value; - } - } - - public int Count { - get { - return results.Count; - } - } - } -} diff --git a/ findandreplaceex/Backup/Settings.cs b/ findandreplaceex/Backup/Settings.cs deleted file mode 100644 index 94db5d3..0000000 --- a/ findandreplaceex/Backup/Settings.cs +++ /dev/null @@ -1,125 +0,0 @@ -ן»¿using System; -using System.Text; -using System.Collections.Generic; -using System.ComponentModel; -using PluginCore.Localization; -using System.Windows.Forms; - -namespace FindReplaceEx -{ - [Serializable] - public class Settings - { - public const Keys DEFAULT_FIND = Keys.Alt | Keys.F; - public const Keys DEFAULT_REPLACE = Keys.Alt| Keys.R; - - //public const string[] DEFAULT_FILTER_PRESETS = ["(import|new)\\s*[\\w\\.]*@FIND[\\.;],(function|var)\\s*\\w*\\s*:\\s*@FIND\\s*[;\\(]"]; - - private Keys findShortcut = DEFAULT_FIND; - private Keys replaceShortcut = DEFAULT_REPLACE; - private bool findAsYouType = true; - private bool feedWordAsYouType = true; - private bool feedWordOnCaretMovement = true; - private bool autoHideReplace = true; - private bool groupByFile = true; - private int ignoreCharactersBelow = 3; - private int typingTimerInterval = 500; - private string[] filterPresets = null; - - - [DisplayName("Find Shortcut")] - [Category("Shortcuts")] - [Description("A keybard shortcut to focus on the find input box"), DefaultValue(DEFAULT_FIND)] - public Keys FindShortcut - { - get { return findShortcut; } - set { findShortcut = value; } - } - - [DisplayName("Replace Shortcut")] - [Category("Shortcuts")] - [Description("A keybard shortcut to focus on the find input box"), DefaultValue(DEFAULT_REPLACE)] - public Keys ReplaceShortcut - { - get { return replaceShortcut; } - set { replaceShortcut = value; } - } - - [DisplayName("Find As You Type")] - [Category("Settings")] - [Description("Instantly make a search when you type in the find input. Also search when the input is change via \"FeedAsYouType\"."), DefaultValue(true)] - public bool FindAsYouType - { - get { return findAsYouType; } - set { findAsYouType = value; } - } - - [DisplayName("Feed As You Type")] - [Category("Settings")] - [Description("Feeds the Find input while you type text in the editor."), DefaultValue(true)] - public bool FeedAsYouType - { - get { return feedWordAsYouType; } - set { feedWordAsYouType = value; } - } - - [DisplayName("Feed As You Move")] - [Category("Settings")] - [Description("Feeds the Find input while you move the carret in the editor."), DefaultValue(true)] - public bool FeedOnCaret - { - get { return feedWordOnCaretMovement; } - set { feedWordOnCaretMovement = value; } - } - - [DisplayName("Auto Hide Replace")] - [Category("Settings")] - [Description("Hides the Replace tab after successful replace."), DefaultValue(true)] - public bool AutoHideReplace - { - get { return autoHideReplace; } - set { autoHideReplace = value; } - } - - - [DisplayName("Group By File")] - [Category("Settings")] - [Description("Group all the results from the same file under a title."), DefaultValue(true)] - public bool GroupByFile - { - get { return groupByFile; } - set { groupByFile = value; } - } - - - - - [DisplayName("Ignore Below")] - [Category("Settings")] - [Description("When FindAsYouType is on, set the minimum characters to activate the find."), DefaultValue(3)] - public int IgnoreBelow - { - get { return ignoreCharactersBelow; } - set { ignoreCharactersBelow = value; } - } - - [DisplayName("Typing Timer Interval")] - [Category("Settings")] - [Description("When FeedAsYouMove is true, sets the delay until the panel is refreshed. This setting is to prevent overload of searches."), DefaultValue("500")] - public int TypingTimerInterval - { - get { return typingTimerInterval; } - set { typingTimerInterval = value; } - } - - [DisplayName("Filter Presets")] - [Category("Settings")] - [Description("Write you favorite regex filters here"), DefaultValue(null)] - public string[] FilterPresets - { - get { return filterPresets; } - set { filterPresets = value; } - } - } - -} diff --git a/ findandreplaceex/Backup/app.config b/ findandreplaceex/Backup/app.config deleted file mode 100644 index df20690..0000000 --- a/ findandreplaceex/Backup/app.config +++ /dev/null @@ -1,3 +0,0 @@ -ן»¿ - - diff --git a/ findandreplaceex/FindInFiles.cs b/ findandreplaceex/FindInFiles.cs deleted file mode 100644 index ee4db5e..0000000 --- a/ findandreplaceex/FindInFiles.cs +++ /dev/null @@ -1,192 +0,0 @@ -/* - * FindTool - Find In Files utility - * Author: Philippe Elsass - */ -using System; -using System.IO; -using System.Collections; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading; - -namespace FindReplaceEx -{ - class FindInFiles - { - // already explored pathes - static ArrayList known; - static FindResults lastResults; - // parameters - static Regex re_pattern; - static string fileMask; - static string pattern; - static bool recursive; - - - /// - /// Recursively convert classes - /// - /// folder to convert - static void ExploreFolder(string path) - { - known.Add(path); - - // convert classes - string[] files = Directory.GetFiles(path, fileMask); - string src; - Encoding enc; - int line = 0; - int position = 0; - int lineEndChars = 0; - TextReader sr; - //lastResults = new FindResults(); - foreach(string file in files) - { - line = 0; - position = 0; - enc = GetEncoding(file); - using( sr = new StreamReader(file, enc) ) - { - - lineEndChars = getLineEndMode(sr.ReadToEnd()); - sr.Close(); - } - using( sr = new StreamReader(file, enc) ) - { - src = sr.ReadLine(); - //findText = getSafeSearch(findText); - /** - MatchCollection searchResults = re_pattern.Matches(src); - ScintillaNet.ScintillaControl sci = new ScintillaNet.ScintillaControl(); - lastResults.AddResults(sci, searchResults); - */ - while (src != null) - { - if (re_pattern.IsMatch(src)) - { - byte[] ba = Encoding.Convert(enc, Encoding.Default, enc.GetBytes(src)); - src = Console.Out.Encoding.GetString(ba); - Match m = re_pattern.Match(src); - int pos = position + m.Index; - lastResults.AddResult(file, line, pos, src, m); - //Console.WriteLine(file+":"+line+": "+src.TrimEnd()); - } - position += src.Length+lineEndChars; - line++; - src = sr.ReadLine(); - - } - - sr.Close(); - } - } - if (!recursive) - return; - - // explore subfolders - string[] dirs = Directory.GetDirectories(path); - foreach(string dir in dirs) - { - if (!known.Contains(dir)) ExploreFolder(dir); - } - } - - static int getLineEndMode(string input) - { - if (input.IndexOf("\n\r") > -1 || input.IndexOf("\r\n") > -1) - { - return 2; - } - else - { - return 1; - } - } - - /// - /// Adapted from FlashDevelop: FileSystem.cs - /// Detects the file encoding from the file data. - /// - static Encoding GetEncoding(string file) - { - byte[] bom = new byte[4]; - System.IO.FileStream fs = new System.IO.FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); - if (fs.CanSeek) - { - fs.Read(bom, 0, 4); fs.Close(); - if ((bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf)) - { - return Encoding.UTF8; - } - else if ((bom[0] == 0xff && bom[1] == 0xfe)) - { - return Encoding.Unicode; - } - else if ((bom[0] == 0xfe && bom[1] == 0xff)) - { - return Encoding.BigEndianUnicode; - } - else if ((bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0xfe && bom[3] == 0x76)) - { - return Encoding.UTF7; - } - else - { - return Encoding.Default; - } - } - else - { - return Encoding.Default; - } - } - - - /// - /// THIS FUNCTION IS COMPLETE!! - /// - /// - /// - public static FindResults GetSearchResults(string folder, string input, string mask, bool isRecursive, bool isRegex, bool isWholeWord, bool isIgnoreCase) - { - fileMask = mask; - pattern = input; - if (!isRegex) pattern = Regex.Escape(pattern); - if (isWholeWord) pattern = "(? - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6} - Library - Properties - FindReplaceEx - FindReplaceEx - v3.5 - 512 - - - - - 3.5 - - - - true - full - false - ..\..\..\FlashDevelop\Bin\Debug\Plugins\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\..\..\FlashDevelop\Bin\Debug\Plugins\ - TRACE - prompt - 4 - - - true - ..\..\..\..\FlashDevelop\flashdevelop-development\FlashDevelop\Bin\Debug\Plugins\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - ..\..\..\..\FlashDevelop\flashdevelop-development\FlashDevelop\Bin\Debug\Plugins\ASCompletion.dll - - - False - ..\..\..\..\FlashDevelop\flashdevelop-development\FlashDevelop\Bin\Debug\FlashDevelop.exe - - - False - ..\..\..\..\FlashDevelop\PluginCore.dll - - - - - - - - - - - - UserControl - - - - True - True - Resources.resx - - - - - - - - - - - PluginUI.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - - - Designer - - - - - \ No newline at end of file diff --git a/ findandreplaceex/FindReplaceEx.sln b/ findandreplaceex/FindReplaceEx.sln deleted file mode 100644 index 55fe77b..0000000 --- a/ findandreplaceex/FindReplaceEx.sln +++ /dev/null @@ -1,37 +0,0 @@ -ן»¿ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2013 for Windows Desktop -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindReplaceEx", "FindReplaceEx.csproj", "{4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlashDevelop", "..\..\..\..\FlashDevelop\flashdevelop-development\FlashDevelop\FlashDevelop.csproj", "{EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Debug|x86.ActiveCfg = Debug|x86 - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Debug|x86.Build.0 = Debug|x86 - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Release|Any CPU.Build.0 = Release|Any CPU - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Release|x86.ActiveCfg = Release|x86 - {4C951C88-D15C-498B-B3CD-AFC5F7AF92D6}.Release|x86.Build.0 = Release|x86 - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Debug|x86.ActiveCfg = Debug|x86 - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Release|Any CPU.Build.0 = Release|Any CPU - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Release|x86.ActiveCfg = Release|x86 - {EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ findandreplaceex/FindReplaceEx.v12.suo b/ findandreplaceex/FindReplaceEx.v12.suo deleted file mode 100644 index 0d68ee8cc1048763e05c142f84f2ec6a7edd55cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138240 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®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 - /// a reference to the currently active acientilla control - /// - public ScintillaControl CurSciControl - { - get - { - // current active document - ITabbedDocument doc = MainForm.CurrentDocument; - ScintillaControl sci = doc.SciControl; - return sci; - } - } - - - - #endregion - - - #region Required Methods - - /// - /// Initializes the plugin - /// - public void Initialize() - { - this.InitBasics(); - this.LoadSettings(); - this.AddEventHandlers(); - this.CreateMenuItem(); - this.CreatePluginPanel(); - - this.typingTimer = new Timer(); - this.typingTimer.Enabled = false; - this.typingTimer.Tick += delegate { this.TypingTimerTick(); }; - } - - /// - /// Disposes the plugin - /// - public void Dispose() - { - this.SaveSettings(); - this.pluginUI.Terminate(); - } - - /// - /// Handles the incoming events - /// - public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = null; - if (document != null) - { - doc = document.SciControl; - } - - switch (e.Type) - { - - case EventType.ApplySettings: - UpdateSettings(); - break; - - case EventType.UIRefresh: - try - { - if (pluginPanel.Visible && !(MainForm == null)) - { - if (doc.SelectionStart == doc.SelectionEnd) - { - if (settingObject.FeedOnCaret) - { - typingTimer.Stop(); - typingTimer.Start(); - } - pluginUI.SelectionChanged(false); - } - else - { - pluginUI.SelectionChanged(); - } - } - } - catch - { - // ignore any error - } - - break; - case EventType.Keys: - Keys key = ((KeyEvent)e).Value; - if (key == PluginBase.MainForm.GetShortcutItemKeys("FindReplaceEx.Replace")) - { - this.pluginUI.PluginUI_FocusHandle(null, null); - e.Handled = false; - } - else if (key == PluginBase.MainForm.GetShortcutItemKeys("FindReplaceEx.Find")) - { - this.Panel.Show(); - e.Handled = true; - } - break; - case EventType.FileSwitch: - pluginUI.setFilterMaskTxt(PluginBase.MainForm.CurrentDocument.FileName.Split('.')[1]); - break; - } - } - - private void UpdateSettings() - { - this.pluginUI.UpdateSettings(settingObject); - - this.typingTimer.Interval = settingObject.TypingTimerInterval; - } - - #endregion - - #region Custom Methods - - /// - /// Initializes important variables - /// - public void InitBasics() - { - InitLocalization(); - String dataPath = Path.Combine(PathHelper.DataDir, "FindReplaceEx"); - if (!Directory.Exists(dataPath)) Directory.CreateDirectory(dataPath); - this.settingFilename = Path.Combine(dataPath, "Settings.fdb"); - this.pluginImage = PluginBase.MainForm.FindImage("484|12|4|-1"); - } - - - /// - /// Initializes the localization of the plugin - /// - public void InitLocalization() - { - LocaleVersion locale = PluginBase.MainForm.Settings.LocaleVersion; - switch (locale) - { - /* - case LocaleVersion.fi_FI : - // We have Finnish available... or not. :) - LocaleHelper.Initialize(LocaleVersion.fi_FI); - break; - */ - default: - // Plugins should default to English... - LocaleHelper.Initialize(LocaleVersion.en_US); - break; - } - this.pluginDesc = LocaleHelper.GetString("Info.Description"); - } - - - /// - /// Adds the required event handlers - /// - public void AddEventHandlers() - { - EventManager.AddEventHandler(this, eventMask); - } - - /// - /// Creates a plugin panel for the plugin - /// - public void CreatePluginPanel() - { - this.pluginUI = new PluginUI(this); - this.pluginUI.Text = "Advanced F&R"; - this.pluginPanel = PluginBase.MainForm.CreateDockablePanel(this.pluginUI, this.pluginGuid, this.pluginImage, DockState.DockBottomAutoHide); - PluginBase.MainForm.DockPanel.ActiveContentChanged += pluginUI.PluginUI_FocusHandle; - this.Panel.DockHandler.DockStateChanged += pluginUI.DockHandler_DockStateChanged; - } - - /// - /// Creates a menu item for the plugin and adds a ignored key - /// - public void CreateMenuItem() - { - //String title = LocalHelper.GetString("Label.ViewMenuItem"); - String title = "Advanced Find And Replace"; - ToolStripMenuItem viewMenu = (ToolStripMenuItem)PluginBase.MainForm.FindMenuItem("ViewMenu"); - viewMenu.DropDownItems.Add(new ToolStripMenuItem(title, this.pluginImage, new EventHandler(this.OpenPanel))); - } - - /// - /// Loads the plugin settings - /// - public void LoadSettings() - { - this.settingObject = new Settings(); - if (!File.Exists(this.settingFilename)) this.SaveSettings(); - else - { - Object obj = ObjectSerializer.Deserialize(this.settingFilename, this.settingObject); - this.settingObject = (Settings)obj; - } - PluginBase.MainForm.RegisterShortcutItem("FindReplaceEx.Find", Keys.Alt | Keys.F); - PluginBase.MainForm.RegisterShortcutItem("FindReplaceEx.Replace", Keys.Alt | Keys.R); - } - - /// - /// Saves the plugin settings - /// - public void SaveSettings() - { - ObjectSerializer.Serialize(this.settingFilename, this.settingObject); - } - - /// - /// Opens the plugin panel if closed - /// - public void OpenPanel(Object sender, System.EventArgs e) - { - this.pluginPanel.Show(); - } - - #endregion - - - #region sync project explorer code - - /// - /// Updates the class paths from ther project explorer to use in "Find In Files" - /// - public void UpdateProjectClassPaths() - { - List classPath = ASContext.Context.Classpath; - string[] paths = new string[classPath.Count]; - int i = 0; - - foreach (PathModel path in classPath) - { - paths.SetValue(path.Path, i++); - } -/* localClassPaths = (projectInfo["classpaths"]) as string[]; - string[] globalPaths = globalClassPaths.Split(';'); - classPaths = new string[localClassPaths.Length + globalPaths.Length]; - localClassPaths.CopyTo(classPaths, 0); - globalPaths.CopyTo(classPaths,localClassPaths.Length);*/ - pluginUI.UpdateFolderClassPaths(paths); - } - - #endregion - - #region Find and Replace commands - - /// - /// Event that happens several milliseconds after typing was stopped - /// It update the find input box - /// - private void TypingTimerTick() - { - typingTimer.Stop(); - SetFindTextInDocument(); - } - - /// - /// update the find input box according to the word that is under the cursor - /// - public void SetFindTextInDocument() - { - // current active document - ITabbedDocument doc = MainForm.CurrentDocument; - if (doc != null) - { - ScintillaControl Sci = doc.SciControl; - string text = Sci.GetWordFromPosition(Sci.CurrentPos + 1); - SetFindTextInDocument(text); - } - } - - /// - /// updates the find input box according to a desired text - /// - /// Text to find - public void SetFindTextInDocument(string Text) - { - if (Text != null) - pluginUI.SetFindText(Text); - } - - /// - /// Initiate a search for a text - /// - /// Text to find - public void SearchTextInDocument(string text) - { - if (text.Length > 1) - { - SetFindTextInDocument(text); - } - else - { - SetFindTextInDocument(); - } - pluginUI.ListAllFindText(); - } - - /// - /// Get the options to add to the regexp search according to user selection - /// - /// Regexp options with the current choice - private RegexOptions GetRegexOptions() - { - RegexOptions options = RegexOptions.None; - if (!pluginUI.MatchCase) - options = options | RegexOptions.IgnoreCase; - return options; - } - - /// - /// gets a search string that is safe to searchs - /// - /// - /// - private string getSafeSearch(string input) - { - if (!pluginUI.RegExp) - { - input = Regex.Escape(input); - } - if (pluginUI.WholeWord) - { - input = "(? - /// gets a collection of results based on input text - /// - /// Text to find - /// results - public FindResults GetResultsList(string findText) - { - return GetResultsList(CurSciControl, findText); - } - - /// - /// gets a collection of results based on input text in a specific scientilla control - /// - /// Scientilla control to perform the search - /// text to find - /// results - public FindResults GetResultsList(ScintillaControl sci, string findText) - { - results = new FindResults(); - AddToResultsList(sci, findText); - //SendResults(results, "resultsListUpdate"); - return results; - } - - /// - /// gets a results list from all open docuents to the wanted text - /// - /// text to find - /// results - public FindResults GetAllDocumentsResultsList(string findText) - { - results = new FindResults(); - foreach (ITabbedDocument document in MainForm.Documents) - { - if (document.Controls.Count == 0) continue; - ScintillaControl sci = document.SciControl; - - if (sci == null) continue; - AddToResultsList(sci , findText); - } - //SendResults(results, "resultsListUpdate"); - return results; - } - - /// - /// Initiate a find in folders search with different file mask - /// - /// text to find in a form of regexp expression - /// folder to search - /// mask of files to search - /// set true to search subfolders - /// results - public FindResults GetFindInFolderResultsList(string pattern, string folder, string mask, bool recursive) - { - results = FindInFiles.GetSearchResults(folder, pattern, mask, recursive, pluginUI.RegExp, pluginUI.WholeWord, pluginUI.MatchCase); - //SendResults(results, "resultsListUpdate"); - return results; - } - - /// - /// perform a search - /// - /// - /// - /// - private FindResults AddToResultsList(ScintillaControl sci, string findText) - { - try - { - string inText = sci.Text; - findText = getSafeSearch(findText); - MatchCollection searchResults = Regex.Matches(inText, findText, GetRegexOptions()); - results.AddResults(sci, searchResults); - } - catch - { - //MessageBox.Show("error in addToResultsList"); - //MainForm.AddTraceLogEntry("Error searching in file", 5); - } - return results; - } - - /// - /// focus the scintilla control and move carret to position - /// - /// position count in chars from the beginning of document - public void GotoPosAndFocus(int position) - { - try{ - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - - GotoPosAndFocus(document.SciControl, position, 0); - } - catch{ - } - - } - - /// - /// focus on a file, open it if needed and position the carret - /// - /// file to open - /// position in file - /// - public void GotoPosAndFocus(string fileName, int position, int length) - { - MainForm.OpenEditableDocument(fileName); - GotoPosAndFocus(position); - } - - /// - /// focus a needed scientilla control and position the carret - /// - /// a scientilla control to focus - /// position of the carret in the text - /// - public void GotoPosAndFocus(ScintillaNet.ScintillaControl sci, int position, int length) - { - // don't correct to multi-byte safe position (assumed correct) - int line = sci.LineFromPosition(position); - //sci.EnsureVisible(line); - sci.ExpandAllFolds(); - - sci.SetSel(position, position + length); - // sci.EnsureVisible(line); - - int top = sci.FirstVisibleLine; - int middle = top + sci.LinesOnScreen/2; - sci.LineScroll(0, line-middle); - - } - - - #endregion - - #region settings getters - public string CurFile - { - get {return MainForm.CurrentDocument.FileName; } - } - - public int CurPosition - { - get { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - return document.SciControl.CurrentPos; - } - } - - public string[] ClassPaths - { - get {return classPaths;} - } - #endregion - - - #region IPlugin Members - - - public object Settings - { - get { return settingObject; } - } - - #endregion - - #region IPlugin Members - - - public int Api - { - get { return 1; } - } - - #endregion - } -} diff --git a/ findandreplaceex/PluginUI.cs b/ findandreplaceex/PluginUI.cs deleted file mode 100644 index c463eef..0000000 --- a/ findandreplaceex/PluginUI.cs +++ /dev/null @@ -1,1851 +0,0 @@ -/* - * Created by IAP. - * User: Itzik Arzoni (itzikiap@nana.co.il) - * Date: 13/12/2005 - * Time: 21:43 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ - -using System; -using System.ComponentModel; -using System.Text.RegularExpressions; -using WeifenLuo.WinFormsUI; -using ScintillaNet; -using System.Windows.Forms; -using System.Collections; -using System.Text; -using System.Diagnostics; -using System.Collections.Generic; -using PluginCore; -using PluginCore.Managers; -using System.Drawing; -using PluginCore.Managers;//remove -using FlashDevelop; -using WeifenLuo.WinFormsUI.Docking; - - -namespace FindReplaceEx -{ - /// - /// Description of PluginUI. - /// - public class PluginUI : System.Windows.Forms.DockPanelControl - { - private System.ComponentModel.IContainer components; - // reference to the plugin interface - private PluginMain plugin; - private string lastPath; - private bool replaceShown; - private ComboBox findTxt; - private ToolTip toolTip; - private TabControl tabControl; - private TabPage optionsPage; - private CheckBox autoFeedChk; - private CheckBox autoChk; - private CheckBox openFilesChk; - private TabPage replacePage; - private Label resultsLbl; - private Button switchFindReplaceBtn; - private TextBox replaceTxt; - private Button replaceBtn; - private Button copyFindReplaceBtn; - private Button clearReplaceTxt; - private Button ofrBtn; - private TabPage filterPage; - private ComboBox filterTxt; - private Button regexHelpBtn; - private TabPage foldersPage; - private TextBox fileMaskTxt; - private CheckBox searchSubfoldersChk; - private Button browseBtn; - private ComboBox folderTxt; - private CheckBox folderFilesChk; - private RadioButton checkNoneRdo; - private RadioButton checkcCustomeRdo; - private RadioButton checkFileRdo; - private RadioButton checkSelectonRdo; - private RadioButton checkFilterRdo; - private GroupBox filterGroup; - private RadioButton checkAllRdo; - private ColumnHeader at; - private ListView resultsLst; - private FolderBrowserDialog fileBrowserDlg; - private CheckBox regexpChk; - private CheckBox wholeWordChk; - private CheckBox matchCaseChk; - private GroupBox findGroup; - private ColumnHeader result; - private ColumnHeader filename; - private ColumnHeader mark; - private TabPage operationsPage; - private Button deleteBtn; - private Button bookmarkBtn; - private Button clearFilterBtn; - private CheckBox regExReplaceChk; - private Button CopyResultsBtn; - private ListViewItem currentItem; - private bool toolTipShow; - private Splitter splitter; - private Panel optionsPanel; - private bool inReplace; -// private bool classPathRoot; - - public PluginUI(PluginMain pluginMain) - { - InitializeComponent(); - - // reference to the plugin interface - this.plugin = pluginMain; - toolTip.Active = true; - // switchFindReplaceBtn.Image = plugin.MainForm.GetSystemImage(10); - - - //resultsPanel = plugin.MainForm.FindPlugin("24df7cd8-e5f0-4171-86eb-7b2a577703ba"); - } - - #region Windows Forms Designer generated code - /// - /// This method is required for Windows Forms designer support. - /// Do not change the method contents inside the source code editor. The Forms designer might - /// not be able to load this method if it was changed manually. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.findTxt = new System.Windows.Forms.ComboBox(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.checkNoneRdo = new System.Windows.Forms.RadioButton(); - this.checkcCustomeRdo = new System.Windows.Forms.RadioButton(); - this.checkFileRdo = new System.Windows.Forms.RadioButton(); - this.checkSelectonRdo = new System.Windows.Forms.RadioButton(); - this.checkFilterRdo = new System.Windows.Forms.RadioButton(); - this.folderFilesChk = new System.Windows.Forms.CheckBox(); - this.browseBtn = new System.Windows.Forms.Button(); - this.searchSubfoldersChk = new System.Windows.Forms.CheckBox(); - this.fileMaskTxt = new System.Windows.Forms.TextBox(); - this.openFilesChk = new System.Windows.Forms.CheckBox(); - this.autoChk = new System.Windows.Forms.CheckBox(); - this.autoFeedChk = new System.Windows.Forms.CheckBox(); - this.checkAllRdo = new System.Windows.Forms.RadioButton(); - this.regexHelpBtn = new System.Windows.Forms.Button(); - this.regexpChk = new System.Windows.Forms.CheckBox(); - this.wholeWordChk = new System.Windows.Forms.CheckBox(); - this.matchCaseChk = new System.Windows.Forms.CheckBox(); - this.ofrBtn = new System.Windows.Forms.Button(); - this.clearReplaceTxt = new System.Windows.Forms.Button(); - this.copyFindReplaceBtn = new System.Windows.Forms.Button(); - this.replaceBtn = new System.Windows.Forms.Button(); - this.switchFindReplaceBtn = new System.Windows.Forms.Button(); - this.bookmarkBtn = new System.Windows.Forms.Button(); - this.deleteBtn = new System.Windows.Forms.Button(); - this.regExReplaceChk = new System.Windows.Forms.CheckBox(); - this.tabControl = new System.Windows.Forms.TabControl(); - this.optionsPage = new System.Windows.Forms.TabPage(); - this.replacePage = new System.Windows.Forms.TabPage(); - this.replaceTxt = new System.Windows.Forms.TextBox(); - this.filterPage = new System.Windows.Forms.TabPage(); - this.filterTxt = new System.Windows.Forms.ComboBox(); - this.clearFilterBtn = new System.Windows.Forms.Button(); - this.foldersPage = new System.Windows.Forms.TabPage(); - this.folderTxt = new System.Windows.Forms.ComboBox(); - this.operationsPage = new System.Windows.Forms.TabPage(); - this.CopyResultsBtn = new System.Windows.Forms.Button(); - this.resultsLbl = new System.Windows.Forms.Label(); - this.filterGroup = new System.Windows.Forms.GroupBox(); - this.at = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.resultsLst = new System.Windows.Forms.ListView(); - this.mark = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.result = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.filename = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.fileBrowserDlg = new System.Windows.Forms.FolderBrowserDialog(); - this.findGroup = new System.Windows.Forms.GroupBox(); - this.splitter = new Splitter(); - this.optionsPanel = new Panel(); - this.tabControl.SuspendLayout(); - this.optionsPage.SuspendLayout(); - this.replacePage.SuspendLayout(); - this.filterPage.SuspendLayout(); - this.foldersPage.SuspendLayout(); - this.operationsPage.SuspendLayout(); - this.filterGroup.SuspendLayout(); - this.findGroup.SuspendLayout(); - this.SuspendLayout(); - this.hideLeftSide(); - // - // findTxt - // - this.findTxt.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.findTxt.IntegralHeight = false; - //this.findTxt.Location = new System.Drawing.Point(374, 4); - this.findTxt.Name = "findTxt"; - //this.findTxt.Size = new System.Drawing.Size(216, 21); - this.findTxt.Dock = DockStyle.Top; - this.findTxt.TabIndex = 0; - this.findTxt.SelectedValueChanged += new System.EventHandler(this.selectedItemFindTxt); - this.findTxt.TextChanged += new System.EventHandler(this.FindTxtTextChanged); - this.findTxt.KeyDown += new System.Windows.Forms.KeyEventHandler(this.keyDownHandler); - // - // checkNoneRdo - // - this.checkNoneRdo.AutoSize = true; - this.checkNoneRdo.BackColor = System.Drawing.Color.Transparent; - this.checkNoneRdo.Location = new System.Drawing.Point(314, 16); - this.checkNoneRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkNoneRdo.Name = "checkNoneRdo"; - this.checkNoneRdo.Size = new System.Drawing.Size(51, 17); - this.checkNoneRdo.TabIndex = 3; - this.checkNoneRdo.Text = "None"; - this.toolTip.SetToolTip(this.checkNoneRdo, "Uncheck all the entries to not replace"); - this.checkNoneRdo.UseVisualStyleBackColor = false; - this.checkNoneRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkcCustomeRdo - // - this.checkcCustomeRdo.AutoSize = true; - this.checkcCustomeRdo.BackColor = System.Drawing.Color.Transparent; - this.checkcCustomeRdo.Location = new System.Drawing.Point(182, 16); - this.checkcCustomeRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkcCustomeRdo.Name = "checkcCustomeRdo"; - this.checkcCustomeRdo.Size = new System.Drawing.Size(66, 17); - this.checkcCustomeRdo.TabIndex = 6; - this.checkcCustomeRdo.Text = "Custome"; - this.toolTip.SetToolTip(this.checkcCustomeRdo, "Default for manually checked entries."); - this.checkcCustomeRdo.UseVisualStyleBackColor = false; - this.checkcCustomeRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkFileRdo - // - this.checkFileRdo.AutoSize = true; - this.checkFileRdo.BackColor = System.Drawing.Color.Transparent; - this.checkFileRdo.Checked = true; - this.checkFileRdo.Location = new System.Drawing.Point(2, 16); - this.checkFileRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkFileRdo.Name = "checkFileRdo"; - this.checkFileRdo.Size = new System.Drawing.Size(41, 17); - this.checkFileRdo.TabIndex = 4; - this.checkFileRdo.TabStop = false; - this.checkFileRdo.Text = "File"; - this.toolTip.SetToolTip(this.checkFileRdo, "Check all the entries of the current file. (Same as All if \"search all opened fil" + - "es\" is unchecked)"); - this.checkFileRdo.UseVisualStyleBackColor = false; - this.checkFileRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkSelectonRdo - // - this.checkSelectonRdo.AutoSize = true; - this.checkSelectonRdo.BackColor = System.Drawing.Color.Transparent; - this.checkSelectonRdo.Location = new System.Drawing.Point(46, 16); - this.checkSelectonRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkSelectonRdo.Name = "checkSelectonRdo"; - this.checkSelectonRdo.Size = new System.Drawing.Size(69, 17); - this.checkSelectonRdo.TabIndex = 5; - this.checkSelectonRdo.Text = "Selection"; - this.toolTip.SetToolTip(this.checkSelectonRdo, "Check all the checkboxes that inside the selection."); - this.checkSelectonRdo.UseVisualStyleBackColor = false; - this.checkSelectonRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // checkFilterRdo - // - this.checkFilterRdo.AutoSize = true; - this.checkFilterRdo.BackColor = System.Drawing.Color.Transparent; - this.checkFilterRdo.Location = new System.Drawing.Point(121, 16); - this.checkFilterRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkFilterRdo.Name = "checkFilterRdo"; - this.checkFilterRdo.Size = new System.Drawing.Size(47, 17); - this.checkFilterRdo.TabIndex = 6; - this.checkFilterRdo.Text = "Filter"; - this.toolTip.SetToolTip(this.checkFilterRdo, "Check the entries that match the filter string"); - this.checkFilterRdo.UseVisualStyleBackColor = false; - this.checkFilterRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // folderFilesChk - // - this.folderFilesChk.Location = new System.Drawing.Point(8, 32); - this.folderFilesChk.Name = "folderFilesChk"; - this.folderFilesChk.Size = new System.Drawing.Size(108, 24); - this.folderFilesChk.TabIndex = 9; - this.folderFilesChk.Text = "All Files in Folder"; - this.folderFilesChk.ThreeState = true; - this.toolTip.SetToolTip(this.folderFilesChk, "Check this to set the next search to be in alll files in the above directory."); - this.folderFilesChk.CheckStateChanged += new System.EventHandler(this.FolderFilesChkCheckedStateChanged); - // - // browseBtn - // - this.browseBtn.Location = new System.Drawing.Point(232, 32); - this.browseBtn.Name = "browseBtn"; - this.browseBtn.Size = new System.Drawing.Size(66, 23); - this.browseBtn.TabIndex = 1; - this.browseBtn.Text = "Browse..."; - this.toolTip.SetToolTip(this.browseBtn, "Browse for a folder to search in."); - this.browseBtn.Click += new System.EventHandler(this.BrowseBtnClick); - // - // searchSubfoldersChk - // - this.searchSubfoldersChk.Checked = true; - this.searchSubfoldersChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.searchSubfoldersChk.Location = new System.Drawing.Point(104, 32); - this.searchSubfoldersChk.Name = "searchSubfoldersChk"; - this.searchSubfoldersChk.Size = new System.Drawing.Size(80, 24); - this.searchSubfoldersChk.TabIndex = 9; - this.searchSubfoldersChk.Text = "Subfolders"; - this.toolTip.SetToolTip(this.searchSubfoldersChk, "Also search in subfolders."); - this.searchSubfoldersChk.CheckedChanged += new System.EventHandler(this.FolderFilesChkCheckedStateChanged); - // - // fileMaskTxt - // - this.fileMaskTxt.Location = new System.Drawing.Point(177, 33); - this.fileMaskTxt.Name = "fileMaskTxt"; - this.fileMaskTxt.Size = new System.Drawing.Size(48, 20); - this.fileMaskTxt.TabIndex = 10; - this.toolTip.SetToolTip(this.fileMaskTxt, "Specify the file mask to search in."); - // - // openFilesChk - // - this.openFilesChk.Checked = true; - this.openFilesChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.openFilesChk.Name = "openFilesChk"; - this.openFilesChk.TabIndex = 9; - this.openFilesChk.Dock = DockStyle.Top; - this.openFilesChk.Text = "All Opened Files"; - this.toolTip.SetToolTip(this.openFilesChk, "Show the reslts from all opened files."); - this.openFilesChk.CheckedChanged += new System.EventHandler(this.OptionsChkCheckedChanged); - // - // autoChk - // - this.autoChk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.autoChk.Checked = true; - this.autoChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.autoChk.Name = "autoChk"; - this.autoChk.Dock = DockStyle.Top; - this.autoChk.TabIndex = 4; - this.autoChk.Tag = ""; - this.autoChk.Text = "Automatic find"; - this.toolTip.SetToolTip(this.autoChk, "List results immediately while typing in the find box."); - // - // autoFeedChk - // - this.autoFeedChk.Checked = true; - this.autoFeedChk.CheckState = System.Windows.Forms.CheckState.Checked; - this.autoFeedChk.Name = "autoFeedChk"; - this.autoFeedChk.Dock = DockStyle.Top; - this.autoFeedChk.TabIndex = 21; - this.autoFeedChk.Tag = ""; - this.autoFeedChk.Text = "Update as you type"; - this.toolTip.SetToolTip(this.autoFeedChk, "Update the find box when typing in the editor"); - // - // checkAllRdo - // - this.checkAllRdo.AutoSize = true; - this.checkAllRdo.BackColor = System.Drawing.Color.Transparent; - this.checkAllRdo.Location = new System.Drawing.Point(264, 16); - this.checkAllRdo.Margin = new System.Windows.Forms.Padding(0); - this.checkAllRdo.Name = "checkAllRdo"; - this.checkAllRdo.Size = new System.Drawing.Size(36, 17); - this.checkAllRdo.TabIndex = 2; - this.checkAllRdo.Text = "All"; - this.toolTip.SetToolTip(this.checkAllRdo, "Check all the entries to replace"); - this.checkAllRdo.UseVisualStyleBackColor = false; - this.checkAllRdo.CheckedChanged += new System.EventHandler(this.CheckRdoCheckedChanged); - // - // regexHelpBtn - // - this.regexHelpBtn.Location = new System.Drawing.Point(282, 8); - this.regexHelpBtn.Name = "regexHelpBtn"; - this.regexHelpBtn.Size = new System.Drawing.Size(19, 21); - this.regexHelpBtn.TabIndex = 7; - this.regexHelpBtn.Text = "?"; - this.toolTip.SetToolTip(this.regexHelpBtn, "Help about regular expressions"); - this.regexHelpBtn.Click += new System.EventHandler(this.RegexHelpBtnClick); - // - // regexpChk - // - this.regexpChk.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.regexpChk.Location = new System.Drawing.Point(189, 12); - this.regexpChk.Name = "regexpChk"; - this.regexpChk.Size = new System.Drawing.Size(54, 24); - this.regexpChk.TabIndex = 4; - this.regexpChk.Tag = ""; - this.regexpChk.Text = "RegEx"; - this.toolTip.SetToolTip(this.regexpChk, "Threat the find text as Regular Expression"); - this.regexpChk.CheckedChanged += new System.EventHandler(this.regexpChk_CheckedChanged); - // - // wholeWordChk - // - this.wholeWordChk.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.wholeWordChk.Location = new System.Drawing.Point(99, 12); - this.wholeWordChk.Name = "wholeWordChk"; - this.wholeWordChk.Size = new System.Drawing.Size(84, 24); - this.wholeWordChk.TabIndex = 3; - this.wholeWordChk.Tag = ""; - this.wholeWordChk.Text = "Whole Word"; - this.toolTip.SetToolTip(this.wholeWordChk, "Search for whole word only"); - // - // matchCaseChk - // - this.matchCaseChk.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.matchCaseChk.Location = new System.Drawing.Point(11, 12); - this.matchCaseChk.Name = "matchCaseChk"; - this.matchCaseChk.Size = new System.Drawing.Size(88, 24); - this.matchCaseChk.TabIndex = 2; - this.matchCaseChk.Tag = ""; - this.matchCaseChk.Text = "Match Case"; - this.toolTip.SetToolTip(this.matchCaseChk, "Ignore the case OF cHaraCtERs"); - // - // ofrBtn - // - this.ofrBtn.BackColor = System.Drawing.Color.Silver; - this.ofrBtn.Location = new System.Drawing.Point(240, 8); - this.ofrBtn.Name = "ofrBtn"; - this.ofrBtn.Size = new System.Drawing.Size(64, 32); - this.ofrBtn.TabIndex = 7; - this.ofrBtn.Text = "Open Files && Search "; - this.toolTip.SetToolTip(this.ofrBtn, "Open all the files in the results list and redo he search"); - this.ofrBtn.UseVisualStyleBackColor = false; - this.ofrBtn.Click += new System.EventHandler(this.OfrBtnClick); - // - // button1 - // - this.clearReplaceTxt.Location = new System.Drawing.Point(this.copyFindReplaceBtn.Location.X + this.copyFindReplaceBtn.Size.Width+30, 32); - this.clearReplaceTxt.Name = "button1"; - this.clearReplaceTxt.Size = new System.Drawing.Size(45, 27); - this.clearReplaceTxt.TabIndex = 7; - this.clearReplaceTxt.Text = "Clear"; - this.toolTip.SetToolTip(this.clearReplaceTxt, "Clear the text from the find box"); - this.clearReplaceTxt.Click += new System.EventHandler(this.clearReplaceTxtClick); - // - // copyFindReplaceBtn - // - this.copyFindReplaceBtn.Location = new System.Drawing.Point(this.switchFindReplaceBtn.Location.X + this.switchFindReplaceBtn.Size.Width-15, 32); - this.copyFindReplaceBtn.Name = "copyFindReplaceBtn"; - this.copyFindReplaceBtn.Size = new System.Drawing.Size(45, 27); - this.copyFindReplaceBtn.TabIndex = 7; - this.copyFindReplaceBtn.Text = "Copy"; - this.toolTip.SetToolTip(this.copyFindReplaceBtn, "Copies the text from the find box"); - this.copyFindReplaceBtn.Click += new System.EventHandler(this.copyFindReplaceBtnClick); - // - // replaceBtn - // - this.replaceBtn.Location = new System.Drawing.Point(242, 8); - this.replaceBtn.Name = "replaceBtn"; - this.replaceBtn.Size = new System.Drawing.Size(59, 23); - this.replaceBtn.TabIndex = 1; - this.replaceBtn.Text = "Replace"; - this.toolTip.SetToolTip(this.replaceBtn, "Replace the selected text in all the checked entries"); - this.replaceBtn.Click += new System.EventHandler(this.ReplaceBtnClick); - // - // switchFindReplaceBtn - // - this.switchFindReplaceBtn.Location = new System.Drawing.Point(8, 32); - this.switchFindReplaceBtn.Name = "switchFindReplaceBtn"; - this.switchFindReplaceBtn.Size = new System.Drawing.Size(52, 27); - this.switchFindReplaceBtn.TabIndex = 7; - this.switchFindReplaceBtn.Text = "Switch"; - this.toolTip.SetToolTip(this.switchFindReplaceBtn, "Switches the text between find and replace"); - this.switchFindReplaceBtn.Click += new System.EventHandler(this.SwtchFindReplaceBtnClick); - // - // bookmarkBtn - // - this.bookmarkBtn.Location = new System.Drawing.Point(8, 7); - this.bookmarkBtn.Name = "bookmarkBtn"; - this.bookmarkBtn.Size = new System.Drawing.Size(75, 23); - this.bookmarkBtn.TabIndex = 0; - this.bookmarkBtn.Text = "Bookmark"; - this.toolTip.SetToolTip(this.bookmarkBtn, "Bookmark all the selected items"); - this.bookmarkBtn.UseVisualStyleBackColor = true; - this.bookmarkBtn.Click += new System.EventHandler(this.bookmarkBtn_Click); - // - // deleteBtn - // - this.deleteBtn.Location = new System.Drawing.Point(89, 7); - this.deleteBtn.Name = "deleteBtn"; - this.deleteBtn.Size = new System.Drawing.Size(75, 23); - this.deleteBtn.TabIndex = 1; - this.deleteBtn.Text = "Delete"; - this.toolTip.SetToolTip(this.deleteBtn, "Delete all selected line"); - this.deleteBtn.UseVisualStyleBackColor = true; - this.deleteBtn.Click += new System.EventHandler(this.deleteBtn_Click); - // - // regExReplaceChk - // - this.regExReplaceChk.AutoSize = true; - this.regExReplaceChk.Location = new System.Drawing.Point(160, 36); - this.regExReplaceChk.Name = "regExReplaceChk"; - this.regExReplaceChk.Size = new System.Drawing.Size(96, 17); - this.regExReplaceChk.TabIndex = 8; - this.regExReplaceChk.Text = "RegEx replace"; - this.toolTip.SetToolTip(this.regExReplaceChk, "If checked, you can use searched groups from the match in your replace. \\n Write " + - "$1 to insert the text from the first group, and so on."); - this.regExReplaceChk.UseVisualStyleBackColor = true; - // - // tabControl - // - this.tabControl.Controls.Add(this.optionsPage); - this.tabControl.Controls.Add(this.replacePage); - this.tabControl.Controls.Add(this.filterPage); - this.tabControl.Controls.Add(this.foldersPage); - this.tabControl.Controls.Add(this.operationsPage); - this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 0; - this.tabControl.Dock = DockStyle.Fill; - this.tabControl.TabIndex = 5; - this.tabControl.SelectedIndexChanged += new System.EventHandler(this.TabControlSelectedIndexChanged); - // - // optionsPage - // - this.optionsPage.Controls.Add(this.autoFeedChk); - this.optionsPage.Controls.Add(this.autoChk); - this.optionsPage.Controls.Add(this.openFilesChk); - this.optionsPage.Location = new System.Drawing.Point(4, 22); - this.optionsPage.Name = "optionsPage"; - this.optionsPage.Size = new System.Drawing.Size(304, 64); - this.optionsPage.TabIndex = 2; - this.optionsPage.Text = "Options"; - this.optionsPage.UseVisualStyleBackColor = true; - // - // replacePage - // - this.replacePage.Controls.Add(this.regExReplaceChk); - this.replacePage.Controls.Add(this.switchFindReplaceBtn); - this.replacePage.Controls.Add(this.replaceTxt); - this.replacePage.Controls.Add(this.replaceBtn); - this.replacePage.Controls.Add(this.copyFindReplaceBtn); - this.replacePage.Controls.Add(this.clearReplaceTxt); - this.replacePage.Controls.Add(this.ofrBtn); - this.replacePage.Location = new System.Drawing.Point(4, 22); - this.replacePage.Name = "replacePage"; - this.replacePage.Size = new System.Drawing.Size(304, 64); - this.replacePage.TabIndex = 0; - this.replacePage.Text = "Replace"; - this.replacePage.UseVisualStyleBackColor = true; - // - // replaceTxt - // - this.replaceTxt.Location = new System.Drawing.Point(4, 8); - this.replaceTxt.Name = "replaceTxt"; - this.replaceTxt.Size = new System.Drawing.Size(238, 20); - this.replaceTxt.TabIndex = 0; - this.replaceTxt.Text = "@FIND"; - this.replaceTxt.KeyDown += new System.Windows.Forms.KeyEventHandler(this.keyDownHandler); - // - // filterPage - // - this.filterPage.Controls.Add(this.filterTxt); - this.filterPage.Controls.Add(this.clearFilterBtn); - this.filterPage.Controls.Add(this.regexHelpBtn); - this.filterPage.Location = new System.Drawing.Point(4, 22); - this.filterPage.Name = "filterPage"; - this.filterPage.Size = new System.Drawing.Size(304, 64); - this.filterPage.TabIndex = 2; - this.filterPage.Text = "Filter"; - this.filterPage.UseVisualStyleBackColor = true; - // - // filterTxt - // - this.filterTxt.Items.AddRange(new object[] { - "", - "(import|new)\\s*[\\w\\.]*@FIND[\\.;]", - "(function|var)\\s*\\w*\\s*:\\s*@FIND\\s*[;\\(]"}); - this.filterTxt.Location = new System.Drawing.Point(8, 8); - this.filterTxt.Name = "filterTxt"; - this.filterTxt.Size = new System.Drawing.Size(243, 21); - this.filterTxt.TabIndex = 15; - this.filterTxt.TextChanged += new System.EventHandler(this.FilterTxtTextChanged); - // - // clearFilterBtn - // - this.clearFilterBtn.Location = new System.Drawing.Point(257, 8); - this.clearFilterBtn.Name = "clearFilterBtn"; - this.clearFilterBtn.Size = new System.Drawing.Size(19, 21); - this.clearFilterBtn.TabIndex = 7; - this.clearFilterBtn.Text = "X"; - this.clearFilterBtn.Click += new System.EventHandler(this.clearFilterBtn_Click); - // - // foldersPage - // - this.foldersPage.Controls.Add(this.fileMaskTxt); - this.foldersPage.Controls.Add(this.searchSubfoldersChk); - this.foldersPage.Controls.Add(this.browseBtn); - this.foldersPage.Controls.Add(this.folderTxt); - this.foldersPage.Controls.Add(this.folderFilesChk); - this.foldersPage.Location = new System.Drawing.Point(4, 22); - this.foldersPage.Name = "foldersPage"; - this.foldersPage.Size = new System.Drawing.Size(304, 64); - this.foldersPage.TabIndex = 1; - this.foldersPage.Text = "Folders"; - this.foldersPage.UseVisualStyleBackColor = true; - // - // folderTxt - // - this.folderTxt.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.folderTxt.Location = new System.Drawing.Point(4, 8); - this.folderTxt.Name = "folderTxt"; - this.folderTxt.Size = new System.Drawing.Size(296, 21); - this.folderTxt.TabIndex = 2; - this.folderTxt.DrawMode = DrawMode.OwnerDrawFixed; - this.folderTxt.DrawItem += folderTxt_DrawItem; - this.folderTxt.DropDownClosed += folderTxt_DropDownClosed; - this.folderTxt.SelectedIndexChanged += new System.EventHandler(this.FolderTxtSelectedIndexChanged); - // - // operationsPage - // - this.operationsPage.Controls.Add(this.CopyResultsBtn); - this.operationsPage.Controls.Add(this.deleteBtn); - this.operationsPage.Controls.Add(this.bookmarkBtn); - this.operationsPage.Location = new System.Drawing.Point(4, 22); - this.operationsPage.Name = "operationsPage"; - this.operationsPage.Padding = new System.Windows.Forms.Padding(3); - this.operationsPage.Size = new System.Drawing.Size(304, 64); - this.operationsPage.TabIndex = 3; - this.operationsPage.Text = "Operations"; - this.operationsPage.UseVisualStyleBackColor = true; - // - // CopyResultsBtn - // - this.CopyResultsBtn.Location = new System.Drawing.Point(8, 35); - this.CopyResultsBtn.Name = "CopyResultsBtn"; - this.CopyResultsBtn.Size = new System.Drawing.Size(107, 23); - this.CopyResultsBtn.TabIndex = 1; - this.CopyResultsBtn.Text = "Copy To Results"; - this.CopyResultsBtn.UseVisualStyleBackColor = true; - this.CopyResultsBtn.Click += new System.EventHandler(this.CopyResultsBtn_Click); - // - // resultsLbl - // - this.resultsLbl.AutoSize = true; - this.resultsLbl.Location = new System.Drawing.Point(38, 0); - this.resultsLbl.Name = "resultsLbl"; - this.resultsLbl.Size = new System.Drawing.Size(19, 13); - this.resultsLbl.TabIndex = 8; - this.resultsLbl.Text = "----"; - // - // filterGroup - // - this.filterGroup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.filterGroup.Controls.Add(this.resultsLbl); - this.filterGroup.Controls.Add(this.checkFilterRdo); - this.filterGroup.Controls.Add(this.checkSelectonRdo); - this.filterGroup.Controls.Add(this.checkFileRdo); - this.filterGroup.Controls.Add(this.checkcCustomeRdo); - this.filterGroup.Controls.Add(this.checkAllRdo); - this.filterGroup.Controls.Add(this.checkNoneRdo); - this.filterGroup.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.filterGroup.Dock = DockStyle.Bottom; - this.filterGroup.Name = "filterGroup"; - this.filterGroup.Height = 43; - this.filterGroup.TabIndex = 11; - this.filterGroup.TabStop = false; - this.filterGroup.Text = "Filter"; - // - // at - // - this.at.Text = "@"; - this.at.Width = -1; - // - // resultsLst - // - this.resultsLst.Alignment = System.Windows.Forms.ListViewAlignment.SnapToGrid; - this.resultsLst.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.resultsLst.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.mark, - this.at, - this.result, - this.filename}); - this.resultsLst.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177))); - this.resultsLst.FullRowSelect = true; - this.resultsLst.GridLines = true; - this.resultsLst.HideSelection = false; - this.resultsLst.LabelWrap = false; - this.resultsLst.Dock = DockStyle.Fill; - this.resultsLst.Name = "resultsLst"; - this.resultsLst.ShowGroups = false; - this.resultsLst.TabIndex = 7; - this.resultsLst.UseCompatibleStateImageBehavior = false; - this.resultsLst.View = System.Windows.Forms.View.Details; - this.resultsLst.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.ResultsLstItemCheck); - this.resultsLst.SelectedIndexChanged += new System.EventHandler(this.resultsLst_SelectedIndexChanged); - this.resultsLst.Click += new System.EventHandler(this.ResultsLstClick); - this.resultsLst.DoubleClick += new System.EventHandler(this.ResultsLstDoubleClick); - this.resultsLst.MouseLeave += new System.EventHandler(this.resultsLst_MouseLeave); - this.resultsLst.MouseMove += new System.Windows.Forms.MouseEventHandler(this.ResultsLstMouseMove); - this.resultsLst.SizeChanged += new EventHandler(this.ResultsLst_SizeChanged); - // - // mark - // - this.mark.Text = ""; - this.mark.Width = -1; - // - // result - // - this.result.Text = "Result Line"; - this.result.Width = -1; - // - // filename - // - this.filename.Text = "File Name"; - this.filename.Width = -1; - // - // findGroup - // - this.findGroup.Controls.Add(this.matchCaseChk); - this.findGroup.Controls.Add(this.wholeWordChk); - this.findGroup.Controls.Add(this.regexpChk); - this.findGroup.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.findGroup.Name = "findGroup"; - this.findGroup.Height = 41; - this.findGroup.Dock = DockStyle.Top; - this.findGroup.TabIndex = 4; - this.findGroup.TabStop = false; - this.findGroup.Text = "Find"; - // - // optionsPanel - // - this.optionsPanel.Controls.Add(tabControl); - this.optionsPanel.Controls.Add(findGroup); - this.optionsPanel.Controls.Add(findTxt); - this.optionsPanel.Controls.Add(filterGroup); - this.optionsPanel.Size = new Size(375,200); - // - // PluginUI - // - this.BackColor = System.Drawing.SystemColors.Control; - this.Controls.AddRange(new Control[] { this.resultsLst, this.splitter,this.optionsPanel }); - this.Name = "PluginUI"; - this.Size = new System.Drawing.Size(656, 322); - this.tabControl.ResumeLayout(false); - this.optionsPage.ResumeLayout(false); - this.replacePage.ResumeLayout(false); - this.replacePage.PerformLayout(); - this.filterPage.ResumeLayout(false); - this.foldersPage.ResumeLayout(false); - this.foldersPage.PerformLayout(); - this.operationsPage.ResumeLayout(false); - this.filterGroup.ResumeLayout(false); - this.filterGroup.PerformLayout(); - this.findGroup.ResumeLayout(false); - this.ResumeLayout(false); - } - - #endregion - - #region settings and updates - /// - /// udate the selected settings - /// - /// - public void UpdateSettings(Settings settingsObject) - { - autoFeedChk.Checked = settingsObject.FeedAsYouType; - - autoChk.Checked = settingsObject.FindAsYouType; - //resizeToFit = resize; - ChangeFilterPresets(settingsObject.FilterPresets); - findTxt.MaxDropDownItems = settingsObject.SearchHistoryLimit; - resultsLst.ShowGroups = settingsObject.GroupByFile; - } - - /// - /// update the class paths list for the find in folder - /// - /// new class paths - public void UpdateFolderClassPaths(string[] classPaths) - { - string[] presets = classPaths; - folderTxt.BeginUpdate(); - folderTxt.Items.Clear(); - foreach (string itemTxt in presets) - { - folderTxt.Items.Add(itemTxt); - } - folderTxt.Text = presets[0]; - lastPath = presets[0]; - folderTxt.EndUpdate(); - } - - /// - /// show or hide the folder tab - /// - /// show or hide - private void ShowFolderMode(bool flag) - { - if (flag) - { - ShowReplaceMode(false); - plugin.UpdateProjectClassPaths(); - if (folderFilesChk.CheckState == CheckState.Unchecked) - { - folderFilesChk.CheckState = CheckState.Checked; - } - } - else if (folderFilesChk.CheckState != CheckState.Indeterminate) - { - folderFilesChk.CheckState = CheckState.Unchecked; - } - } - - /// - /// handle with focus - /// - public void PluginUI_FocusHandle(object sender, EventArgs e) - { - - - if (PluginBase.MainForm.DockPanel.ActiveContent == this.plugin.Panel) - { - revealLeftSide(); - findTxt.Focus(); - } - else - { - if (sender == null) - { - this.plugin.Panel.Show(); - revealLeftSide(); - this.ShowReplace = true; - this.replaceTxt.Focus(); - } - else - { - Settings settingsObject = this.plugin.Settings as Settings; - if ((tabControl.SelectedTab == optionsPage && settingsObject.ResizeOptionsTab) || (tabControl.SelectedTab == replacePage && settingsObject.ResizeReplaceTab) || (tabControl.SelectedTab == filterPage && settingsObject.ResizeFilterTab) || (tabControl.SelectedTab == foldersPage && settingsObject.ResizeFoldersTab) || (tabControl.SelectedTab == operationsPage && settingsObject.ResizeOperationsTab)) - { - tabControl.SelectedTab = optionsPage; - hideLeftSide(); - } - } - } - - } - - /// - /// Stops the parse timer if not enabled. - /// - public void Terminate() - { - } - - #endregion - - #region Find Code - /// - /// set the text in the find box - /// - /// new text - public void SetFindText(string newText) - { - SetFindText(newText, false); - } - - /// - /// Set the text in the find box, no matter what are the settings - /// - /// new text - /// true to force change it - public void SetFindText(string newText, bool force) - { - if ((autoFeedChk.Checked) || force) - { - if (ShowReplace) - { - replaceTxt.Text = newText; - } - else - { - findTxt.Text = newText; - } - } - } - - /// - ///lists all the results in the list box - ///given a results object - /// - public void ListAllResults(FindResults results) - { - resultsLst.BeginUpdate(); - resultsLst.Items.Clear(); - resultsLst.Groups.Clear(); - FindMatch match = results.FirstResult(); - String file = ""; - ListViewGroup gr = null; - while (match != null) - { - if (file != match.FileName) - { - file = match.FileName; - gr = new ListViewGroup(file, HorizontalAlignment.Left); - - gr.Name = file; - gr.Header = file; - this.resultsLst.Groups.Add(gr); - } - - AddMatchToGroup(gr, match); - - match = results.NextResult(); - } -// if (resultsLst.Items.Count > 0) -// resultsLst.EnsureVisible(resultsLst.Items.Count-1); - CheckListItems(); - this.mark.Width = -1; - this.at.Width = -1; - this.filename.Width = -1; - resultsLst.EndUpdate(); - } - - private void startSearch() - { - bool itemExists = false; - foreach (string cbi in findTxt.Items) - { - itemExists = cbi == findTxt.Text; - if (itemExists) break; - } - if (!itemExists) - findTxt.Items.Add(findTxt.Text); - ListAllFindText(findTxt.Text, 1); - } - - /// - /// Finds a text in open document, or all open documents and list it. - /// using text in find input box - /// - public void ListAllFindText() - { - ListAllFindText(findTxt.Text); - } - - /// - /// Finds a text in open document, or all open documents and list it - /// - /// text to find - public void ListAllFindText(string Text) - { - ListAllFindText(Text, (plugin.Settings as Settings).IgnoreBelow); - } - - /// - /// Finds a text in open document, or all open documents and list it - /// - /// text to find - /// characters threshold - public void ListAllFindText(string Text, int minChars) - { - if (Text.Length >= minChars) - { - resultsLst.Tag = folderFilesChk.Checked ? "V": "X"; - DefaultReplaceCheck(); - FindResults results; - if ((folderFilesChk.CheckState == CheckState.Checked || folderFilesChk.CheckState == CheckState.Indeterminate) && tabControl.SelectedTab == foldersPage) - { - results = plugin.GetFindInFolderResultsList(Text, folderTxt.Text, fileMaskTxt.Text, searchSubfoldersChk.Checked); - if (folderFilesChk.CheckState == CheckState.Checked) - { - folderFilesChk.CheckState = CheckState.Unchecked; - } - } - else if (openFilesChk.Checked) - { - results = plugin.GetAllDocumentsResultsList(Text); - } - else - { - results = plugin.GetResultsList(Text); - } - resultsLst.Columns[2].Text = Text; - ListAllResults(results); - } - } - - /// - /// adds a match item to a list group - /// - /// a group - /// the match to add to the group - private void AddMatchToGroup(ListViewGroup gr, FindMatch match) - { - ListViewItem item = getListItemFromMatch(match); - item.Group = gr; - gr.Items.Add(item); - AddItemToList(item); - } - - /// - /// Add a list view item to the list - /// - /// A list view item to add - private void AddItemToList(ListViewItem item) - { - this.resultsLst.Items.Add(item); - } - - /// - /// Add a match item to the list - /// - /// A match item - public void AddMatchToList(FindMatch m) - { - AddItemToList(getListItemFromMatch(m)); - } - - /// - /// create a list item that represnts a match - /// - /// - /// - private ListViewItem getListItemFromMatch(FindMatch m) - { - string first = " "; - if (m.FileName == plugin.CurFile) - first = ">"; - ListViewItem item = new ListViewItem(first, 0); - item.Tag = m; - item.SubItems.Add("" + (m.Line + 1)); - item.SubItems.Add(m.LineText.Trim()); - item.SubItems.Add(m.FileName.Substring(m.FileName.LastIndexOf("\\") + 1)); - return item; - } - - /// - /// Sets the flag of "find as you type" - /// - /// New value - public void SetFindAsYouType(bool val) - { - autoChk.Checked = val; - } - - #endregion - - #region Replace code - /// - /// check the list items that need to be checked according to the settings - /// - private void CheckListItems() - { - if (!inReplace) - { - try - { - string curFile = plugin.CurFile; - string filterText = filterTxt.Tag as string; - foreach (ListViewItem item in resultsLst.Items) - { - FindMatch m = item.Tag as FindMatch; - if (checkAllRdo.Checked) - { - item.Checked = true; - } - else if (checkNoneRdo.Checked) - { - item.Checked = false; - } - else if (checkFileRdo.Checked) - { - item.Checked = (m.FileName == curFile); - } - else if (checkSelectonRdo.Checked) - { - int selStaert = m.Scintilla.SelectionStart; - int selEnd = m.Scintilla.SelectionEnd; - bool inRange = m.Position > selStaert & m.Position < selEnd; - item.Checked = (m.FileName == curFile) & inRange; - } - else if (checkFilterRdo.Checked) - { - item.Checked = IsMatchInItem(item, 2, filterText); - - } - HilightItem(item, item.Checked); - } - UpdateStatusBar(); - } - catch - { - checkNoneRdo.Checked = true; - } - } - } - - /// - /// called when a selection was changed - /// - public void SelectionChanged() - { - SelectionChanged(true); - } - - /// - /// Called when a selection is changed in the scientilla - /// - /// Is there or isn't there a selection - public void SelectionChanged(bool flag) - { - if (flag) - { - checkSelectonRdo.Checked = true; - } - else - { - DefaultReplaceCheck(); - } - CheckListItems(); - } - - /// - /// Goes thrugh all the entries and if they are checked, it replaces the text - /// - /// the text to replace - private void ReplaceSelectedEntries(string replaceText) - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = document.SciControl; - - //autoFeedChk.Checked = false; - //autoChk.Checked = false; - string workingFile = ""; - inReplace = true; - if (replaceShown && replaceText != "") - { - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - - // switch to the next file - if (fileName != workingFile) { - doc.EndUndoAction(); - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - } - doc.MBSafeSetSel(m.Position, m.Text); - string rep = replaceText.Clone() as string; - if (regExReplaceChk.Checked) rep = ExpandReplaceGroups(rep, m); - doc.ReplaceSel(rep); - } - } - doc.EndUndoAction(); - - } - inReplace = false; - ShowOfr(); - } - - /// - /// Replace regular expressions groups in replacement text - /// - /// Text to expand - /// Search result (for reinjecting groups) - public string ExpandReplaceGroups(string text, FindMatch match) - { - if (text.IndexOf('$') < 0) return match.Text; - for (int i = 0; i < match.Groups.Count; i++) - text = text.Replace("$" + i, match.Groups[i].Value); - return text; - } - - /// - /// Open all files found in "Find in files" and make the search again - /// - private void OpenAndResearch() - { - string findText = findTxt.Text; - string workingFile = ""; - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - if (fileName != workingFile) { - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - } - } - } - ListAllFindText(findText); - ShowOfr(); - } - - /// - /// Shows the Open and replace button instead of the normal replace - /// - private void ShowOfr() - { - string fif = "" + resultsLst.Tag; - bool vis = (fif.IndexOf("V") != 0); - replaceBtn.Visible = vis; - ofrBtn.Visible = !vis; - } - - /// - /// Hides the checkboxes - /// - private void HideCheckboxes() - { - resultsLst.BeginUpdate(); - resultsLst.Visible = false; - resultsLst.CheckBoxes = false; - resultsLst.MultiSelect = false; - resultsLst.Visible = true; - resultsLst.EndUpdate(); - } - - /// - /// Shows the checkboxes in the list - /// - private void ShowCheckboxes() - { - resultsLst.BeginUpdate(); - resultsLst.Visible = false; - resultsLst.CheckBoxes = true; - resultsLst.MultiSelect = true; - CheckListItems(); - resultsLst.Visible = true; - resultsLst.EndUpdate(); - } - - /// - /// Shows or hide the replace tab - /// - /// true - shows the replace tab - private void ShowReplaceMode(bool flag) - { - DefaultReplaceCheck(); - if (flag) - { - ShowCheckboxes(); - ShowOfr(); - } - replaceShown = flag; - } - #endregion - - #region filter code - /// - /// Updates the status bar with the search results - /// - private void UpdateStatusBar() - { - this.resultsLbl.Text = "Results: "+resultsLst.Items.Count+". Selected: "+resultsLst.CheckedItems.Count; - } - - /// - /// Highlight the items in the list that match the filter - /// - /// - private void HilightFilteredList(string filterText) - { - filterTxt.Tag = ""; - DefaultReplaceCheck(); - if (filterText.Length > 0) - { - - try - { - Regex.IsMatch("test pattern", filterTxt.Text); - filterTxt.Tag = Regex.Replace(filterTxt.Text, "@FIND", findTxt.Text); - if (!checkFilterRdo.Checked) - checkFilterRdo.Checked = true; - } - catch - { - filterTxt.Tag = Regex.Unescape(filterText); - checkNoneRdo.Checked = true; - } - CheckListItems(); - } - else - { - - } - } - - /// - /// Highlight an item - /// - /// List view item to highlight - /// true - to highlight - private void HilightItem(ListViewItem item, bool isHilight) - { - Font font = item.Font; - if (isHilight) - { - item.Font = new Font(font, FontStyle.Regular); - item.BackColor = Color.Lavender; - } - else - { - item.Font = new Font(font, FontStyle.Regular); - item.BackColor = Color.White; - } - } - - /// - /// Return true if the item match the filter pattern, entered in the filter input box - /// - /// a list view item - /// index of subitem (column) - /// pattern to match - /// - private bool IsMatchInItem(ListViewItem item, int index, string pattern) - { - if (pattern.Length > 0) - { - bool ret = Regex.IsMatch(item.SubItems[index].Text, pattern, RegexOptions.IgnoreCase); - return ret; - } - else - return false; - } - - /// - /// Change the presets for the filter combo box - /// - /// - private void ChangeFilterPresets(string[] newPresets) - { - if (newPresets != null) - { - string[] presets = newPresets; - filterTxt.BeginUpdate(); - filterTxt.Items.Clear(); - foreach (string itemTxt in presets) - { - filterTxt.Items.Add(itemTxt); - } - filterTxt.EndUpdate(); - } - } - - /// - /// check the default filter mode, is "filter" if there is a pattern entered of "file" if no - /// - private void DefaultReplaceCheck() - { - - if (!replaceShown)// && !openFilesChk.Checked) - { - FilterRadioCheck(); - } - else - { - checkFileRdo.Checked = true; - } - CheckListItems(); - } - - /// - /// Check the filter radio. - /// If the RegEx is not valid it check the "file" mode - /// - private void FilterRadioCheck() - { - - ScintillaControl sci =plugin.CurSciControl; - if (sci != null) - { - if (sci.SelectionStart != sci.SelectionEnd) - { - checkSelectonRdo.Checked = true; - } - else if (filterTxt.Text.Length > 0) - { - checkFilterRdo.Checked = true; - } - else - { - checkFileRdo.Checked = true; - } - } - } - #endregion - - #region operation code - - /// - /// switch to operation mode, show the checkboxes - /// - /// is in operation - private void ShowOperationMode(bool p) - { - if (p) - { - ShowCheckboxes(); - } - } - - - /// - /// adds bookmarks to all selected items - /// - private void BookmarkSearchResults() - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = document.SciControl; - - string workingFile = ""; - doc.BeginUndoAction(); - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - if (fileName != workingFile) { - doc.EndUndoAction(); - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - } - - doc.MarkerAdd(m.Line, 0); - } - } - - - ShowReplace = false; - } - - private void CopyToResultsPanel() - { - Globals.MainForm.CallCommand("PluginCommand", "ResultsPanel.ClearResults"); - foreach (ListViewItem item in resultsLst.Items) - { - FindMatch m = item.Tag as FindMatch; - int column = m.Column; - if (item.Checked) - { - TraceManager.Add(m.FileName + ":" + (m.Line + 1).ToString() + ": characters " + m.Column + "-" + (m.Column + m.Text.Length) + " : " + m.LineText.Trim(), (Int32)TraceType.Info); - } - } - Globals.MainForm.CallCommand("PluginCommand", "ResultsPanel.ShowResults"); - - ShowReplace = false; - } - - /// - /// Deletes all the selected (checked) results - /// - private void DeleteResultsLines() - { - ITabbedDocument document = PluginBase.MainForm.CurrentDocument; - ScintillaControl doc = document.SciControl; - - string workingFile = ""; - doc.BeginUndoAction(); - int numOfEntries = resultsLst.Items.Count; - for(int i= numOfEntries-1; i >= 0; i--) - { - ListViewItem item = resultsLst.Items[i]; - if (item.Checked) - { - FindMatch m = item.Tag as FindMatch; - string fileName = m.FileName; - if (fileName != workingFile) { - doc.EndUndoAction(); - plugin.MainForm.OpenEditableDocument(fileName); - workingFile = fileName; - document = PluginBase.MainForm.CurrentDocument; - doc = document.SciControl; - doc.BeginUndoAction(); - } - doc.SetSel(m.Position, m.Position); - doc.LineDelete(); - } - } - - doc.EndUndoAction(); - ShowReplace = false; - } - #endregion - - - #region options properties - /// - /// Is the mach case sensitive - /// - public bool MatchCase - { - get {return matchCaseChk.Checked; } - set {matchCaseChk.Checked = value;} - } - /// - /// Select to match only whole word - /// - public bool WholeWord - { - get {return wholeWordChk.Checked; } - set {wholeWordChk.Checked = value; } - } - /// - /// Check as Regular expression or normal text - /// - public bool RegExp - { - get {return regexpChk.Checked; } - set {regexpChk.Checked = value; } - } - /// - /// Shows the replace tab - /// - public bool ShowReplace - { - get {return replaceShown; } - set - { - if (value) - { - tabControl.SelectedTab = replacePage; - } - else - { - tabControl.SelectedIndex = 0; - } - replaceShown = value; - } - } - /// - /// Change the search path for "Find in Files" - /// - public string SearchPath - { - get {return folderTxt.Text; } - set { folderTxt.Text = value; } - } - #endregion - - #region Controlls Events - - private void ResultsLstDoubleClick(object sender, System.EventArgs e) - { - - ListViewItem item = this.resultsLst.SelectedItems[0]; - if (item == null) return; - FindMatch m = (FindMatch)item.Tag; - int position = m.Position; - - plugin.GotoPosAndFocus(m.FileName, position, m.Text.Length); - } - - private void keyDownHandler(object sender, KeyEventArgs e) - { - if (findTxt.Focused && e.KeyCode == Keys.Enter) - { - startSearch(); - } - else if (replaceTxt.Focused && e.KeyCode == Keys.Enter) - { - ReplaceBtnClick(null, null); - } - } - - private void FindTxtTextChanged(object sender, System.EventArgs e) - { - if(autoChk.Checked) - { - ListAllFindText(findTxt.Text); - } - } - - private void OptionsChkCheckedChanged(object sender, System.EventArgs e) - { - ListAllFindText(); - } - - - private void ReplaceBtnClick(object sender, System.EventArgs e) - { - string find = findTxt.Text; - string replace = replaceTxt.Text; - string curFile = plugin.CurFile; - int curPosition = plugin.CurPosition; - replace = Regex.Replace(replace, "@FIND", find); - ReplaceSelectedEntries(replace); - ListAllFindText(find, 1); - //replaceTxt.Text = "@FIND"; -// if (plugin.HideReplace) -// ShowReplace = false; - if ((plugin.Settings as Settings).AutoHideReplace) { - ShowReplace = false; - } - plugin.GotoPosAndFocus(curFile, curPosition, 0); - } - - private void CheckRdoCheckedChanged(object sender, System.EventArgs e) - { - CheckListItems(); - } - - private void ResultsLstClick(object sender, System.EventArgs e) - { - if (ShowReplace) - { - checkcCustomeRdo.Checked = true; - } - } - - private void ResultsLstItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e) - { - ListViewItem item = resultsLst.Items[e.Index]; - HilightItem(item, (e.NewValue == CheckState.Checked)); - } - - private void FilterTxtTextChanged(object sender, System.EventArgs e) - { - HilightFilteredList(filterTxt.Text); - } - - private void SwtchFindReplaceBtnClick(object sender, System.EventArgs e) - { - string tempTxt = replaceTxt.Text; - replaceTxt.Text = findTxt.Text; - findTxt.Text = tempTxt; - } - - private void FilterBtnClick(object sender, System.EventArgs e) - { - HilightFilteredList(filterTxt.Text); - } - - private void RegexHelpBtnClick(object sender, System.EventArgs e) - { - MessageBox.Show("\\t Matches a tab \\u0009.\n\\e Matches an escape \\u001B.\n\\040 Matches an ASCII character as octal (up to three digits); numbers with no leading zero are backreferences \n\\x20 Matches an ASCII character using hexadecimal representation.\n\\cC Matches an ASCII control character; for example, \\cC is control-C.\n\\ When followed by a character that is not recognized as an escaped character, matches that character. For example, \\*.\n---------------------\n"+ - ". Matches any character except \\n.\n[aeiou] Matches any single character included in the specified set of characters.\n[^aeiou] Matches any single character not in the specified set of characters. [0-9a-fA-F] Use of a hyphen (–) allows specification of contiguous character ranges.\n\\w Matches any word character.equivalent to [a-zA-Z_0-9].\n\\W Matches any nonword character. equivalent to [^a-zA-Z_0-9].\n\\s Matches any white-space character. Equivalent to [ \\f\\n\\r\\t\\v].\n\\S Matches any non-white-space character. Equivalent to [^ \\f\\n\\r\\t\\v].\n\\d Matches any decimal digit.\n\\D Matches any nondigit.\n---------------------\n"+ - "\\A Specifies that the match must occur at the beginning of the string\n\\Z Specifies that the match must occur at the end of the string or before \n at the end of the string\n\\z Specifies that the match must occur at the end of the string\n\\b Specifies that the match must occur on word boundaries — that is, at the first or last characters in words separated by any nonalphanumeric characters.\n\\B Specifies that the match must not occur on a \\b boundary.\n---------------------\n"+ - "* Specifies zero or more matches; Equivalent to {0,}.\\+ Specifies one or more matches; Equivalent to {1,}.\n? Specifies zero or one matches; Equivalent to {0,1}. \n{n} Specifies exactly n matches;\n{n,} Specifies at least n matches;\n{n,m} Specifies at least n, but no more than m, matches.\n---------------------\n"+ - "| Matches any one of the terms separated by the | (vertical bar) character; The leftmost successful match wins.\n(?= ) Zero-width positive lookahead assertion. Continues match only if the subexpression matches at this position on the right. \n(?! ) Zero-width negative lookahead assertion. Continues match only if the subexpression does not match at this position on the right. \n(?<= ) Zero-width positive lookbehind assertion. Continues match only if the subexpression matches at this position on the left. For example, \n(? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 140, 17 - - - 17, 17 - - \ No newline at end of file diff --git a/ findandreplaceex/Properties/AssemblyInfo.cs b/ findandreplaceex/Properties/AssemblyInfo.cs deleted file mode 100644 index 19f73ae..0000000 --- a/ findandreplaceex/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -ן»¿using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FindReplaceEx")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("I.A.P")] -[assembly: AssemblyProduct("FindReplaceEx")] -[assembly: AssemblyCopyright("Copyright ֲ© I.A.P 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(true)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("56827e36-936c-412a-a90a-22008a8d9cac")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.4.0.0")] -[assembly: AssemblyFileVersion("1.4.0.0")] diff --git a/ findandreplaceex/Properties/Resources.Designer.cs b/ findandreplaceex/Properties/Resources.Designer.cs deleted file mode 100644 index 7aa9c72..0000000 --- a/ findandreplaceex/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -ן»¿//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindReplaceEx.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindReplaceEx.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/ findandreplaceex/Properties/Resources.resx b/ findandreplaceex/Properties/Resources.resx deleted file mode 100644 index 85c9090..0000000 --- a/ findandreplaceex/Properties/Resources.resx +++ /dev/null @@ -1,101 +0,0 @@ -ן»¿ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ findandreplaceex/Resources/LocaleHelper.cs b/ findandreplaceex/Resources/LocaleHelper.cs deleted file mode 100644 index c6a9cc3..0000000 --- a/ findandreplaceex/Resources/LocaleHelper.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Resources; -using System.Reflection; -using System.Collections.Generic; -using PluginCore.Localization; -using PluginCore; - -namespace FindReplaceEx.Resources -{ - class LocaleHelper - { - private static ResourceManager resources = null; - - /// - /// Initializes the localization of the plugin - /// - public static void Initialize(LocaleVersion locale) - { - String path = "FindReplaceEx.Resources." + locale.ToString(); - resources = new ResourceManager(path, Assembly.GetExecutingAssembly()); - } - - /// - /// Loads a string from the internal resources - /// - public static String GetString(String identifier) - { - return resources.GetString(identifier); - } - - } - -} diff --git a/ findandreplaceex/Resources/en_US.resX b/ findandreplaceex/Resources/en_US.resX deleted file mode 100644 index 8adf81e..0000000 --- a/ findandreplaceex/Resources/en_US.resX +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Set to true to automaticaly hide the replace after a successful replace operation. - - - Set to true to feed the "find" input box as you type in the scientilla editor - - - Set to true to automaticaly feed the "find" input with the word under the cursor when the carret is moved. - - - Set true to instantly find all text as you type in the "find" input box. - - - Shortcut to open the Find panel - - - rtcut to open the Replace section in the FindReplace panel - - - Extended Find and Replace Dialog - - - &Find && Replace Ex - - - Find &&Replace Ex - - \ No newline at end of file diff --git a/ findandreplaceex/Results.cs b/ findandreplaceex/Results.cs deleted file mode 100644 index ea62190..0000000 --- a/ findandreplaceex/Results.cs +++ /dev/null @@ -1,223 +0,0 @@ -/* - * results list holder for find operations - */ - -using System; -using System.Text.RegularExpressions; -using System.Collections; -using System.IO; -//using System.Text.RegularExpressions; -using WeifenLuo.WinFormsUI; -using ScintillaNet; - -namespace FindReplaceEx -{ - /// - /// Description of Results. - /// - public class FindMatch - { - private Match match; - private string fileName; - private ScintillaControl scintilla; - private Int32 position; - private int column; - private string text; - private string lineText; - private int line; - //private GroupCollection groups; - - public FindMatch(ScintillaControl sci, Match m) - { - fileName = sci.FileName as string; - scintilla = sci; - NewMatch(m); - - } - - public FindMatch(string file, int fline, int pos, string ftext, Match m) - { - match = m; - fileName = file; - line = fline; - position = pos; - text = ftext; - lineText = ftext; - if (scintilla != null) - { - column = scintilla.Column(position); - } - else - { - column = 0; - } - - } - - private void NewMatch(Match m) - { - match = m; - position = m.Index; - line = scintilla.LineFromPosition(position); - column = scintilla.Column(position); - text = m.Value; - lineText = scintilla.GetLine(line); - } - - public int Line { - get { - return line; - } - } - public Int32 Position { - get { - return position; - } - } - public int Column - { - get - { - return column; - } - } - /// - /// the "find" text iteself - /// - public string Text { - get { - return text; - } - } - public string LineText { - get { - return lineText; - } - } - public string FileName { - get { - return fileName; - } - } - public Match Match - { - get - { - return match; - } - set - { - NewMatch(value); - } - } - - public GroupCollection Groups - { - get - { - return match.Groups; - } - } - - public ScintillaControl Scintilla { - get { - return scintilla; - } - } - - - } - - public class FindResults - { - private ArrayList results; - private int lastIndex; - - - public FindResults() - { - results = new ArrayList(); - lastIndex = 0; - } - - public int AddResults(ScintillaControl sci, MatchCollection r) - { - int count = r.Count; - for (int i=0; i< count; i++) - { - Match m = r[i]; - AddResult(sci, r[i]); - } - return Count; - } - - public int AddResult(ScintillaControl sci, Match m) - { - FindMatch fm = new FindMatch(sci, m); - return AddResult(fm); - } - - public int AddResult(string file, int fline, int pos, string ftext, Match m) - { - FindMatch fm = new FindMatch(file, fline, pos, ftext, m); - return AddResult(fm); - } - - public int AddResult(FindMatch fm) - { - results.Add(fm); - return Count; - } - - public FindMatch GetResult(int index) - { - if (index < 0 || index >= Count) - { - return null; - } - lastIndex = index; - FindMatch ret = (FindMatch)results[index]; - return ret; - } - - public FindMatch FirstResult() - { - return GetResult(0); - } - - public FindMatch NextResult() - { - return GetResult(lastIndex + 1); - } - - public FindMatch PreviousResult() - { - return GetResult(lastIndex - 1); - } - - public void Filter(string filterText) - { - foreach(FindMatch m in results) - { - if (Regex.IsMatch(m.LineText, Regex.Unescape(filterText))) - results.Remove(m); - } - } - - public int Index { - get { - return lastIndex; - } - set { - if (value >= 0 || value < Count) - lastIndex = value; - } - } - - public int Count { - get { - return results.Count; - } - } - } -} diff --git a/ findandreplaceex/Settings.cs b/ findandreplaceex/Settings.cs deleted file mode 100644 index 4af3662..0000000 --- a/ findandreplaceex/Settings.cs +++ /dev/null @@ -1,163 +0,0 @@ -ן»¿using System; -using System.Text; -using System.Collections.Generic; -using System.ComponentModel; -using PluginCore.Localization; -using System.Windows.Forms; - -namespace FindReplaceEx -{ - [Serializable] - public class Settings - { - - //public const string[] DEFAULT_FILTER_PRESETS = ["(import|new)\\s*[\\w\\.]*@FIND[\\.;],(function|var)\\s*\\w*\\s*:\\s*@FIND\\s*[;\\(]"]; - - private bool findAsYouType = true; - private bool feedWordAsYouType = true; - private bool feedWordOnCaretMovement = true; - private bool autoHideReplace = true; - private bool groupByFile = true; - private int ignoreCharactersBelow = 3; - private int typingTimerInterval = 500; - private int searchHistoryLimit = 10; - private bool resizeOptionsTab = true; - private bool resizeReplaceTab = false; - private bool resizeFilterTab = false; - private bool resizeFoldersTab = true; - private bool resizeOperationsTab = true; - private string[] filterPresets = null; - - [DisplayName("Find As You Type")] - [Category("Settings")] - [Description("Instantly make a search when you type in the find input. Also search when the input is change via \"FeedAsYouType\"."), DefaultValue(true)] - public bool FindAsYouType - { - get { return findAsYouType; } - set { findAsYouType = value; } - } - - [DisplayName("Feed As You Type")] - [Category("Settings")] - [Description("Feeds the Find input while you type text in the editor."), DefaultValue(true)] - public bool FeedAsYouType - { - get { return feedWordAsYouType; } - set { feedWordAsYouType = value; } - } - - [DisplayName("Feed As You Move")] - [Category("Settings")] - [Description("Feeds the Find input while you move the carret in the editor."), DefaultValue(true)] - public bool FeedOnCaret - { - get { return feedWordOnCaretMovement; } - set { feedWordOnCaretMovement = value; } - } - - [DisplayName("Auto Hide Replace")] - [Category("Settings")] - [Description("Hides the Replace tab after successful replace."), DefaultValue(true)] - public bool AutoHideReplace - { - get { return autoHideReplace; } - set { autoHideReplace = value; } - } - - - [DisplayName("Group By File")] - [Category("Settings")] - [Description("Group all the results from the same file under a title."), DefaultValue(true)] - public bool GroupByFile - { - get { return groupByFile; } - set { groupByFile = value; } - } - - - - - [DisplayName("Ignore Below")] - [Category("Settings")] - [Description("When FindAsYouType is on, set the minimum characters to activate the find."), DefaultValue(3)] - public int IgnoreBelow - { - get { return ignoreCharactersBelow; } - set { ignoreCharactersBelow = value; } - } - - [DisplayName("Typing Timer Interval")] - [Category("Settings")] - [Description("When FeedAsYouMove is true, sets the delay until the panel is refreshed. This setting is to prevent overload of searches."), DefaultValue("500")] - public int TypingTimerInterval - { - get { return typingTimerInterval; } - set { typingTimerInterval = value; } - } - - [DisplayName("Filter Presets")] - [Category("Settings")] - [Description("Write you favorite regex filters here"), DefaultValue(null)] - public string[] FilterPresets - { - get { return filterPresets; } - set { filterPresets = value; } - } - - [DisplayName("Search History Limit")] - [Category("Settings")] - [Description("Determine how much history will be saved in find combo box"), DefaultValue(10)] - public int SearchHistoryLimit - { - get { return searchHistoryLimit; } - set { searchHistoryLimit = value; } - } - - [DisplayName("Options Tab Open")] - [Category("Resize Result List")] - [Description("Resize result list if the plugin lost focus when Options tab open"), DefaultValue(true)] - public bool ResizeOptionsTab - { - get { return resizeOptionsTab; } - set { resizeOptionsTab = value; } - } - - [DisplayName("Replace Tab Open")] - [Category("Resize Result List")] - [Description("Resize result list if the plugin lost focus when Replace tab open"), DefaultValue(false)] - public bool ResizeReplaceTab - { - get { return resizeReplaceTab; } - set { resizeReplaceTab = value; } - } - - [DisplayName("Filter Tab Open")] - [Category("Resize Result List")] - [Description("Resize result list if the plugin lost focus when Filter tab open"), DefaultValue(false)] - public bool ResizeFilterTab - { - get { return resizeFilterTab; } - set { resizeFilterTab = value; } - } - - [DisplayName("Folders Tab Open")] - [Category("Resize Result List")] - [Description("Resize result list if the plugin lost focus when Folders tab open"), DefaultValue(true)] - public bool ResizeFoldersTab - { - get { return resizeFoldersTab; } - set { resizeFoldersTab = value; } - } - - [DisplayName("Operations Tab Open")] - [Category("Resize Result List")] - [Description("Resize result list if the plugin lost focus when Operations tab open"), DefaultValue(true)] - public bool ResizeOperationsTab - { - get { return resizeOperationsTab; } - set { resizeOperationsTab = value; } - } - - } - -} diff --git a/ findandreplaceex/UpgradeLog.htm b/ findandreplaceex/UpgradeLog.htm deleted file mode 100644 index 678b71692c54d6871450ecd446b056e89802c6fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39340 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 K%FN|M%Kjg;!6S_T diff --git a/ findandreplaceex/app.config b/ findandreplaceex/app.config deleted file mode 100644 index 9448af8..0000000 --- a/ findandreplaceex/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/ findandreplaceex/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ findandreplaceex/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 89ced115485434f5859194d85607ef99d13d32c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6594 zcmeHMZBH9V5Vm=_U)H&f8Nu)iPbznZkT`F-Eq&$J zw7J7oz(hp{4)@K1@4CLXS=`8Gc0elbd#kxu<~;pnGlf9tK*FjAftE~UGh0DbaQjzi zZTrXItybsrwZ+;}Ethi^=UJYOlFHYg(6kOKyB z$b|5l;H)VHZdJ54PBnOBm72uf1>dXjdWj2|v6<&^hiT~cB(9pP1wxc0bD`gl)(Y}w?wFSSpxl>zQ zyX$>^y@*Fw_`Rbt0_UmpB{Pd$f~|eYK}|Ir&140bw2!u!K2lTlON@zz^lRuLn$@&~ zI#*h@J`PCX#59l#XHihEGkUblTxxpjd;A#W)9cwqt{Q^1Na5vyoj{vw58RTz4NCcP z4Xx)I=Y%2G83Il@@HBU!GvuoTG5hw^=!sfwl4**e%v_=|9RsqEwM#= z@yFb9egWoRFYjk>vg4MT+7CbM$LrQxE-slIglIpaDB4Z^5Pr*JD&`F|2+)4S&>%qL z`f%)^xXIi}OVqdrlb; z7um3JYWdX_m-Dn6P)Uex+IZ)6)Md1hi5MGoFH&{KK!Plq+`k`bO&mF(1%#tr%6{>oMs`mP!>b)yS z!3dqh1Mn~a53yd8-5<#+|!g^EJ;k_;+{D-ULb$=Z2S6@Ve8!Z z0o&sM*jbb_c~)jkf>e}JJU3nis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYn>8 zFQkBqh9V7!l7fO7393+{h=w1)yR#iB3864&@9pl)+c$4!?(WOyUmqjJ*eeWG?>SGc zI3Z_(P01au5)v8NDsQ>eSS1@(zDd?eqi1i&6UDE}=Y#UW(yXT7tx#3I9vVufkEpj{ zo{^qyOizocbn5P{nLCp-ac}0@$zVZy*`i_eI{7mYbrGYu*5?+A|K9f2>rXHDzx{Z4 z@cqM!%Kq+5=lAmm`pVDUH#a85h4^wlme&EliL>X5^SI6j6P!sHgu!xrPAq z5Me>)*(%6)uxepw?AH)rM8*9qPbz*7%9YU+_bKZvhe``|DGK4sN++Wb9__$!+Dg&5 zQD{Y}%CIH0FGC%VhG~G7FQd3kByn2D_W-)Sg03`hUIDfVE@B<@r|3&y%gDRv(pLb- zH{kSu5rFHM1KWZ{V=Ztm2o3;?R`GCiZ@9OCin&RYai0?(Z%UnwbE(_G^M>hi;dsvk z?t5*5wZyno65bT01gA`TW25b3bRu}u5?-c4^-kgLNS~K%9b+>dG+ys=n+EHQ<(-`R z!BSx@v`WWYW{0vkS}J1=bW82L(7uQQ-CQWeJ$3!xR3FbQj;_{oV||K5Q32B)1Y9hL z+Cr0x?w|A~)K(%T?kM&6{0vJ{92&a%XOn-GB$pY=j&j=pooIUGFSrXSK6|bi)S(N) sEJ|r~9PwJ$6DpPQQlx;;VbBFBl-Y_dRZ35#a_Fdaqp^W)h^=-10I_R%i2wiq diff --git a/ findandreplaceex/obj/Debug/FindReplaceEx.csproj.FileListAbsolute.txt b/ findandreplaceex/obj/Debug/FindReplaceEx.csproj.FileListAbsolute.txt deleted file mode 100644 index 07d4216..0000000 --- a/ findandreplaceex/obj/Debug/FindReplaceEx.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,53 +0,0 @@ -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\ResolveAssemblyReference.cache -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.Properties.Resources.resources -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.csproj.GenerateResource.Cache -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\FindReplaceEx.dll.config -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\FindReplaceEx.dll -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\FindReplaceEx.pdb -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\FlashDevelop.exe -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\PluginCore.dll -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\FlashDevelop.pdb -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\bin\Debug\PluginCore.pdb -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.dll -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.pdb -E:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -E:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -E:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.PluginUI.resources -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.Resources.en_US.resources -d:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -d:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -d:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\ResolveAssemblyReference.cache -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.PluginUI.resources -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.Properties.Resources.resources -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.Resources.en_US.resources -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.csproj.GenerateResource.Cache -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.dll -d:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Debug\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\ResolveAssemblyReference.cache -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\FindReplaceEx.PluginUI.resources -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\FindReplaceEx.Properties.Resources.resources -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\FindReplaceEx.Resources.en_US.resources -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Debug\FindReplaceEx.pdb -D:\My Documents\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\FlashDevelop dev\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\FD4\External\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\FlashDevelop dev\FD4\External\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\FD4\External\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\ResolveAssemblyReference.cache -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\FindReplaceEx.PluginUI.resources -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\FindReplaceEx.Properties.Resources.resources -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\FindReplaceEx.Resources.en_US.resources -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Debug\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\FD4\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\FlashDevelop dev\FD4\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\FD4\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb diff --git a/ findandreplaceex/obj/Debug/FindReplaceEx.csproj.GenerateResource.Cache b/ findandreplaceex/obj/Debug/FindReplaceEx.csproj.GenerateResource.Cache deleted file mode 100644 index d9457cb41f80b31e17f2ccb0a021cc36907fdc71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcma)4&2G~`5VlF|=9ea@RaL9r>=ya>+$JOUC2u83EF84Ds5EW{kf-u-62`F3U;*KwR5X!IqkTtoNbP=rQX9mT=J zL`WVSF*~)vc_-*L8z*3_(5i=rpcS;5jea8I#6V9$5*sF)jbSp8B76diBRvJxo3uJn zH@Y9S+q~Oi9p+K3yV)h4gM9>Q59Xjas8E0!Zo$p1$csjcuo6y7B+@i(AQF8d2EIa9y5Cuvx$VXKpu1QhIJunTdF4V@ zt-)`uI~ke>fAN2N_Fy+{PN|IAiXJ&1U5)+-@JVxZD3e!09S;JW%Y|RSs|_5SPD}`P z4C>|ah>%mih{!gIpM!~Ul;dSknph)dA}yB4r4=jq=h3m9Jx*j;*^eE(N_T_WU6#w$ zuv^Q~FKAVEB6Nz);O5G`WHvt3Ttou+<_ZQE!p7Fe6{x!DV5_8*dhq$3yz%Ao)0OLz w?(_lcgi$lb+h3o)z4s9@dQOVf38Qwro?btD|NX<2TPG^AI^~hoDTu866M&Wg)&Kwi diff --git a/ findandreplaceex/obj/Debug/FindReplaceEx.dll b/ findandreplaceex/obj/Debug/FindReplaceEx.dll deleted file mode 100644 index e26181a34420baa4e10d391ceef431f55010df19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57344 zcmeFa3!I!ql{Z|^(>;BgOVTsROeUFRdXf-&GMOO>5R!1qrsZ*y;ojP^uRCPU1uQ~tiDx#E%;_ua0mAVg~{I^8X*G~?kxUThqI`!$~ zH{0&BR)4c?)2>1>GweD8Zf;MeFE=#glrlT=8FyqTQy9uDU)P)2vcXO-PnZ6%a?5}26AcKsfo8RjkgEzx;f%S|lhmw!u84m|%w)RH$T zHD3M?J`Jcz)RX_IRIlVMwVjHn{Fkv*4RA|9*HT&bdT>T5^uYg@0DP7YDb-cV?=Jy9 z=?Nq#lfD|c0m;9NQro-SqT2^Z%Z9$Oqd$;hKUo6ty4?Jr147EGAhYP;8J|QlOO#q# zj)5+ySNx-FwyIJO?NjQi%e9t?|IV;d&zmtI{OA5P%+>mW1Zia-ST>ez%=tlDH} z5`v4wD(XPgR6{f!&A@=v#a$heQ`W^@6VuT)3J-0nQ{RhZ;VXo)b!=qeZ;?l{)TPr5 z7IUh#LeM~m)r2;7sJH`VrQ*&Mq_0?w((>u31M`eJr-F+{O$Lhnb1=2MzB*HxM*(%; z=P! zhNv68hRzk@CXX1pwO}SnU8t`7k*b2!*2fL0X%lXQqrv_d%ran{3>$;}N7Q=MhSF$1 z;1p9?=s4wqemFZFxl}AW10U7#&Uh?46S-M-%!M*^=^^MODiu@iDL^{Mf#MKMI11jj zf_W$?%o}s)CgmKD1XkUcg=dYa4rROR$Zaj4L(pk-_8H37Qze@PDS8N>IX4zK3EM7i zATdWmkB55+n{FqymPMoOgPhRzL5efk0iV<%S_d)>;MWblkUp*4Yf(ETv(5cH8Fiqb z)B{yk$DKLI$21H3l^85tn|l#GOF3OgW>G%&bp<}r67*PHMe%4<_Cd4|&7J@{C@^W} zMn?t%!U8=Y*|{iA*|8F4y)D($?2Y9V^FX0yF9wnwaOMk$_NL6OQbYJeThK8KCgq$& zW-$k*mb!i;`_Nc};a&i+A==SWAI)NzQnf0cJh%{<#BohqYMe#LDTT7dB&$kSbw2UT zxccZTjhJauI5AS{hiID$k2{;tISvZ#&Q>#2=XwP{q7*3siZ~bOhDZYq7#imc zvUb7m#z z^qkRd?g~(0fKw`xJrnJYw>;j5Pyi87HbJ?M!?+^ub4asGG*v{qcl0l!8o(1Oh5guB zj7BVyg+qvW{y(BJetGe36dZysqIM+8*%_Nba9N2xTwh_j# zBAJf9I|a;AU>tab6ePv}VgPnW##=+6?f{#z;}PAYN=KWv&`&4dT6iTYl|HV;kVOZ5 zs!~`zOrIiA_XTvkiatems$p(IVW3TUG*VS(X0ttjyTKFnUo#PP6hdRI|dJhk&R_BMN`#U#z@@xI8d{Ej~y1>_*6^Hou_^36s((Y zUK}Iv7gwPdFk34r(wIdtY}NDsW`1CnsA;X5#~aK5L>yQTyl9l(6f>j&yfFc(E7*3_ zf%8bEBF;=mOl>zs{`>UhL~4pNgY*isW|j3u@@t67NVpl?gTKcPjAdoa%& z_*oN12n}rc(H}2dkm+Y^T*ph`2VMs;bv@hCc+5rO>EevdSzOx{mhQA_(l#5x zd|V40|Jkyh9D+NE+U_yf!6EU??lKEmxIJJmVzx@Mk24EpM(s9)02XSgL*R~41V40k zw#kTVkhz0Nr!c3}>T=B9=!7gBAB`Ckce-*LY&HBHv}b2~fu{dT6*nVE#SW8N*O6|E ze&E9u91nP5HtOz8SN357GWSuYbxgM&bGL%KP&((5C!;j zng+ukq9GKb!Q`gCF>E0kLZfLgWFZ}+Y=740ngs(Ut;PZlmZL8fLDpy&UOs?=dHq{>gGXRz3?h(;BqV&SfFV1Tx+T(3(pDXF`9AbW3w#`Aa){ZazU0RtB=pBP=tHTMe4Yv&U1ojA9_cHiVf5>j+njabsF)TC5LmFMrc-u)5vp|G@?d_7cb zrR?UWrlJcbh$M^nz_8RN7k``0#bb?=of2@f;?4*@5GNeXynuoen`2E!GY>L1E;i|C z=JUwO3aocAH7dIoS&MplVVI-4arlENTD5{lMIsXDVUlPFARV#P}#!C|x!tvXCwDIO%unW-e? zIgDYzs&XyHEqfV?bSsea5CHh{vPo=A=9!jiSxt^Gs67R6uNl zKI%PJNu73&YJu%p)3mFQ^&yMCbLK1e=U`=D2lrz+M?8MmPQ4L%S%41DfQ+bPgV@x$ zoG9D55+t&eOq-yIyav8#XED{`9&E00*w{r59mg66+mSXoZ(^D4Hb=04UI2`ao#X0V z7zO+fyDnZ0l0!3Dr})2^g}71dw}>genFw;Si`Ou_B*=CL*`+~tS&&^W*|)ITnUcMh z+0z5;X_A#TPYtkLLAEo<&XKIhuu`(Z41o+JlkB2^7BK;^((t+@5M)mdvL^*u z%zBUSydZmCkUdwj(!^HDUdO)8mhAP+!YIH&vL{GZx;a0-k|D6^|13s;aj1h)qn1iLB7!b&`BZ;T=-yc1N2NZ4^N&z^gE_Seg^YhIom^78D4muDj;pEay$n60(Wjk+O1 znT42FlZ!V2 z=lubY{Q&aLtpOs#^On}yGJ#mDv3MIPZx1Nl6G9@Ar1iwsbeViaHhc0BaC=w-U2|SwD!#pktN&AilgG#JIPG`awkN(u#f% z+2Zv>s(fiwKLq{VP(O(9`$1r=e$egs{UA`*4_*3U-DLukDh7tQ@(vN>wnhWnA)>Xt zqC-SZ_BuqM$@xgoio1yQ%SK7qE+g8E5)ppy2#nP`dQ!i41j>3xL~BPykBBVq5ixG6 zD(I2aTT#&?BByvgk}7jprK}TzUPAN-b!Un2J3(NqPH+wIJ3*kV6GXHQS9F5N@=g%r z-WlqI)H|V~6GZxUCRM&NsuP0#UZ@j9_?;jyRwuZ6O>51R&1&M@`LRH;M6?dJPAZ$j zf=qgvl{)KLr%bbg-cPjAED?|cKHT`9JGI8SbY_0RnOQCi@$STUAPW(ghfQU&5ZUC3 zB30U1rA!n-pH8$9g$Rg(HN=Q=mllOfca!rEVc??y(7LNaLXx{jLJ|_uy1qhNg7mc| zb?zD^qM$z?5|N0pw8fAjb1${kRyK0PyZ;fAg^1R<6{~|FQ=Yn{&I>rDC|8%DYZHOG z7`ymt(ST74foapq1R=`Z%-Uw9A|mrvN?dM5#JBo-k!lXBl?|Psk5xqJ(^jHDDwrkhzW0w3LZWy!)e&*g}ZKQnijRGdSXXKPj~sdpjS~b|Q!uMs-8b zwaGxG4E%fnHDClJAOe=Fm1q}V1^8+eI+3rwOg`dUCwfCH)xrV_;zsf*)3cx-3<=0^ z)OT?N%3K@~ndhjS@~D9LaxX`W+ms6ACZcs_g_k38k|(oNIe}HmL=^NXM4MSmgzx1D zz%E8b1#8%xZx@6zlOs65D;s>G-2)*ZrPjjM#xl(k>AM=Ka?L0q1${$ENFpE?HZ0|? zhJk%%vW0DQnIuHJ4~HZnqP3xQVwogFPW99!Rh}LtiJ*TJl7t9If>^g)lC{7$Id^OO zC6M_f2ezh6F5=y()xj_l(Yl~wN)zeN4XF|~JwePPkFs$U^yx&KaU}wRzRwrbO!0NV z`+^c^y|6+`BHbH8QVP|k3Mq;7Lr|#_mQoORkCIZ*UkXXNJ}eD^$rZv7=N=0QLqzMA z3So%!EnljHg%LzUO{K~N-A=So8Ml7fk7EeEu$_p^Z!nJK=0&udXGP4?N;$YA z&-`}OFcIy3FeC{Pt*2ImK1BNdNUGdFN)kaoMzqlg5s>7XN=fDcUl|P&=bl&>3=9#7 zDar?iNM9jRmka0I3xuTt>;uIgGhhhD^;Ev zC551W8IppCCU0L!03u-`l-umNY;J40OvJez;{weHQKd{o`U50Y&SaG`%?Nr8(MB`6 z(jD3z6M#(bsg!A}a5j5(0vRlPs&!VG;)r*z2nk69W?%V+oXBb3S|U|GFiJ>4KNu2{ z2w!ot0XUz4z~-3b9xZzaeF7;)qfZ$dE$1kssW(?pH@0?^b(ihA-xwc^2@#FXy@51x zuF`sbnOh-|zeywjb-&YBH&#Ob^hfuQfs)si4(2twb8K{11$r_r6MSun@R_RN5oi)AimL4gwzT7izb$o!gfr~DX= zc;B5!t%a;*^eu+_38>rV!YBF0h!@xDDst?;n`5xyEk z!p}n3=IdcsxFymk-xk~+YjV#=OSi`+x$l)v=X2VCSfOH5N0j^PkX%G$en-8PN2bKL zj`Q3JA2AYT0W1xA+5k^-IFxzuyhPp_^SOZLalV|5r>$FfWb*Y)~ z6s6I*Pxq5Rh0zn`t`4`kiDDnnhk@xEc#0_gjo(~eQvmrDWtufH& zRiGm%j|g0{y}mQZ@i5n!7v-xc88cZS3e zq6TbqZvlZ9A`|JangrZ`2(`!){}%5oLXQ8n!bs?8CWPh*-5BU)W21SpItF$3*l6yH z$Dm$Pfo^sl)ZM38jhRLmN7>>^wEO9hR*2B+X-Ao2h;Oa-9Ds0h9tv2yVK=pkOus>< z|EMX5Xg$&SCk>qiXo~as0Dxn;F@T&eAV2x~Hu$vac%yxA6Uc9mH`xct<@Wd_``|{& zG}{MzCF49CRCd3EW~bw#Lw94d9H$k(h(hN}0Y#JZNErBX05m#Z2?JjZfXrg(4dJmY z@y4Fm3-=Ep%@NV)JQ}LiV&hxO8B}@L#7O7+IbG?opi-0bwE)08{eVADzg~vF+Q)yR z41XQ*-vr9}RvG?g;=fJ&cgpaXF(xd2ybOP>k2j8%!ypTcH>gCkPV)wpW8#i)2*#X< zOcb5>C^%RyZfE;e(L+SoOo(Wm;nAO6Nl!%Ud0z23EIuv7j)=^*P=gzQFk#$!X7AA* z458PJjb2-U_9qdmHkP{;qTKZq0~+QUNQ9n1?PbGGynluwjJ)|HEW$@l^uN%4d{kFl$C( z=n%?jvZFAwM`39Frj~m<1kGw4X3mXZ;w<$hP8Kp!v#j6fd{+Y*H!1a-C30s}dRy7{Xc=rS&;oW7v0EKdSL@qu-Wc*(pU;JrM;Fdg&^PxqKg!2P1 zma@*8nEPp3-W9;0RJMU-rS}D;*@KY5ul7)=;83{W3!wtA4Qf0R6daTtWLZOx2Bk6Y z@=FAFk?y1P{HJBN4@xg7w7%Z;itQO0g*U~Nx}w;WP;9S+H;bTDQ$o4@lFP#-6x=U4 zEG5zbQ<0K;#YUFk3eRkqQWx&|G-fYk#o01u@bucQLK^RkMWI{VOoIiSfcrs5Kn?^T zULEDQN3^+W3!{N}2xC_fg~_0>`m@4Vwt%~9p92L-#q&H(J2&|sBJcd~5aJmkendos zyZTs445)fSO~)48eRJ*vD*G&oAtJ7Yoe29S3K2{3IbdsWVe!YTjL)C&(=+1Z^eF}41c9OR)2GcgcZrn1{eG5d1p*32SIh}cLJ z-QykkSa!RVL*G>jBH&2}`VqPK7=0y*Y4JFarUgA=Wm}kx>${mbK4D;(uAUwa&G2gD71{^qH=wwK*M_MDM z3BoAk3t&0P`5DrP2}fetizuS8ujA3PnPLagY(Fc;BF@j*lZf*Re8imRk>Ww1><(6v zr&YuvXax~nID083Mnq~GD)8i8_xIxyBH@1Acc37UbKK1cpxs#Lx?arv9!X-2#eV~1 z-hKZiKJggWucVz1g1TwTb#FnWoBelSoL?isbxK|O5tKSFj6$)oS%lTa_Kq&`O_Y0)uxjt*CUH82H2G*l&dU>r+F zU$ITD>XqoWhFBTPm_>X@PtEQ=2}(f* zqoNjJ0ItQ~ROG#XZOFU>xKH7)9(jCNSdE*qyU11hVnkA9YdnpEit`$h2aaU^!w>BA z>P6IzU!Gd?1q=S^`3B`(X_|5oRU9nEreYkknDYvmM4VUgA@isKPfBj3 z4VgGVTC1_siFAxN++z)iIA#e5<)g+p>)^_X; zk6Tg?8~W=H8)wE+s3A0F990=J3|`zHGZIb$vtY1dX0T$_kPU`Xn>1P^>6<;(#q^5m zsgTd1!QFVVQqcGkCy-eh2noamvtgY;!YfDLF)?$0Iy*TNcedoud7d^ zy2&?s71>aulh9l=kPLvPFq!kOtZ#V3i|Btwy|2Z)Da^ac(Y(Xq#@J0r+?GWPb$V>Y zBSg?a9k6GILgvS7-JIIkLqydDr~?t{R^|dX**~p*7AA+&>Pl-6BjoAzOHz(w9#MS? zI&i9ynDT555wf%8^Vw1LurHe|SK?F3!WSL;G@55B7r#Ta<sU%SeEvEBRbZtf=sC}4X3}qyStL6yRAot+1|Cc6Uv#gp=WfU+isJ%O1`I$L|}OC#iDd-}Lj@+8$*of&Rga&zE4S zm3=7V1#c|;)l2&+7_jQnb}60$Y!N3yekgUD2@zuEQG1|9EsKjo<`L4IAq^YBC`o+z z8z6(oZzd9-?UjiH3XTmI>=P*C=tahOSG|(PUw2V_A6kKqWg0QU9cxicq!XQ&{3R(+oSBg`SnKYGA&2BUUxfB{%AAKc2~ns!r$v4g|Wu^{SMMw>}KJ%aJ%! zgjJ}25|Y*~0uzku0onSxat*NbY{{MP^c*-`-=* zYpANP%C?{#Ae-IGbm?TxL;It2bc%bk#LIfTWV%&=mL)y3lytOuP-ttDU_kD?tDBx?q z)vsEiUBNs29qj5K{zALD{QniZx&s|H0hfN_IPOdneU4>hD}vCe($@GKavD7|eq}wK z7y~qUo{8HkVuEcI=4l!Ix>5ARyf*#XQS`)A(ANa=a9tHqc=m-Lqs)KsH5;=*U>}6n zh&rv(e{ny=noAS@>P$bVWrsP?zrj{bpvK35*;iuBDGT3?5?TS9vfH(Vac$!MW1i+A zUM7Qv8=W?!;!&|u;ZVcwn5So8DFJtc8ORaCCV<{o&pjNLNTAF)!#8n=0kfZ3ub<`T zckuTU%7oGpoSKbAH~R*^J|2-q{rOrxurhr#hl%jie5hX504Ud!$N^!jHZBW)EX(D- z+K%)2Q|@bo7%DZ#EvF-gKGKWe9SYv$Gjxe$qv;E!+DQg-wmQx4Q|PFRXQ$ne&|9<6 z2K9>%bDj}+@u-6>cS_=9ynG|-;EN`_Fv8LsO&)24)~77uR4S9YgdVu8aJ-Q%(?w`_ zz3&XDu9yk4#^iana=#D1xCG6zo}`yn1=*YUWSmpn=GHcn>U-@;BR*{{lG2u<*`xBS@3oQJHXe%O>8TFL3R z=sF_LVjW-f2`n zO5L*|l?;klozXh2X1CO%EmWybVDPZ*r+kQhqgWDXdR&$}@OUJ4&E^qE^GIa}5Qa1} z9`^0bAp)4QP&w*gRmEnn3#oGg5^uT+zp194rquy8*29!q2>OcE^kYEO=;gB3{S0g& zCc$G<5Ikx`bAZUg`QW842`*|}`0s+jV5@y6IEAL8C~nR~jd#Bd&dxm4L!Wt2z;3te zH^(HM`Q%rXj=E2PDqVH(M8MgTm|Ov=8=^QWYTD|Y41}Dk@oWbtX8{~X)&KBCpA<-% z#(qD$AjGJn1&fOAP>9TH#(Un48b+)oDifEqUxtwbdceahj4QTvG!xh{ z?AKo-oKql#;*mQ3zsY-zgdK74WMS&iMI??KdILYA+1tt3#F4wqT=Z+yRUNueQ%j}j zp*})Yhqm#fE_x_uK6mi*AUR@`FwLfL+DHQjN$TLxDRpQ&ax(22b(ZhxiYRzG{SPAP zw&a<7-9#CaRp_o3pbYKvM*nyOp@s5DD6ov(A<8IoSHIh1lAaqZH|t~>o??%MXD7<= z#z#^UW8vBASa|BQ43GU4=PFeo_}N&0_2AGS>-87wxJTpQu7UR&4k@pJ7EjUTRJ`zT z{ehI{#t-FDU^gCu%Jo{oHRBA_gGu2TcIQ;G#D;Au7uwSR)ZoQCI>&Ex@k)ev)0XOZ z46niA684mxy&u@x4wW=MaUysvBCklacq@vq;AHQ`XRrs1@tq?c4PJ#)SH&AXm4sXu znn7pAh+;>a?HK-9x=HCA%1MXz)M9C~aej3~m%kFl_e0nX;>|qh4GfDtwhwAPr=w#M zT9_9d89uf6JXQ49nEfP0(yur{8;FDbGW#G|HEjt<#w_0&l=Gc%oL8rjHwKtOIA=hH z>W&lRdfSlzp4*O(pjo~Dm*WNaF7yE>1*{Tt&O{wLzGKh>@LzhSDJ}tjEf0i&i2J9( z^4z|Sh_8E{yiUru52H_ZLApo%WgwfZm6661>U{l)-{ea+ zMsX|kt*^cCPnZ+xDERfzo1nzEpjzpANyHXYKVz_>6Eb?kt4XT{#LvDrIk0YDq$Q1#*pcz&rqz-7i5OC)4 zU%%=`=~m!I)FyQR6qsfBcmChPavd621|eK9E2%YLz8ASY_!|O@4c=cXvF_z)i5~>Z z)qkDDnq@D1lLL86P}B%gYI@^e!?1h=D%m1<|LfT1L@EbwNG)K<@)ZNU18g%rQ0`82 z;LeQnKjEVSh3$q8=ObGVn3$c(%!R|THGPyA7ih*T)0l2d&+zSVM`pqjC2a}UlL)XRXcLqIZP>7cWN z#P|odXPwu2dlFy7DD?;HM7{)%*_-i47mGz*-H*Qy;t#ZVp`8B2p#x(N2KhX{mw1om ztQ*H4+$jE~OiyC?e&hi_-&KzyeOl62)bofC##zq;v&AC*8f(z1SC3f_SSfY3P0T@i z2qDb9lK)4fF|{G`07QHua$f{*KdqWv6;l^ht*WY1->-TerS~S@pJ-IyOt5r%vN4%b z7biC+8`aIpHzw=U*OP4VX-R)6sg)vTqNL|YdZDBbN;xq?Vj>R zjL1z>E}s%pcTZUaX@4+G)zqjKOr_@EAecU2VrodzeUiRW((5GsJ!l%$s%f;4ZPT8|O@)2a9)KO* zfV571TrfYCe4>?_nI-8PCA|abLG{~K_O3C*(j`c*RogSX@o;5^eBLbSJCN3?DQ%=# zB(zB_4_Mc#U$>D%)pVA2Abpp*XgYOx)$|9De~aY*aXM|gYQ}w$YtR>x`6oc*ek_Yt{3>*Qw)YlFxie*Gqa4(#h(VGrv1?vPvHJG&ezJX42PK zc#CKYZc|iAo<8Gbbta&3Sgfqfc(p~!((-=T@mR1(IaS^+J|64arGRE&)gza8pe&8E z!VLnwM<_2;w+i$jf%58ZKoc>;E!75%SZa=>r%1X~(lwIqu+k{K(VB?#Hme!wKM4NY z)-2?ow(#y|^}GcM)l1fVw0dgQvq*PU{ZyTM`01*Yb?)I`Ahp!Xl2*l-pBS5jbcUoS zOS(qVizF??rl9l+NpFaCf!l+LZb9gseekct?wrHBmGJ8GNk{RJd8A%x(eyE)SHpcmUON?>2Qg27P zKgGINO8%{q-X`f?lHMcqkEGrSnr{i_X~FzlYW+@l#;eIET}_%P)ogJ=_033^NxDhW zoTRR#Z>fGSN^g?5+83;5SS9 z2Ei2Tr-J4ss~a@)8m3t5F$0zQS@Mt80&v)6pemctVFT3(bhCk)1-i#T?E*b2(AA0g z_F~j~)<8?_GXcG9piTC2K;tokmAX2SvwHw#4RoEo7SI-ferCPj?gezef$kFMI|lle zeICkA!~9k1i24D_qH32wSF7g*dc;643G^oeRYgcSex|gp8U@;JpsYam80Zv%EW`_t zQ!N*$(LfhOwu4L7KzWqK)TaeHq7Di44O4c#K;vg=F4so}KzWjZJ_snTN&+2GKaC9H z_R4z=^it#!K)*4Rc62YI3mynl7CU+wR;beqltx*Ndc;6;qF3SF*FW{4>)>VPW?Aou zT7`NO)Y}ERT5XBm2tWQkA9^vK&?jRv0R7ZJUqV@{`lErKKv}Cw z;DQGG_sdwjl~EZ3{VCQ7XpVu##oMhmwcJ2$@lHVN4Rj*PrmI~BT86Ues$`&El+94r z8E61yGt|unI*78F>K+4Ki?W&OAp^Z9ei!bme$PN3jo%39Spz+YvRUe71AP}|vv48L z^dWvX){7Pc{V6`*I$mWpB-+iYw+nPs9ZU3BSyk#{y`y+D`&z4AecC`B$zH4z51qiW zo75@EtyYJ+XD*?uh0A<(pFlUM_uF}_BEK@w{^V}!M3tTwP@bfc0v(-n^0Z9qB-QMf z-D91kRtt1Q-Cxs-wevR{q#kDRXRVXf@{Jn$X3c!~qDKV6?5OFqPEmC{lE4i39qKJq zEk4v~EmU$`0V{tMWsB5Vn@D*?C2I-Q;HwS}WDF0v%CLp%1InRXDF^ z|9(^ZE9)%vvOq`h4%A+Cwt56-+>~sBKof8(O{hhnVFPst^gRPDuIseURtcQFlk#ko zouh^gbbj3cp!M5z*-+i@tkvpH16^A8U)EanD+9f`Zoaia_2)F@d%l|!v?N_)U#=Pkb-hg}JFKP} zXeXdIs^blG5YSa>o`J3fbhTPxpj!dGS#2}W{ea%0b{Oc}fUZ+{f#{c}+iz9Z`A~=b zc7-q-|Bk3j>lfHJs**rgC$6l&3tsIy16?Q39R|8Zpoa`}NBsg&e$PO63-l`kJs?mN zDy0p6wf=PbCe>n~$I;$RikHGz_H_L+`(5fR1O2RiE%qkcH6-5jUFxug)Hw~CLHP{> zo!jsR`xf;Z9~!XVqb51RQ=Qx3+PA7D2HM`R-@Z+~*+3UJTyEd4?l90^fgUl?5rKYc zptm;+sN2=9VJ+vo8t%e*#bE>8)^H=Bj~VErD7yn>mU_5>CmDEp2xk>vLmI{)N*B!f zdgA|C@_60>`R9<@O6PU@^8_*f3VcN29c`cqV}1pE)ZoK)mk8%hq&6a3)_pO=Ka6=< z@PAACig3`qh)ke_l-8DhMU<8>0X)9fLW(m4q;Z8SZlF9_($geeCFw>a|a|7A&EUweTil-t1nkLT?8%XFe`TaP1c%vN8OvG^v^sCpb}l?sot9uZyZ z36y#>>o4K(l+bgmEu}5tW&BD7Zm(jeu+_RVI-qir79_ny(gTtnk@Ol#k4kzA(oX9( z$=@aEy^`LK^h*0Nq&KR^kz!r8HrY30clV3NkJ!&ye{5Wf(+A?)l}=A->a<=2<{`UX zt#A6Gy;W^(TC9#)7dN#dZrIy&7fwa4LE5g~-NafSKx)|^Z<=OpRrjH8yLzPQMwPT* zXnI+t?bM|2+s$^%q#q)kH|aUF+db(QNNpRj7Y&AXzqzDQkOLMs!QyI;p8L0bWd)#?y|XO-Js5$%)aC&-xfJ) zA3**Vb=BnE)=~S~$qzw>cT9dX@|^X_$={CLZuEq>OUs`D@y+~`IX29RX-&f z-JoVnA-DNclE^QbLY`|S-44ui7T2Yu==NdsrPF#0=?T%tk@f=rwJCd}PuVX{xeRGd z%bTJHKzS|F{mEOSFM{SHQ7a;pNC#9}(q>89kWQ>(ioFlg8x_+5>>cJb4mSqdWd##G1B1QS;xo7e#8P^;k*O z1kCexX4>QwwQ-4R(>heAP3yF-LA$*;&u98D(wV7al7C9l=Ouki(#IuzQPSrmwZz(! zlBOkXmh_mlVOlRnd2rh7)Ggqjj2^QNO`DfGX1!(FfV$0KZl1OfnA@h^sP2k907;Hn zU!C?v`9o?;1Cl-}=?^6Rg`~fiG}HDmP*SR6R(snQ z?dB*wN!nW1_Ni2xhxr)4P*K&QjT4lb>?*JD5GHVyJ)`M+BdzWnl?GTx(9WSNB-T@X{8^S z{sip*qtkDL*ZR!#PpWy*Ns|{<=c2PFe^Rvz=9tLYZgG^`Ey|pW((`Okk4?uMjMAUX zi=I8bw|awm3YZP*=hM#z|ChjRgZcxc<@_p2>-(#Fth1+IUfmPwR&q*d%Wjcz6CjNn(?dZ1JO-(wB|_kGc!^(8={<{*FZDlYc{BF z&FG~y&Sbjd&jOvor5P`Vi8z^~IUHYL439m^qAe&D2Yi2ke(- z?yI>!I`O#61%D+ZX*rJm{2Mc`0Z*=F8x%e824y!yqusERW%dTq-Uev((=|uc+0(y{ zlp}al%{*>m)lpeN61X5yXC?6MKm*R^`_$UnE__3>2WhXGiL^nrN4v1&{tC|5cdHA4 zDXM;?)#~}0F8tyXOJ}G*BHtmH6IC3grvl%nuC+gB_o??NrdQf0NAcYYW~bQX~F)9J-Mo2f7kwYv|vANKZEq^_CwKY1al4Y@2a{+@YjIy?y9@&U)o=Z-G$O6 zNWX5+M*6h9Hujj{9~1mzz<&dnr|lodo)^sX$e$d4UTB_2X=^+gdD?y(QgTa1zHaYF zo;=%4`gQw}c)OIggYt=Z4`?PNdLqBG_aY@_5Ad@R1>mnh`d@Z)vLN^Z@b6As157S? z4e|?+e%+pql(lZHqE6moztz6MexH52eYgFX{cHOb`;^G?$p4CbIC4+q(~&Pl{w4B4 zk^+&6} zQ2qVtA6EaY`nUKU#FJ~ztm&&cTJyo0yJ|jB^I*-FYra$SWX=Dsu@Qwua4H+c*v4^| znZP>`l6+Q7eLVVEq@R-XK1n|>>DMLwPV@nk{vi5!q|ZhlLHZ8ZG=7;j`Yoit7n)b2 z-$lN<>ItM<@GFW+HC7SRQT0cp4_4u@Uwx@6hICv4mrzxUq;nFujHeb$dX}V{B<+`U zI6)4VN&5B#Ilqu5{V_=+^~|RvZLFvKFV&O&n51?C^T`I{>m+TGw5`6!Rw~o54(ag? zl>akA`5;oQ9~+-l_=`YCHgv^kwF*{mW4~34G>&iEZ0HUbF;UilG^HjYJszjnd;$SK zc&gelKWyBo#m#8ww-xCLSl#h`2WE_or<0h@$N4IM$?_mPsQXBK@1msVX^bGK`aURI@OmM z3h9Rs(c0?6@DsNB2)WZ5Z`U7j!YDQSBXZcwQ_rC5_I?pEjJ3p?{et4EwJNFf4j?&+ckXiP+*6d*Qy zL@<+wI*MAO)Z`GQF&$d&=Jv6E&z{_XC!)@q3PwSFgSldHeXg{tsNB3(-btSbX+e8vDD0JxmI3~d_VyL@EwZ)wlJWsh`Q){1 z#0B2N^b8eBxaCy1G_RHyio;GZuhu%H!p;LCfReFA=hwRh$1Ri&XhdEYZXWK>mGZtF zlGV~&vCvmk%!(-%E|ptWs=L2m>KI!os%35-b+y>KcN()MKQz*V>%p+(T))q{H@7!v zM;LXxxG}X3*UNNeEed7_O?6o?5U>x=&NdbLc5~8jx@^LAww@sv#>gI8LvKFk_U)=f z>TAlx;)e3T$Y9Q0v40pN%Nxl>%+P`S{&g~PMYSqlDubct-rP=zOuo8Q3}SVmSR&Xx zIOsKA#JuFR^NP%Db_Q{GFI)r-ZgRqiRZhuS?-aX-`d6YKMX?EtEv?tfqZp%WOe>@n znt`ud0^P#})zybfhf1tfEY(`tleEL-y4xFNX5Oug>kr4{kfR zkl*Lqphr4J5pJBrxvf~)y?OPfZ7X}$F86_rE7q^>UbaH*gq?YJAt9XHaP(mob{Drg zBjUh#QS?0A*c^>nH?%B=o0@BIOH(YBcR z4;LScOY?)yzObk5f$wwo<_00!Aad)Wu{``eJ5Q_gg`;N55Tr0ImJwCrJWfGBJXQfl zXwcsPBQ#|gkH++#j(OWkPsK>x$)JnB^f4;_Hue zW8q1Up$O@gl;xN*#a1eig@Iz&<#NbVKxIe6oeFngEFsIqF>`R4GdQR(-xgK3>*fxK zJK8>E<>rtofhK@%?rYu+}TE1{dXWDR#C&cH*s`954WF6_mP`~Aa%FvykS%4lV) z3q$!8L;VPc{I!+dRjnB6bNac$uF99fdF?*EreUr6d67^g(p9#|=-|gZGeTziX07Ks zmN|Qdogsz_5MWUCa0$eM3P025l@v`dAbsXi9-6q&1f^Z-?3by%34(8OoWV^6JV#(Y zH|2JC>uM>;0=pjGM>%@2ko>Y;`M%v`#R<)EUbbtun}K_OMO(( zS`635en$z=w``<{3-AGg_59M_Jnh#R@)0P7$OQG|kYOWAK+O`%FbQD%BYTFB0vDw{QGt-%N60xcMGi+T93T&k^ps2&J}CXSK0MAz_jxv(en<+*-Z+z(>I7A z(JC>`uGnvEg-tAjRhW6kVqE_(ASv^e1;_w zx(PotfCwYsE5N3_yQeV3W_p8=Of=6yG2Vs)0g(18iuDFYYXcFHY+g1w8um&hd_*BX zH#x*I{4}HjiZ3dbNU+j%_DGQ@N8oT}j*^~q+;15Vi4}HeAdlyZ%$hFveE$mUZ@4dm z+rx&)6pCazP(`4Ie(8vi`dYWsRb0xY89WriEgjGmpy4BGHSsp|H&R@hW9`Ahz%B%| zH0yl7bj{#I2R%jUS$J97v=eM`Wc!&Xox4(FoCB2ppJ)GORw(t`wLovDBLBffR*d zDHolKH|KJ!g%*&81$$qHCkS^l_>?%jSX%Djp~AezitX($(fqt|H$gwNH@XJ5t3kI6UgEhnsI^K49n8HZ)qR6^!+_omr&d4XwvlnA8 zt4@W)x)4q4IgrP3Lw|n1*X>}{8?$)yiem)O%Z>&x8GKRJI3q>9!<0>4pbIHrD6B%R zZJTCL?!gSw_k{*7_ksrLyWnjVy>@+r*d{Hn&SMuES`%PN^avH&2&_4;joGs2c>rfMYR@N89CkIEa2>u zP~YE;5sOM#`UEfRJW3y+MTkHw(cCzR0=~w>vDiOufFDO=enX}a;mH!o_>2vMpfcl4 zF)$^qg!%qV;Q`+g4%XScTioARkRGo;J974}Ex*okEh9uUUb z2Ls2l$b6AchwJE25XfB;@- z%sdu;-~uBl6m{e-esNIF@f4N^Si#N$n%75Ta#RR`<>b$tJMA3I4R|4*8p`hzp>{fW zv|3?_#VmEh@A$Eh!xpuO=RR@Zkl!&fFu>p{;GuEYK5=PA3}K$G zH^MS>19LYlEf8{ivN1oH+b_9dz;2_i$a*N+fe@n`)j?WN^>Vt88mbhr=uTNZdzlsJ>M;R;dI6Gzbnw03EOj5mN;!Y3e1>9*d&=fIc zNjG!ak6@T7t{dv@bMyHj;f5^CN=Zyx?j8L>>__{1F!G}j^1=6dYw)#E z4yR<&Wzp6q$G8MkUa=pMAwxRfHoE%c+Zg)jZoCr#`wr7{=&N_6h*{O|&B38Qe3{r= zI>0d#dO;xi#s)$VTqnd0vQ%REUVhz2$j@Lc*C8**1t)&8!jpntVp z3Wt}%0yE!yp^3O^2p*47fV8kQ*SA}juE)a7Lta)~lXLOCHzzvR1|Fg6V?V!HOg_wd z%rfa%z=Vr`#Ws!n3`%&TE3&W)sqE~fRL>%xH~=>xdR~cuNLmsO0YsDREeyhPrJ!uX zCmJckc&gFsRLC2W4c9(d;5O1_;>+Z`m?;Gc=fhe$uh5Up1CMoh8rhA*o+0@Xh;;%8 z?f9pc6>aJw+#$fMkwo`#6~=QH!b#Y)9waFz*OenUd~^2cUP+f%xdoZs+O~LJr3<;N zvW6TT^GdW0vN3<**}jl^n8?P%<2_@X?Dz3p@rc3tLF# zm#E;Zzzb_w9vl?-klwuO)c|U7xFg zAa1Pe*@Kf@s0r_;@xGF#@7AZ9(hDtRz8_8p-b^0{y^gFNi58a9;EcvZd3uH5w=McB z19MzK{dmEv&R`SUn}$=E<16)4$dU-HF&Zvs})92SYeCV+C8{0hi|e8@=L|_ z2-~qMJRkp}Nqnd70d65eF3cp>3OcLri%|YszcC z-b&$F3%$KNlUyhAR@U#z9lm2a<7&UWj*EwJTLi*oW|H z#xAs7RH|n#KG}yp@IMKXbmFezNyslm?j+?k6rpA3G&I5or#zc`03hJB16C z)!YLOT?!rT7CBwy`D!&hzFFKQ+8f4g#S`$~KKYM2Xq$!sAe0PrpWPJtU;8I1U!O;7jGYFnavt%j58svgFlqf5|(>R8Tf4n9YL$) z$k)M9qkCkOM~plNfC+f(nOH6vv=HhqHAo$M{qw6?5SCs0EdQ-g9Avhi=fXSPd=Phy5+LP?}_1A$K1E3b9$Esbhw zz)LHhFX?kV$!fzmbx~NR*EYIc&={qlS@4C2)S*YMwWiz1Kt^q@Tm;lqn$w`jjElCu zcG>1`+#>hJC@9hWq?-@wsl)H76jBe3o(og~Mf1erU~>LZl<<&iYQD+PYeX9XXPfSV zo?+Tcc-;8zL;WsFdX|EipB`!#o)%W$umd;;9*C_iMY}`5Ee+wiKn1#GVO%iJw1)~h z%YJZ%m&;C>z~lHZwil+k1Cj@I5s+!cP8_RDolJGp^Nz)xxY7L3W|OCzH5mFLhRt}l zRlVZb`=FDZ&_tkrk6s%KYrJlsn!PC)7=h_Un`a*Dq$O{X26SqTep%+eQ0sILMf4L} zHeh$kIP5`Ak97vU=X&Jv@?_<@q{ew~%rxy!?S@9Q|I{l)pK#<@VC8dGqvtes?S-j5 zuhjyk34Jc@g*7=vsiE?9iYxUnC^%6(i}b9Ha_RM0I|Gh`C!O~aRwLzco57{uwBtFy z1L)@nxav0WdW{Rpsa~rcEg|*e)g4S;TpL*~kk7_lMXJ?zcH>W$JKqan30OMxI2?rcuK1+#N(K zdRBW8F)0{RW}r{@hQ0SRsK)IOE8$ES!k$J|FO#ugxmvaiSk7?0u6VKp;~aP=uPm?z zJ@3_VjP8dq2A-YMDuRg5n-97rjMPL*JF0wKc`a2ahl3Gf-@I@_&!0eA&bZO@H<hD>k3FpZid#b@ zr#J%z_RX)?odtFe+MvrU;gEy_&LfEn(WBY;fkz%tTnM=@0u*o~o(~S=ZDAX-7+<|t z@#MTrj!s;k3wg{o92c9kV?$U{(-Z70XuzC2oXlQ7yhRjmLPNM14oLkT zjtfWhoFHL3k2|$bz36a@BNG~fi5!Ex27TaL?j5wlWrw!LeI(n}%L}a&?+24{4Yxu&Q%#(39yX&G5XwYt(7NF)S_^Ir z1yzGrnn3`q7kaH>I;@afQ$1H6=3Vq$NUK*$E?knzsZ@GBdhfk=eKTxMMY{2~5`WC& zEp`zco<-K-4{ySY;IJctgNq2>Jr|h?8OyoJVMsIQYA+-XFAKVaI@R-SSVm0i7{Sz( zuoRS-;jo^C>csLkXdl!WUoIako#iwtvKTzsCKnsp9)GJqx5jZ&5sY&@V-9c1>xTJz zn}u=;b;FGp%D@Maj9zcJGt*9j&T0f_d;D(^1Wf_v;Et|A2g=%XrZm=|<~$6ct~nQ{ zZ*yO>b~lv03%=*jw9#x7cB+uVQf75v-_wZl#D+-L+t z!F7|alCd63xtV9QmXSfuNj<$Qxl|}wLba3U4pBZHxB#?MO1bvxbG(dbWq5lq$DFwlmtA*aPZR$M4$eX$`u)(e!i$bmQJGh^{TH3!ay!jN|nj z@aui1KtJ{&BS)uyVB4c(yPh3hp~d90Rcx3AYWE#tLYr*6htX*fr?Z`a{-r|4b(h|gHM9gH?Zn>@{#^W( z@V6IspnX{H>qwz>(D`?j<_&1?_2l8qdo8V0t{1^NsQa?~b?WNAl-GDYA68z*$eTq!8EUP0+~Q}`?I)t~3Yo?ME0|7W!Nm$kp+@7O*)M);hKrxM({@f0`s zrf))~a`oqWU9LNB(Y#Hs*0%n(m{v2|6Va3CHN*2)#Blv$0I#=QS#3p)9(96^J z(<3vAWDLpe)7UNPnYI+Af6J(`Wxcirb3$v6tI>t9E!tODd;Cu3zZZkdehnFe*jH&JmlpAQT=x98_;6O~Q(SKs6pXZv zhILz`qvijurCo-WUTe+r#-ZGw>P;?B6kl(idg}@KXR&5;W-{ht>@_I81f^@Q5#0+xpfjN9nNMntM|X;`YQOn>d~X@>pa zIyCwllyH5$0}4E>-f@NHC4bIRrXFv4!2w8K5(%{y+ED)bTHt)gJAD5?qXmA$q5JRo z-0&#>J#=!~-((vcJ;u7;`TqYD>!8o#oTBx<_TE`r4R50T^>*`rOGAID<#49|xw#Z* z%UZQjX2|P*|CzyC^0=qt9V>kpx)a)_*I-mfzonWF;%f!2EBZgK#)oiJh&yC)bGvV9 zkIZL}f}bI(Qy8&o9Qk-qK&@##{6U<4u{HjC_Ium&7Y*I8`j#*L;>Ry{wEbQsK6mMb z=Qf}8>@|^C{X{!f7m1~tk)4Xamc%`0Zo4A=FR8@<+VD3%5}OKw`k6STt&3(3Ok?jm*i>jAcoUMab3FRb{ODnRW4uT|cwF9iI_Eb#@{X zO>4I>JkYQTJ`OT1h^)^9_?pTOC*c-vur=h_K_UNq=iX43KPhHG7HLB{ptAY zjw)4uI+Jev+L~409l?tvqY2`WbVm}39bXY$i5C|}HzKiPwjE=G=@k&xO0Ph(B9~2Y zsgoZK=tihJV&gNxaljZIzQugLj}6@h0os}Qknn5=CY7n;fYc$Y+22-$ z;XbU>4^=_+$TMY?L_Mn9+oKk2nSE}Vq-8l)6R(o8^a?xOj5mJ5j-q(adtD5paU?Ak*9QJJ z6{hNsOytmRW_z3C3i_x`H`l`arq&<+Q(b*q`p8tUtv}L+dLZsh(iZF6>JJ|SIstqP zjOvdZhjv=(TEMjhV~oLQse;%?PETdj#QG!MV6Y)U)DsMv)^qnx1uJVlP@==hw!-0faEQs7JR;^xP|!A9A3OG|=7vnPGz z5|Mg@<_D#YpnLVFzK7W%QeK^iLR9{&sSp`L0a&V9_Zf=FsR-!OtD{?c&o{nZ1QvW_sD{ z)u!W{a~LPglS*SzrcA=qEOiR8MHy=8fo8gI7alYWe$APW7JI*6oRQh zT574&{|rk$6`_B?+5BL$wltq{BYqx|k8Nc5U{=O^3646+QYR3jh4n0;l-rTfKZ!j0 z2azEp=Yc$)lv#QpBM)IKc3PwGIE?veWqEf^W+xtQ6+{tFp2G5>0{v^#xlD;~egMC; zrE2sWEi(G;dTO1e&OVPnK~44f?^()VSe&6b7&H82G{y?=tSIam*~6hSFEZpWN#m7< zg}r#LRY*AAXaVyW3o!mo#&21|knrGAMqVkK@t@UKms{$9ZWDtiZBqGclfTj}t!gdd z;qBZ3bOKMCOB;CAM1GKTZhj}8DcOZz$03^Tiv&5n9-VIr<1 zX2;!x1Uf8}ot53NL`g8Xw{$~}f;r@nn|tu!LC}MU2M>A>L=?P5(PIuC7UMx7hc)@W zSM#%zK=dL6v6=4bs(SV6)vKc3o7bh&%8!6K z?N*n-?kI6+j}R2&g0eUA_lG(f0J~byH(r!N%>d7YOS|J_alQ-oP*mr;(wd^8LsbGM zbY@tB+UYogF(<7&1Y|yjOB{}mQY1ZH%p(_NMUBxWbku6JC`~k~I3ImBm zRU`oAnsmnbZD>+)(MH^&+uEi$%OSi$Ilh5@K>MLuP-p2i{G5h@S#-#XC<$@QATkmm z54fT8N2WLjeo1F+%ku-`IwTCsy>CzLfph6trF*HhxhZ=e$>!v1YqEPfbMH+l`;r6uPd=eJpj`)*x;olC zQC0Ad|KW7Py@LA;Mu~RvQHttP1L0|WwOGNEKFLe)#W@K_t`&r@!G;6pDO_KS{q`4^ zp<%|7ct3<6c`rV?4?h!IxIJK{HMZ{}M%x3wj`5ll-ESGW{Kmpn49-4Cd!xHP9$Uvi z^gz?_JKw{YS_0$zmH2GH_6Z)~+W`Kci4B#08?0k%=%9xD1z4%(aWCQ>C!7GbkDI=# z^lGB5bLa?3ng~Ig9IZ9<1#w@XkHONaP$&L%3~-zV1iw}F7DFMwj=CDSYjU$r19)1*$8pp}>*}Vomj2U2D=i$e!SB&Di&Gcup7vYuVd82| zUdM&5lRX@4FERId!IcfOg{I~-N0Qzc2A7>)}r|sY3zTL=3B-Y(h{}l*D8p(U8O}g8QhbxTB(?qN1Wj zMa7DWOD!r@s5$AkdxyglvF?+^Z`74h+ z96B$)q$<9rn95747Z#UR7w?O(Nkw%@Ri%P%LQ%FsG@L{mv+x3cPdWHX|oBIwBeh>BI&ucGk9rQ%W1su-IisAIagwy+&?0MZ`m zfOJGUA)S!}kuJzVNG8%1QSo+1vXCA~PlV(|dLw-hvM16PQ9Ao0*~kE7ATkIUj0{1B zBEyj3$OuGz?;*%2cfw}g+RE@gilay)VZG7mWsISHAMwDDMn5~PDM(PMMx=9hLj_xAr(j^QiW6_rz4AzCCC}bnaEkl*~mG_xyX4) z0y!V4tMaco|6fViHz7A8w;-#KTanw4+mY4C9mt)?UC0{bZbS=*A0TUydy)H)`;m3X z1IUBOL&$pMVdRI%Bgh8iQRFe?abzR%1fsn-?SXx7(&s>3mH+qi|MdC$?|$^lPrv*$ zijvQ0!*{}{dDG6woDf{gnWSqu6GGQ=CQTSRZ(`_L&P;RFXcAYAX4$Jo6PL`JX|Cl= z%P%g~C6`DYULRWI!mJxLE6TW-RaMN@ty%s$SN4Q>W%0sNdyT7Z6i>zyTusX^48>9> zX_+0bswysBXs&V9iQ1K+0P93URgo#BlXS&UwW3ax)Wyo;QganjVb+PBK~${OObIU;|LXYvQ5-0KY$cEc}rys5dca#cC0bDHORqZ0CN-(QSwTRs6T-dEj)w@mPZFod(RoZf^b78lt zG2U(Yiu@6BtC}RYIu~}UTIJoIbIXsK$gOId-0ED|Er(6(IWSVejCx(i7{OqiuSpzY+vvK_o`VwYF z^rU*yk2RFhZ?MxZQwhLm?dZ*F+_azM^qU@EJT1SfKssgD$d|e*|C;-M%8M-YT8>EP zbDb_eFWRT(#h`DS7sFj%l+dnZ6sI?Lk{6fxyjU2onm@CwvRG9O2hwv3I*!Dj{CIc! zN>5*AEmiq2VLk6c&l|#e(kQAIl^Pw((Qk*-(YvV&9qX$6YwrKuS);tEzTvuGXXQPw z!PoQgZu0TLa6V2gE{&@b!l}x8BYEE&f69CB&gbR6(laCWbv^Gv&nLrrYJNODe^K1& znTL+AI6b|)y4F)#k!I5eQoT%{NR*~O)Y#q#X^b>Mw5h8++Yiy0uUU}#PZexyWPhX$ z(iZuC|L?o8|91gpbs@48xd^!!xdd5;T#8(VT#j6UT!~zTT#YP8u0gIvu0vKJ*CRI| zHzF&Mf4BX=o@{%nPWOVU*S(?YZy$I7JQ#L?ePIvS4{HAqNeqM8@NoF&Prpozg9EUS zhm7F~?eh+T+UwPM?ez}9ei9rC6==9BG5JLiTrTOB?HsOSQG; zoEc`Aw0Aak`TvZAOAtHOM}s+l(pMr6m{E~PLT&s|sN>vYm{2=C3<6^woSaH`I6ww> zOJJ}q|aN*@Muc%#R0E)2>&ZCdQO zl0FRTh6#hZVe(^s5JqZRY@eS#jFVj$1ul%j-GuQ1nH}Yy`fZtTxfJ8aum4^db#kTF ze@unGkx_fnSfKL#e*Kraru#0e|1u~yzs_l|Ld2-=^G0ip%W1ggRA`+ef7=kb_2-); z*KOP{om|^}ch-N|ozzZ9>;IYc-`Cc~Bt9cLW3loorCX7aH4B?F~7Ep zXl)am~eTop}hUt&Xjj(UDXEn2}JI_o4Q`F_&Vv= z``@qs%wE#BUQhcrzBXoxJf+NkK$+Wl1n1Po-DZ;7cq80bAu4n4#+NzsT`dhUb*p1b zO*$}|OM0^w9bYqZ9gcAM%IjEjzw4XycN<(hE)gcGdx>XnRVGgP|3-JTAy@RB_ho@H&Dn2tRMY78F>lWWxP*MDS5I3EXtT-vfod1V z=}>!$i-RzFq=aGns`P8wvs@TwLyZgPK)c7#E}}h#&pDFP1mfR%!cUomc+VIB%{e4dQr5cfBcjp0JB6 zDy!T%#o^B>JN)|ZU7f)AeH;Cr!B{dG9nGm4>%UbTlv{s3y#6!S?A-Og@nwt3%Sw4V zd|FvyyhQ!^|GYN*rq}$!@o|B$uxxQmhXi&u{^i%Z_j3jgh3n}+e=SevRd3RrS3Uiv*F9Ai<;Tx`I;#<2CR&)kN8_eN zwyUpm$_w+W;{NWauU-4x(_GNUu*T;x*3Uj16%0YGP^r$tCeg+$U+;^EX*z z)QqdMCc>C-p3EVxmb-~dZE*?ueT>MDcek(d#IFl?IXz!D+S)(Ipyzb2=j{B`PLJ&Zgp|FuGmD!yd(BYA6IU?Vo`Ca$;WR~uSSwtGEFVa zU#?lie(mF-SJX|JZu@4h(&XFqyDqLNp}4p%68r6L;xh9d{H#Od$Gh8Cb=d3qxhANX zH!aLxuGhr|(4m@g)+B9gNr}5j(T;oQxCwvq(y~=V|0|+)Z=g`+A)8 z$1@%7z8v58hR^BNRw>zz_*7rQ=N4Aj@pEtc zzFZZNBp4+iE!hWl9)#quRCVLq6H3Gvm#aO2yt_;T(7Me9jZkgGwk|U+@Y4q%e zU-|QHy{=h78toiFerjLW>~)lyW8GG#XSlBAq35`eo?0X2mZ>3XZc>|j;_S7GnsJR} zPAk*W!u-uAu46)RxjZqE?M+;MZkWSFMCLXN^Y>)p^6R;O=k=eI)f`XU+w%4GaJ|ci z77EOn0`ehasH=x=%o$sGTv>JQ8RhES_9owbfBuRq+%2Y~vJn;%-~K+n@kQ~1Q~k=@ z&U-hY<0|~gk9Vhbtzo%mQ0G(c&(wJhaW&2l3(v(hwA46n)pR|ZCt3Sb+Yz(WA7QBfgbYX`>bYdtcKUC zK%H5Lo0h{}TXhd~*({0|PAsje;8`hCCw8LI_Wilv3%}mI^i>;REJ>@cPfzkZkA}Gi z%@n=rpj4@G-qbbK=kW2xWfiBgXJXok@^4^k)`;kHFaeY}{ksvK>U7v&Y4xHR3w%OM zob_96!tX2i{X6y>onPsq`W^OL?A(8W`>nXweDDtE-q-gO_pVQse*JL21$h8JKMlp9 zb`bWXHm7`QSmU_nf$p|YlTYf4!v1(;W1Y1fUq4#5B@&F8fZCthGmYIn!qpFMUZsQ|m`?-BRaO&Na>ldzuP&CSh(z#^df;r-#Z4YsjB{ zZrb-DwHsg3_aE=JQ^?H!&0qV6dJtRFMK{-eV>VLYtijo+zxZ;@cn<-Z!zbU z=bzwy4el3WKh(KbeOLQPaUZJhopHY!8Hbzsp*S=qg#GyXu67VU97 z%eeel*}j8~g!Ud7>O<_Ia9nN-GMj<8Qkj&a%r-kt9snM0+Wf2hxr|KxevZCPoRj@3TT)30lXc2+3%y{`6GMDON^ zjXBii`IJht)SOakQ=v4BR=V*w40v}w4gFHn@U=0r#`%;nvWjrOK)Mj_3>Uxevy%R_ z|M2bh^!+?x#ep`(8ZW$|0mLd@+z~sqw$*JWyB@j#fl(feB>j2#mtXH*d7yEue`+42 zjFXzz)i`gin+)Q({A+Bgao$`v8O(80e~5P;@v=t}Ios*!>qpXG>h+SH_?e3z#c^xM zkJ?n&kJeh@>m{|XTd8vppT84SkTwqcgTG{8Y=_U^3GoH_JOb^yO4B>bq0+e$eOuxm z{UYAI@<-?Ex;^{8vXR@^t5zh=(8ywqN4vIQYr?Gj!s0TotaP1>p4$-l^KN~6$lgs| z@bx-*p1dh2-s|@4)3Cv%fhl`n&?|PXPlK5!@b-v&Jw#|nC#9ho{t}4%dAIv2zkU5! z-PNgRI(Pf~bacJO>pHHi?9@g16{pTNQ&hjTZR*EHbS;s8{CfA&m${9eZ87!4-Mg34 z{uE2{eEM}{oq?%4A(8`r-aY z?5{ibe!Z6BJ~Y1Uz)v22PQ%ZxP#l`4hW#wUuKdz^EquJL=dZqA=5{9{On=JDo5d>Y z!(7`MUsirbZka3NnfayMY@s|@Ls~NND}Uat^j3ZkOf6@#r^T_LAFXlT%v00{%D?9G z>CUU4)p_Mtjq|1+4RPm{Z#B-F@P~3-dcTX_ozZ&>_9t8#eLtP_m)yUUpOxLX{{}y6 z@$-`NiWRzIkTrxE#(a+XQJl^UQZ@y_TFi$XYJM^>DQCHTwLKiIg7YH^Kt3^>0^t^ zO5(?sRTSDh$;HoRM1H)xeVr$TY^KSyurPnmM$h^=u8k^BLVE5^p7=e8M!jt$;XFBq zxLW(Tlqb9^gY7lb2Nt2*Hbm~dn|+lZUdM8$V>mx(Z?W!PN9Bjpac}a%_l=#|^pR<1 zVg8;+JcDywzAG;@*K(6vIZz*8g?=9+^5@;|t32_#ZgIK}mlDn-&~;2ssE(x3H4}d; z5c%_NccW`C$NIKyyqwJinQ$FDA6=_*!ue|EgStu0#2HX=dDK1y{T(HuE{L?W!hSpzZVkMiX4|Gy1`*wRq6PW z;(}8-yEk$9Ir&r;+A^~&%-^NNb#IP~%a8VzRTIjpxs%LAs=7TDJ=^17e!Y8@Lw)Rn zQp+KzFMdvxJRhDD*?r0IIX`dJ+$VgzJo#FbZ@q@v$#P=!7S-8q*F5}H5)RTTbUf1u1s-^A!(03kw<?%m3Um3qC< z*OBCTdwoG}b&fV3@~izJ^A)gQjvV$EzDBKjS>s&rcAeUnOX|LwZ$}veq+M#cEF*vJ z^Z8>+V^*QvNJy5--n3m`ChJ|CU2N3m@1?}~h>tVbc70c2%A^tg&PL?VyWLmy*5}W> zfmTV^jT*~k==$o{b=AhB-)=GbZa~-G_?KVr-q#VP*RBpF`;l*3majNnxqKIx%hC0p zURS#>RHH}OyY}VVb%M@KhWZ(pD~PkjIM=RcFXp9K>iECj(9{=gL+7c4A^+Zw&!cE4 zkI36{zvoxGx|dqt{TTI$(>I()SEBD&udmIcpgX8tT&Z(&U(e^cOlckDjCr?9Y>tnM z`CWX8UVj-xw^w7LPg{l-{g_D>=I_;{ZK02ETm_G8#DmC`|9R;63L-z=-M(s5liXPF zw9^x{0<#=FAMkqG`_n0jcxAfrKzcVKjAe+z@c#C--XpbXg4y4~{JjRfKTXw}YU=Ok zm{M98UlI&tdsCNup6zsTA0LYQTH>xZ-nFyb{FBFXt)-%@ByHr%v(bd{G@>xPKc8o0 zWh)26wSsu7eZ1qU ztE$RM2l)YJZ_38EyBsY%FpVwD-|LBMnU9O>-9e+{?B2xX$0PGGL&A87&e5A2i0c|3 zS90u}R#sgZpH_A{J0W&WHvv7jj<9~cdzF79&QmR1`KO=LB+n-=yZ$bYb5XOQDw%#kuSdB1w2Iq7R znR!*i8s|#wE9%VnJb|z_BP`1zx47`6dxIK&D%da7*zBct<(GP`$&U%;BMBT6t}8cE zemN6eJ3iT6OQ6Ecca^ht@uiMIzP@~zCcc%#H^s-N{cKlfLQ(Ej9rbC=_Yyooqx z`8at(k^R_kbbA$_PvaIBU%0K`OnfK!_zFr`hzA3^&(^())AwsRqih<({n{8(h3_N)Y?(YgE?|j8U7;vp@CC5A(i(6QTOClVA&&58J_$VRu*n zwG=FZ^=a|;nfs2B48BC0K~JG~!})i;72(l7e;Ey)`iJ5K>($_Yc=?`g0Ztbhl= zO4u7#!6C33j)8PWi79X~%!OQ=NX&<4z*FFv5V!hY>)wRkMY9aHfS1CKko8QW2PDqKK*;<( zaVTV7oR|c!f=5H2N?qsw?Wd7xEIpTB{o3% zpTv*hP4Fd1TTQ$HX+Mc~A@w=&M@St@{1?0pMyY(a!)9~! z@NPH*-UCm7j2nrCa4oEa_rmkweeiO4KfDo=$BDb(1MoihFj>73K7#!ha07f7J_>ii z$6$l{<~gK9Yq$~n!SHD~0{#e2hR?t}_+wZBH^B?xvv4JR4&Du)hmXO{Q183`3H%j& z0e%Kwf?vUxq26({73w)t>Of)?{5d=d{sQK~SKuP}Dm)jy2Cs*&!#m+N_#~w6BwmES zgxle-;79P+@E>poY}z0a`3>w0--d(WJ8%qq7aj%QgL-Gs`{Y|C{1AHregs#--^07% zAK+u~kML#q3H%NG6Z|uz?k4KTB9TvFOSltug@1t~A^k&QBK#{n5&j*X0(Zf)Aay>m z9R4@F6aEuE0>6M;;J@G-@Jskx_!ayY{b8(;x&D|q5c0f0Vi@cI$3fa=Vg~F43nA~l zPE^AK;bpK3TnP_?_rgrL33i3sA#FOb6ZVAB#@x>g+ri#23-*D-Aop}9rowD^92@`_ zK>C8j8E_E13=W2O!Xa=y915R>!{Bx}9PWgp;Fpj-B+;}9d)}};JPZzmW8heLI6MyK zzy)wDTnxv-WpF&a9UcMK!O8FmI0e1}kA&~Rqu@W_RM@bo`Fwn$J)Dlc51avW;A}Vz z=E9TU9C$iB1}=lg!kge+_#iwEJ_V15Tj2@t14tj3*a=UBjhZpmz;^It*dG?aF|ZKM zhHfT;6k_z7Qxk!_go|%hl}7ASPFjw%iteiIs7L)4YuBo@dh3YPlqGmVmJdX zfqC!@SPjpF7r?XNb?|Js2GUn2o`UDX*Wm^5U3ek<8(a!w%^5#nCwMXJ4KIO*z-91A zcqz<>SHe_Ux17aiMQYi_-D8heg$uW?HIgohP~h|a5P*6 zr@&j`@sKekaT>fGo(osQ8{isvKfD`04ex=k!XLo5;ad19ycfn=((l7A@Ig2PJ_IMg z_3$|OFkAqC2p7Xg;8l<@EO8Iyog|4L!6)F);gj$K_!Qg;pN7#^^#8CudQ^_<8r;J@H2uz73xdDsKK1_#5} z;gRqycoN(W%iu5JQur%)4g58{6YhXdz~8_Z;M?$R_&)q2`~cS9pMD*-fgiy>@V9U{ z{2e?3ejJUQe-iuy_EX`X;RWzhcoWFJK}37d#7o39p4;!FwPR*TmzHIYi*c2WEnR_G_!TsP;*c{#hTfm24OSlQL_)Tnwt>H&-fB0Xp4XoeJyt^jR4tBua z3wDHu!%lE2>Jf5G0c$pKuys292L zP&g3#bT|mkhlAl_I0Rk&MGu>l?ee*#CrU%^A+@8D>-3myhrwx{2Qz2G=F z1~T_b%z+c2?suOEFNBlejqnJ#7EXqn;1u{XcqDuq9tHmhnY$%+!I`jWhe+gTsQbNV z!J%+A91C;dad0jyhsVK7;PLP_$lNdSLpTpU4^M<|z?0yg;C%SsFb_8ENPiC7!#L~# z7r;XxbH~JykoOHG=EGuG0{JdV;v85CFN0<94px7p#J9I$t@FMsMytrQEg16zN^&(3< zb*6vj_+jvBcqCj7kA>I3LU=7a4PFN?g)89A@OtfUDpjcq^O&Z-e>pc6bJ4j-9v+u7SFbb}hUY-V2|E55Sk8g{3-kp{tWJd zKZlJEqQ8Y*;482%d=-v{ufZwsb(jy|f{WmGcpm&EyaxUX-UWXRAB8*Mi|{w_m+)=) z5qt;!6TS-@WiqdZZQ=W{8~gxf!w=!1@FO@G{ubuK-@$zNF)W3@hiAe+z)RpC;nnaH zcmw=1?8#Ga`|-A){kU0dKc0x$FESaK8sd@sJ_5;c$Hzmtmwf`Fb7K%4ABX6i6p16!_Y}m3E8XNq z;fKT4afL5EYKA|9V~Qsn{&4J-h!03ae)8`1e`i1J_*av~yqjzV-yWu!cloP;QzTtwk39Mv72lOD=b z>9q<`oJz0GD=&Qcbm#YAL^>*;q=WKNaryF5IZ79WrTC5OJN@cEi6^82b z2t?-=B9oDDo~q6(PgF;bMO1#_dZe*ic57% z=cJ?8+v}#fdMDy_SDRBwf>8 zaXHHGU65r_CcjCsr8!u|!lZVxOQ;7XJ zV`BAfJPje+i;+f<<#MDk%!Ex~SI6#9-(czG?0sQV&i8}O;25|cJRHj1cqsozIr|LQ z9Q#SI1zZSQ!b-?RLYIziq@lBurjdilH<|q+ojBHje>%@bA*QprD@ae$WFp$n?--4=?erAQ~pvNyuJ5ED!T^d_SMKZAufL-Be*bN>AyF*(pid8yF_s&R9q`R>vk7pUXFEfQ>--(z0-LQQKTe`E~ zY;^7$#C1SQ`t3XH(x-p03u6dWI)_1)!zNuU^CH8svkZ%{mz~Ihe8QA^4W;*CQ0X57ZTfYsg^db~%>(-_mZZHs`O!Wl{WD3NeYagy`_;y!3VS}B3Qu*%OW`!^XTs@l zsXKlNoPqs1I1}FLj<1GCV_yen!Kd8uXW(q?FTq^+Dx3pfgU3LdM_sY`{84_eFvY}p zi*5t@(ByCR1pavVHycmEapi<}qwgOz28!yV}YK{85 zP44%3E(|=H>xrsgDv|TCs~%nerKfKT7h+diSPF;1i{Nl~ek8mE`yp@{oCGh0N5ISA zWOzBWI;v;&^?=PIOap2`ERt!Mv>#~f;j&d`+4ty0gZJ>MCR8aCG1n4@eqIN|ZDs{_ zwVCUo`nMaP^7uwL4RVbtp)u(ucs#rr&Vx$(NpKbR`S4a)=8jju+pw#y+z!=-R>KS6 zo$xYv7rYj(fomYwz!G=EAHWCUz3@?ZAAAhn0@aoj@3Zg$>|5Z2a2tFGz5&-mo0na& z`Mm5xes!Vt^@aUmH>8g_ul#N6YEN745b3~}-+?(!2kLGI<_H~_7wWj&#OSx>z5(Nm zOaqRqPY;)a^3J~FFKXU_EqCGi`8fKi95zC=;3ooolXC-wVc**qW&E=y9L6RW#ZP}0Zw-G2)o1=3j)AX0)d#to z317v2G<*%72VaL*z->@{gWO#W-@tyGv)=*V#C|7y3qAz5!}ad`4pz{x@8{dHAvK^ow%V8u?Tkk@*;XqVV@ned`~f^7W5UW%UW{3IAlyH(_3*d9~)r znMl`^es0_lJ3nlLdzo+@_#FR==WkH;=)Z#S`lp0p-^&*b-q#ln<6ka}FQNLsub|D# zzQkqg(OQn%_w7Y>P2QMh{9WaKH_WhlG=dE|));n$Du4BnO|Tyfo5I1c85{-ogL7eX zsD7gbTnV|holw}^bWi>%f0QqpX>rWtljiju5kK$N8nZ)6n(ce>qQP@#;WW1=T;*E_ z*c^6*HqFVo?*gx z*zbiy;KOhzR2$QIjn~7lzv%2Q!{OL9HjaSrz>)A>DEA-1L$LqN+5Z8#?;!Et@KD&0 zOdSo|z{6l)I0lY|hr@AD;i&(~!Jg~vbKzL*$H8&17*2qvz=?1PoCME+%D)SsNuMLv z^&&@bd_9~DxqfHPbKNd71^WhgBzzQde?;OrI2Cdo&bZ_Ho8b#^8ppZ*7MTuho#;yH ze4nCmxF<3g(F$;=IoBeRiM=8J`XaWsZWw9Azs}ej88^-7cVz7G19x+LKgG zgp!R+Kn@AHvAvIVGs+zAz-*B-g# z4OtYK1J%DB6XaE=ls?10Z!b!&SQG9uPIO_M1l4z{JQdb_?3%OX!2@7E^m7%BT?N>= zv=J$UYF}}vUVH&mAF~kJa@!A^FE`CS8-(n39ht$1F1Md?rjT}R-?tYv@7|N+LC9Q= z%ajtX(p(0Wj&i6zw*pG9N~qGPf~pnOP<`C#a1K=Z=E23-PlQWg5j+E`?>iHo4$p#@ zz_Z~MQ2wrg=U~4Uavx9P9(W$~?f41o3G7e8^WheF0elr+1mA`V=Y41Y0A9@TKfp`i zzu+<$A%T}d?qi8u23y0+VF!2x>7Qa-BwD#yh8|#dWKn`NGnTqIl7t_8Pvd7eccG!Wv z9hu?mt2QJag{AO&6K|&5uh1G!^)4f#Z_hRl>YDmx`|iFdJHpn4+s10rN|GaYz?M*D zr@AJ4XLu*nJVM7a;a%9LxZ|3i>AdQi&d-Nyuou9)p&d_cztNlh%hse-rWHF-!e0y_&7WhDx7nj{XDpl<7y*M!0RFRwk2+WPr)1E z(@^sZ>9NZ3Zm4kXg+JoB=AqBPjqu0t$8Zz0eTwQ_cSLng{jo~H_c8q`>2}6$>)FB7 zhVDo=bF4cxt0A?eA%1*aQQhdp`r;rrHrRU7g|L%#B@f^B{diG!Bdt+?nd^SPfNskB z7h!9-1!lpYLgn#Ga4dWo+BB#y?1k9-Uv=y=&M!gid+(y`mRh5-EOEbI#lPZt4XS5- z9ja`%LDi-=p!&Txq2hZBsxEGas&k4@*HN_Z)quRP*HyA;n|4jV6u0(Wc+rT;UPj}A z^pbg-a1{SLQ1QPD75{rs@xKoh{|E3;_#vDOKZ44u-@;TqH2$e9+kQ=#<+!)+zl)-= zH5!woqs*TOOS=3SDvv&e(nbE5F;oYhYV=7iwOh{FzYx<~sWca1Qo` z@EBMGkA+H~RtPfoyKe)?-#$*-GmEg}Y)5*SR;0NtYYI`O4|52aR`k>I>+988j@ft3 zMcKi!M(JDSexFFZDv$Y4K3aA{AUTq=w zkQ@E@W{}ZG$9r?U8oSEzbg1%L3{_q_e+c9oKBk;xpN;(t?78qvm=Di_Cqtbtgy&$7 z!*gK;JP%gF1gwJRLtCD@KCGFKFVoTHw=KV6LHV_#Pm!_5)vj#0TKgbl50`5RZtXkm zqRbSnX$bP%@5_l_`E&&g*Yhi}tDav4)$Xo_ifK8t^E?}xt$(_1+MF@fj<-(}pnWeL zKNL8oJEAqT%#DPhpWL@^>dsA2q1^&C?yiEF@K&g?>^3+O-VW6lDQ`7jS&e->yaOH! z?}P>JyxPoN*wtp%z|$em2bl5V9(aXwr}07dYv2#yO1Ku@5ATH!!uz1sLHEN=a29HB5zK&h>bsJQDeFKK;>zmkBU*CeN zuiN2y@Ru-LUu9Q){S{Pw{WVm5-2qi!e*;xt--esuJ5crYU8wr{9{de_AF7-`fFHpR z;cubz{>1UWpvvH1@V6Y#AR~SUwT}N7?hk(tZCU*PsK2^iqHEk=ufv+p)~v_sMeRG< zqSOUz>Vtvq_g~SSBt*m(j{5#+V`_lzTl|b;3gd&r?OwUu$b`fA+=U@(t|HnndZvV7 z-;0)BkAJ!_M8zSd)1!XQ?)CV>g&|50(d*HR7U0v;+J%uWKX^9Eopo`tYnE zjP85TBg2IuN)OS7p%8imVGMR*s7=X)^R%f8L)17V+At1emVJ;3V=c$WF#Avl_#~7ADi_$tPBa##7QiA(` z=2%@c_Q*6u^7I2UoUoLyBVbD?9i$V_`r0FX|Jz zkF{|s-7?`k977n2^KjS*<^*B#)&W9NIc!4uxiHSxc~I%p98`AAL1)56@Mu^HXTfveY-rP~IfwRebiYs^WT^XX zTh|EYCdqxrp+P#77x(QUFODI6<;Ag3c`-MLFS$pqGJM2^VOPf-dXgA9%-Ju(G^A-xM>dl-j(;DR7* z-GeeJB_ICj!n3ia)`?;l9?z4S`gdv&PVXR$T*7a`~#87<5%fD9jbjS4#G<6r!eNYFk16lCS32&bYbwU z?8WNiE)2pL6QnVZ;|pCFs;@FJL}{0~*oAQkRK72ReWA)c8(xZiBD@URv}(V>&i@*a zYdWU(wHA56#RH59j}KSkU+KLHhWmx9u`7R;L-kqLK-De9uey01c8wD&U{82GRKIZp zr1&E@LaUct`MTE%tyGfUZttDaUa!|zdHbo;SNSg!&fA*_SNh%pmG`THc)A2(s2$ZC zZ|jft>14uv;q5Mr)ll{44yd%=36;lpLFLsNcpSVN+O+7NQ}w&L|8oKy7Q`vN=eao5 zKgopkUP~C#`(CK>ye|l|drBD9E{t?(U+2Pj04nVd24N)AEZLleHGO#)a{al*aTx{952K7sf`Y@mF<1`pT|+d;+S}pM?G3Q}8hOG*ln`3_J$@ z7|w_CU*PQOt2c4{Ech%;z~|u=a5KCP{si6(Uw~WSi}2@A;k*I2V1E<-6vohB$D6>H zuxrl#GHegG!ol!oa0q-Aj)$+o+3>o?B~I^;7xElyczxyJ_vsW zZGBNmvxmyQsP1uTz?{wBTbsc(ujH710LQg=-;84iBf5T|{nSE4IcnQWEAE++vHKk7 zG9x(J{BB^@vs%+G#C^DZDJ<<74M?eDIdmNAThrB#-=I55h`bF|Ki+|MUDLzNpwy?R zj!oG^81K6DukzT^PHdO7kB<7>5LU4CMGFE{uBomJu~3$$a6$_{#ZJekvd3@6tW^ ztJlz$MFx}~$>;b{xtv{}KbR#%lt6fZ`t9wdSA$6Z&WCOze zXS#<(X_e$QMZG2He|%ij$R=bvvI}X+U@{QVdv%Hs4KAyZjmS3S6Qm^* zHa+t{6)8lnK-M6eksU||9cpJp&*$eNOOWNr24pMpIns=Qx*wuv>I;#x5q%eQ1M)7i z3&~>QF&ZgBmLltr&B(jRE~E_&q8~C7DMFSZtC7vf4n*Gy)HCQKk(tO6WI3_{(KiIY zK+JpL$5vMrl~u6kRKL|+>eOb0tca+ss2}OVd%u8w8>-TcpPjYW?}R6unBEtrcVba3 z>G=*e;jU677>YD7{c(F2bxL|fvJ3bOy7tEE8-H^-B)9&26LM_M>@zC$DGh}`CX$iy z)5HJp!XwAMIpygdjq5#i|AsuAN2W3E4~7}EGsRCsH~Zf7%ChQ;g7~!j()@*SG_|^}hUNG_9D4W4Qw2$Xl{Qax9`$OTH}4!C z#Bt@pyO8%|n5*ZToE{xrStY~eejDBoic^y(%9q-`Z_3sI<-h#+_xVkgQW%<4U&L`o@>#uJ^tj!yYqF5eaE!vuf3l3I|DWK-01YAn+eQ7^!&TmQ}6Z; z=~=rxvG0-darwGYq<$EqJydTfqu5tIF4c{x`6tIq<{wiWUpy^dT5UeWrM%&}?8s33 z%ddCu^M-7z)4chNI5bw;_LBa-HRgQhqjn_IcG>Kr$BON!5o*Rsvq`i)=H=Kc2=e1}X_fuWC#eSpoxGoiSW zcek7N{!QAE;!*$WWKeMEIVR7mBvWj^2)UpC)xcM@d z($HM~ljo@$nWjynwrksr4f+TI=9`aM^3{+rtF;-gm7fa3=jZ1fkO?B<_cYvSeq&A@ z5wDufXO&AA+I~8hgPRb!_ipOCFH(8hzTJ-b{@ziwD{r2_%~-Evc7Yl6ze&CFaj1Wo zjM%!7yiZAWPW_+^Q=o+Mf~I7y`%%Zu9!NW={?0ywn@j(ee6GsoO*F{Ya69kp!ej5w z?tKU03=P6y9E#ZVMJYXNG+br5-y}W3G~29I8>`2{e2z3io^j)v`j9M?%|YfO<;XH* zHL~0J4hhYOrnYhaUQ*3#WyV>UzpW_;o}aaKWqd_EzbbBPvi-EzUiB${9vnQ2REK++9pBrDc zsJyH+URtG3>6K_cm2C6sH|Qu9R+r>g@J$?EcU#Ff_wCR(i2b(%1SdleW-#y@fqqQEBrmblgpIO*|$)L+9oYAA=8X2X^Tl zJ6qYzyKTunqoIA-u!$?>oGpY}^}C^WV^3U?(w*08&BCttp4SIzFX*rJfvP5bgz2Mw z|C+0YkMZ?Szi}6nU3Jl{t&XTJF65``>jq9{;z#Gbo4W2_)n3A5z^*hpaww+$Bhc}G zas7uHy7$_ca6WPFV(ED^In0PQ}mDPEYU7>q)hB zQ;51*_xtw4bq8a@<<58*)0iFT>Bbu6CHEufdYH*e@5bv$Rj5-PeO``s1GLtz-Y^cw za&vfhblZ$8k|_RnUVk)ApDS&zt% zcjxsatLs!xKhM~tNem{uR%Q<;Mm0?8Ilj7Lc0sWl#%!MI-LO~SSN^

8gI2>`tp| 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 IPb~0%0QHW_?EnA( diff --git a/ findandreplaceex/obj/Debug/ResolveAssemblyReference.cache b/ findandreplaceex/obj/Debug/ResolveAssemblyReference.cache deleted file mode 100644 index 884aa9aa906b7cd4b7693574b9d130819451573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16795 zcmeI3eQ*?K9mnsvY%aG;nj@52K%_ySv=Z(}Luea|G%t-H1OmxGk-)LZ?Im0GZkgS^ zv!#9LTqe)!O42{O`KC1y5#rT|uT6=a#)CmdkpkkVHcD)CgX$oifv=k*e2S z*T@W6;~VviQJ*sQ8rhVQ9X1WO-W}FG&v0f_WPmff~d0=bu{MC-1)+m*&9CB~y#XO}mT@y35NS)!ly2AsTALfc=5a+LD^$FU3S)UY-?7M`jnj=!Q;rG_35T_)l?eNZ+YgB zX_?-5BuQ00;>Kh`#rs8FT}af(qb?kdHWWH$As21F$IGV8k({GTPgCgBG!Xi|Hjvp% zyK7PDm{3x*TP`*~h5QFb%+73ZVXeJWHJ<0CaGI| zn-W8UbS0!I&r|5KDlzy3DCHETc`jVt|!$jg%N_rMy*247yTw zNZB+cJEdGmR{D%C$l}nesoiu!w%=_O=$lsi6_Y7xy{T!E+C!;|XA0GPfBF6AaEF?`G7_fbIg zXI|=N$Sq`K4fIoB^R#M!W6kQoe}KexfRYs_s8}FPnI!ReLC^)Ng3puktKf4aPz7i( zO~7HuVr-WZu0zWAO9>|;Ba5=IdhKvd4BV}4jxFIP=q=Z9~a#TvVCMiuR z;iROzLrSnc0+mryHktl#HvX`{+_0pt~s~?q$q~gG^}R00(F?08mF2ps822${cqNPysKtKhViB zT7<`hCR~n=!_kT1eG^Am;MEZG?vmLv-uJ3>RWMx-Py@5s^HGv{FLn$#WEn~#!-OU* z&ea~ym4dGVRcI<0nvYTgUtk*apbyZ;0MH0yMx>e0guwwy1pvZ#q$)ra4A4W=!2UGo zVIP^}KxQ|iL?oHe#4b|)hpL?<@S%$Cp*Qx8WUI(jFfyN^1}>QfJw_+aQx zELc23zi^0_LzKx-=p!T|VKSt*^mnvi%ZH$UwI^E^*G%MQuloJsPw)EUpB{PdYwGcR zUth94_v1&mJ-B%J0=4Ug1Lt0O;>^iY;S-1IcIrzfXaDVuH@|Uq$8F32}ns_${s67A>7S^i( zRWLx`p#~02+Ftarc?sC8Vx)*RCN!~Uaqy-KII~}TIRWMoK zrv_$IpdXOT4@W zF8)^zO+DvR^LJ2F%Rmtd6Pl>u)Py-TF>K_Ps}@gB3~rsf@|Q;hHgw~a9jg}nh+*?C zjMm>I^s8}lv<`rwEWmCoaSTI$rla-B%1%zN!EF_eTiVw%Z zsQ7?fHYz?52BYFrVcDoJmPEzpp|Vl&rXNfdZ~SGW;+-xS74LRsqhcP9BP=kFN0buy uFmDT{hWT6B)ZnLORG%pL>#|WXHV0G17+p5%xv8lB3LrY>R8+nKIOD%&ECo&g diff --git a/ findandreplaceex/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/ findandreplaceex/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll deleted file mode 100644 index 684128c5d59ebb808bf8265ea240f92271975c82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmd^C-ES0C6#vb1`?b)9E<#X=3>F0W7;C6eqS0-;1*?2C-2z5PV0QPijG3KTXJ)Y_ zhSV4_`e2A8KKS4RFPf-{4}K66<0Cvs;$L9!!NeCo9*Bu1iobJbX16UyiSfm7%02gd z-E+@5_nte;{%6ml3qX$J#tq;SXMv)|e~%WZ9^CNxAU^KDy77{+@9M_cQ*LB6!=N5I z4Xf(-eh^y~WrZ!@a(%0GuxvGgnz9E5@|#lE)04nHqYLNmT74+n?HbIDD~uIDA0<7B z^uQL*7Dtf-Sfyz*iCY8`zlH^3$_2Vmd__#K6Zp6w;FI3(9JZc-X7;DjAUVU?VYtw=%=&2ub*BBQrMF`n@`}%`weg=)20447`_e z-{Nj^U#8p-u*ivb!`O(+7{UF-1w2Un5cd#zOym9(!+Z%-*kZm)JZrweoiF189O8Gm z_9#Atjn(*)cm+Pi1cvb<@pg^x#-m&%HgDr1t0z030UH;;(!%6lmmZQ?j``&ls9FMw zOWH34H3nw1eyQwew&t<@L9OMf$1xoSO%=wjitHH`1+B13s-z;f?yJzQMt05f(AHp& z>(^#f({rk7a?b87MkA^Qq32dmo{wVHz`@FMsv4(U$93D)e#dv}DnyuWNQs}V}7(yFtJ2Lk_4q{5~4SvqZZ9al5zqzaYK zLwvsFcoAmjo9%3be$w%4o?;-eaC^d_kxJ4SxZdOO%K3~%k!n=Dd3_9RCbg3g0$=$t zubc8PS#x<{<6-bZf|226FzFZ%?eGvaSp1aCNal8nns9#QpGu@ zokB#ZSVok$C>2|I{J#38>*oz`{y28&!qlc;KKi|azR%7aJACKpwb#0O3jG`dU2J#u zN}*rS0Q<}+4CMNRCmP6EhSAq;na1E?(ZH^D6|#nz4FWH+`Pc@2-J6%1u}c!=c+2%_ zD(sclnt$w4Y3^>A=KA$LFbbQ8?$22$?CcTmg`K^W~p^3jdWi~2L$92_$arMu^Nmirj_(i{VzOy&#(+;o&AmS>&zNp2O~1t_9fj# zRqdy#J1yJCqU{JTWykg~Z9_)XiDiU6*%@H0n`tlE#M;(p4j${}pg|tD+|@RcxLjuD zYfm=&U0#41{mHK(V5`n!AGLM8%Y=R}=5;1@oMHsvbp~gN>0m0CYDr94<%Rq2V;j|V zOWv>=U#lvkSYEwO-K2)VBYMpkvy7NigQw+To*DepIxf9^!AkzmF#YiDTY}p;^FIOD Ctt0*b diff --git a/ findandreplaceex/obj/Release/FindReplaceEx.PluginUI.resources b/ findandreplaceex/obj/Release/FindReplaceEx.PluginUI.resources deleted file mode 100644 index 06c24d06c1cab750788146ce052b37770f3fa530..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYn>8 zFQkBqh9V7!l7fO7393+{h=w1)yR#iB3864&@9pl)+c$4!?(WOyUmqjJ*eeWG?>SGc zI3Z_(P01au5)v8NDsQ>eSS1@(zDd?eqi1i&6UDE}=Y#UW(yXT7tx#3I9vVufkEpj{ zo{^qyOizocbn5P{nLCp-ac}0@$zVZy*`i_eI{7mYbrGYu*5?+A|K9f2>rXHDzx{Z4 z@cqM!%Kq+5=lAmm`pVDUH#a85h4^wlme&EliL>X5^SI6j6P!sHgu!xrPAq z5Me>)*(%6)uxepw?AH)rM8*9qPbz*7%9YU+_bKZvhe``|DGK4sN++Wb9__$!+Dg&5 zQD{Y}%CIH0FGC%VhG~G7FQd3kByn2D_W-)Sg03`hUIDfVE@B<@r|3&y%gDRv(pLb- zH{kSu5rFHM1KWZ{V=Ztm2o3;?R`GCiZ@9OCin&RYai0?(Z%UnwbE(_G^M>hi;dsvk z?t5*5wZyno65bT01gA`TW25b3bRu}u5?-c4^-kgLNS~K%9b+>dG+ys=n+EHQ<(-`R z!BSx@v`WWYW{0vkS}J1=bW82L(7uQQ-CQWeJ$3!xR3FbQj;_{oV||K5Q32B)1Y9hL z+Cr0x?w|A~)K(%T?kM&6{0vJ{92&a%XOn-GB$pY=j&j=pooIUGFSrXSK6|bi)S(N) sEJ|r~9PwJ$6DpPQQlx;;VbBFBl-Y_dRZ35#a_Fdaqp^W)h^=-10I_R%i2wiq diff --git a/ findandreplaceex/obj/Release/FindReplaceEx.csproj.FileListAbsolute.txt b/ findandreplaceex/obj/Release/FindReplaceEx.csproj.FileListAbsolute.txt deleted file mode 100644 index 2b6e7e2..0000000 --- a/ findandreplaceex/obj/Release/FindReplaceEx.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,31 +0,0 @@ -E:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\ResolveAssemblyReference.cache -D:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\Bdelphi\new FlashDevelop\FD3\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\ResolveAssemblyReference.cache -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\FindReplaceEx.PluginUI.resources -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\FindReplaceEx.Properties.Resources.resources -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\FindReplaceEx.Resources.en_US.resources -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\FindReplaceEx.csproj.GenerateResource.Cache -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\FindReplaceEx.dll -D:\My Documents\Bdelphi\new FlashDevelop\FD3\External\Plugins\FindReplaceEx\obj\Release\FindReplaceEx.pdb -D:\My Documents\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\ResolveAssemblyReference.cache -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\FindReplaceEx.PluginUI.resources -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\FindReplaceEx.Properties.Resources.resources -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\FindReplaceEx.Resources.en_US.resources -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\FindReplaceEx.csproj.GenerateResource.Cache -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\local\FindReplaceEx\obj\Release\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\FD4\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\My Documents\FlashDevelop dev\FD4\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\FD4\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\ResolveAssemblyReference.cache -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\FindReplaceEx.PluginUI.resources -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\FindReplaceEx.Properties.Resources.resources -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\FindReplaceEx.Resources.en_US.resources -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\FindReplaceEx.csproj.GenerateResource.Cache -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\FindReplaceEx.dll -D:\My Documents\FlashDevelop dev\FD4\External\3rdParty\FindReplaceEx\obj\Release\FindReplaceEx.pdb diff --git a/ findandreplaceex/obj/Release/FindReplaceEx.csproj.GenerateResource.Cache b/ findandreplaceex/obj/Release/FindReplaceEx.csproj.GenerateResource.Cache deleted file mode 100644 index 4dc2356af0578884039be999829a38a87b1f694b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcma)4&2G~`5Vmpb=2s*YsH)%)Ar455tb`~kmk5beg+Pk}X{#QB(8fE4C7a!7*RC2a zTzlfeOYkhfBOr0$ig*Q>u^>XhLd;?8-EZcbZ)e7F9mn~BMqje(C3MdYMP#(qaT4B3 zh2-H8vojl>b;Dk(c>=}?t@?Nf+hM!a9HcTy4fGYHiD9zU9Hmn!qDQbi(lb!~X}cTu z;@!B@;k`ENGM{SQ$}jO0?0rysumHtDMFK48DH*V*`$B@+Ihu!m@qc@A=Wf=Vas{=Od~yN0I{gt4kmlM*rZ0p#9)>uV^Pq@VS8#ATH4)ee zsOQIHLQaDcBHJi_0VcswPF6u#Vx5?Yv{WXSRjlHlPsdLFIFVs(KX&jc+YM@WMXpxE zZmmYYq*d98(J3~EYiswC+2l}j5ewi~*DyF2Hn9P&K+VktTO*~^gU|2e=9f30E?k#% vXAihc7&T+E{q^zN+aD35=VVxeFlxsu?_u!%`-cm+K~!W7$|Gw~5Lx9XY#snW diff --git a/ findandreplaceex/obj/Release/FindReplaceEx.dll b/ findandreplaceex/obj/Release/FindReplaceEx.dll deleted file mode 100644 index af61123df28af73f428777b73be9f8e202e75823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54272 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 G8uVXJi9VG8 diff --git a/ findandreplaceex/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/ findandreplaceex/obj/Release/TempPE/Properties.Resources.Designer.cs.dll deleted file mode 100644 index c984e8ceafa226e5d4d188fe03ced8c2c50cb76f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKU2GiH75?scvtDmvH(p8<3ZfH2z&Oodz=*WsXKk+&40aN{j;RV#GP`@TnQC@s znVC)OJOoR?1N4EGs=V;V6DmlJRK%Y^@PG(N1XX?F0jcRj)xPvcRbSeNq~EzS`xApG zs`{4R^_+YD?>XnrJ#)SEqn~03K#tGl%fMTlWt0v4dayz9*mvIBV+C3Y(GJvg>XTgo$0#cGL-MFR&|zt9C1FXlHb^cys3Z$ULy9hVV!4$%neDU4*r3 zt119Ra`Gwn(yg3rK4m@vY))1hH!%~x%-G;VzKkK1p8>X;zy6$&sS3`~@56$Zfr1ob z^EeJ{+sykWv`v2ldIi!C4$w}b*Amh>QKHP`n#E1Z3>!G^L~&FnWnwE6k&W6E5ZPrX z(tb!qBRWnU@x{~!M;VwMqy@hyb>)!QENsEwY~TadTnY2P7?aint!3jTam~~a9w0_v z<2Xy0`}V{zg*z^(ZH0X|AtI~&8wP4kunNU+gdnDAv6$Zw?bK%LUJQ#bg{|~OZTce2 z755@Pc@wM+Atq(5?@-Py9LEG%`RE|M8_kf0MWfCFR3DmES$0yZQ+GO3&fQb@+<6ZP z=I;~cXukU_tvP=ocr}T<_^yTql$yAK{+sBr$2^go22^}`xx88laq zUi-3QZot3PUD%P~voc!aOwMZ!na z9V(9}2#fewog@Bt^*h3ES;GH;CHfB-*sn`q&Qm+jqeRK$hWdHo0#j0WC8K_i>q)(zQGbR_>f?<1CvGu$DC||ca31?{ z8(|4|5Z=cX1)ni+B!iRIvsl0**7JmCtrr=`dAvmU6YE!SiN8Y+b$kE^*WkB=Tk#3z zup3Vk?ltgwVhcv+W&9FvaDB<}4Bt-Xsct9Ssiw)bSZ#SE>l~q+g<<42sBp!2p62OZ zq-=#{gIvjbtZ#GgQrPJD`hFaV!nTeQPsh%(j>Aq=Csxt1*9>&z)MKaN`{+qwX`!Aw%VSrqpFThd8`;xhKYDt`|g^-;+cd;wAM*9GDA_LsOI@z zvfh{W>)5Z<;3jmJpW|n$61IBF(wekcr% z#yYxEznf0aUEkHRKA|HWaJ!%AxPFY4^>!~C!5?&khOZe&BGiE>Y-OA*2HN|45o9N4 z;#jw8{<_()9zn~rk@b^owZlLM313m|W4_^WlV_vwbnMprfh0ExstN00Uhw$?>^}h- zJOi3t(dU`06Pw2x&*Bk82+7r)6Y6Qid-}7F_HTEVW`6zl&t9;s>;8bkn`a(hy>9yAvqSmP2%pg*wi|ZL(ujajo@GTI zFDd-Wl1DH)R3K$5RoG%%YHX~ma96K>-9xz&hJNg@R$Y4H{6hiD(xA+EoY;&FE8Fp`-X>yN+YEaD>uwQ$Qv7D1jA}<3nLi6yP&dG zLPV|sz>U&!SF9b6MsAz$&-_|lw`E6HPRg#xQlDqvYtjCT;I?329^LOcaBMD&D!#wu zdO_Mdv^K3qY%cGCUH-E1|2bD_1(dnZ>`ZUb12stR1$^B%2AD+UjZE*3KP&^U4SWP& zv!*FoMHR;g=Xvg{Jj;i1i1Y&C0pc>=%l-9I*NKm88;iN6-r%lW7C(U1BIm0aW1!wP8DNHs3kqD`4yi2#Pk%VdcSFQDb@hr zV??T_U*YO8dztuYn@-nV$ENNSPj+8-mAVnN`>{;1=k*^j);-jhY^3i+oL%w`5w=L< z8+TO)Xn4*XPBH?R_L7*G4rhF+mc-Pp zyiou9*rrY0(r-wE-+?-#*<8JT-K2)#eNt*Y!z^Rw)Z%XWSZ4^m z_SL@cy}P%&@3Zf|yJv+digJq*ev#5KBKdiv;MlHR@-io@hFQ#<*WJr*W^?3FW_WO5 znLDmwTa)1MH#jg;HNC3CCoNv}9NiooSgfv@M&S(KI&WX**5umoXlbl8UK$xGjt%Rh zdIE3T*ZL((Tdv0|OP=m=XsIQ`Y6wL9k>z!Q(U{H@U2vRqiTE zSC^7V>`JwI*Id}v{uX_nYij?m?>=&(2ffmE6IJ6N2_pR{X_S*mA}3}ha_=>)qJ729 z)#q;E)cIW2(JTCl?Oe`n!X{(G$J6!0dNH@Eq7Y1F-WNoM7indg0YhrtCRosH@n8uo@j~O_=z52o6 zFH}s?!Y*oIfm$GomT9gAvIHtOcaE31!>s}zn08%WA;^-jHnZ}qj%LQf`K--Qn%dl^ zNu~=0?z+aBVH)0+=oqX%wWFcUI{FpEDvMTnsg>p18MXu~7kw)q41O!z@}lNHX;`^g zzE&+a0-=xEKC+`866E@UVwg|u2NCGrgVGy7?gF_R7Db?pt+hfmTPl$TzrEBx{qA({4fcJnje>^g30`Gb%iA z13jg1F`=3gi^W*12i|3${*zySXV33XYnqmPGx1t|t!W92?7!dHcsxm+9c-MmrFC*^ z#Y_NlF&(F_dfb8+$H+3mlt0>@Q2gtTd1tw3-VSX$@_@Nlfz(fSkrjw zZ?ze`zflQ@fYPCZ5C6U2@TYm8Q3;5F(zAbh@E@VlzD6Y=3QG5@FX`WY{CC1&Z);Qn z;-K`ip0%fbGwr|bfkq`D5=yr+zpZtAe}hs2i2Z*v{jGm~QV%D)MT?lF7_XT66{U-=yB5RW|_ET1yj(V)~7`M1%6hzFk#Jx)+ zD=XVsxPt?Y+OKm|x4H^L!ZWA`h$IJzOxMGTx>ZN+)T&n1G|}8aBHeH>3g!=cN_<!gkR8N2r=Q4srzK zD98lJF_7a#c4G-5#WDS_0Ww4{i9DdHzIEpVVER$_IO8 zZyurSv{|+t!&|THjj|K~&e)dc*yf%*ts~ni<8>55FY1PKci4uAl)WG(O6DmhExUc9 zp?ZDR-L0@Lk-B5CRBy02f?kZ(){0d!%2h|l(I8w=wA+Wptw?8gR_lT0rQ0;L<9FJh zp#PB>Xz>EsC5h>YB`3*xT77A0>Z2sMMmc$cNCs!7iJ_sP*@>ZwAL|dvvHnoKCc;N` zit5B~(jjnXbAmP5y@^9nKCh(W*9qn?Q)6h5o+w)UB`W<#lM;P{@S(q?Ht%GvqE!db zp9I{=|EPz>;kN0(nwrr!^a33zl(>>=3PoB(f8psAelZ27jijFPe-#E#Dg0oT3L<)c zj0z0CQ;1K8;yH-nO@;XJP<#er_*Wr58;a*4hQ}4+g;4x1h~aU?rm+Zd9iI}i&(V{M zuZ8T}9d@Glr^C*WIP5g8geCOl2L!E~l;hWl`F_CA14U!sBMxW=s@U^X01OAjBRF{g z3rW4;|0)b#TMYMoR1j17ekw5daUos_#W{%K*@bvD6kmiGzFvs)q4*NS@cu%qhvGGe zkA>nwC@w;b9YSdHP+X!y9~=i#EIviF!L#D}A(@}oKVUobV_5hR7eZ?O9N#n$?2v|% zqJ$ZdQvzt(4i?eC-U8j};Kt<~_jIRBgl=}=@)QQBvN!JYWj;#`Rwnc`2Io~Xf3gJ@+P;Cq-;3nz&DNVgj zj1QzIsl+}iVTXN0Vl?()8AueW#7g%kN}yZ@+7FkH;GRJ|Um);jRy?Npy`QpLr}6y>H4;4~cVD^A5NRdK?Js^X;6 zQuRitS{oK(*p{l#g{rk-Axdefij7Bfpw=ojpq8p|E788fy|h$)rAZaofhzuqAwfAz GyZ!~hkdfm6 diff --git a/ findandreplaceex/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ findandreplaceex/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 0e6dea0ed2e9b75c06147a5aa3440a0826266994..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6782 zcmeHMYfl?T6t%%jFoYJWaNrq_`+Z>S58RTT@=Ds+ z;L4{WuYH?)#HV9o1%g)O?z51N@G2s>=^hkD#}~p&miI z_2S$@aU1OiGZc+raR3cyfl%}w7&r~0iJ}=oGYn>k+y@&XBVd+}b9FhikOy^qNF_6y z3f45%RtimFm^hd=(uszutSiWsqZ9H4;Ou1ouMZbpMG0Z7`$v7J0kh_je zP@_i-TL|(fD6u0J!?a^o$zw2!9i#!2y(32TXVsvxGnF+K;#O zv%_3%p6a#4-FiaTg`J}%djX3`aXreYv2n+bQzXC@n98XHVG52lNHto ztuWd{0HT;p1zg8`2AGSV7k?chLp2S;iUY)aM-WJ@=P>%0jz(uB1)i3J7`_FRY)2^d z8)sxa>8Jqf1z`Qu5!NS1AVLJErQW-=_b%<~s>jc=;U1kg=EAF9^H((-J*qaQad<`^hdoIJM zXV2BfP~hSb3*;CSNCM2G92YL$39O!w zAECV)x;Y6rBgZ*is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYn>8 zFQkBqh9V7!l7fO7393+{h=w1)yR#iB3864&@9pl)+c$4!?(WOyUmqjJ*eeWG?>SGc zI3Z_(P01au5)v8NDsQ>eSS1@(zDd?eqi1i&6UDE}=Y#UW(yXT7tx#3I9vVufkEpj{ zo{^qyOizocbn5P{nLCp-ac}0@$zVZy*`i_eI{7mYbrGYu*5?+A|K9f2>rXHDzx{Z4 z@cqM!%Kq+5=lAmm`pVDUH#a85h4^wlme&EliL>X5^SI6j6P!sHgu!xrPAq z5Me>)*(%6)uxepw?AH)rM8*9qPbz*7%9YU+_bKZvhe``|DGK4sN++Wb9__$!+Dg&5 zQD{Y}%CIH0FGC%VhG~G7FQd3kByn2D_W-)Sg03`hUIDfVE@B<@r|3&y%gDRv(pLb- zH{kSu5rFHM1KWZ{V=Ztm2o3;?R`GCiZ@9OCin&RYai0?(Z%UnwbE(_G^M>hi;dsvk z?t5*5wZyno65bT01gA`TW25b3bRu}u5?-c4^-kgLNS~K%9b+>dG+ys=n+EHQ<(-`R z!BSx@v`WWYW{0vkS}J1=bW82L(7uQQ-CQWeJ$3!xR3FbQj;_{oV||K5Q32B)1Y9hL z+Cr0x?w|A~)K(%T?kM&6{0vJ{92&a%XOn-GB$pY=j&j=pooIUGFSrXSK6|bi)S(N) sEJ|r~9PwJ$6DpPQQlx;;VbBFBl-Y_dRZ35#a_Fdaqp^W)h^=-10I_R%i2wiq diff --git a/ findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.FileListAbsolute.txt b/ findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.FileListAbsolute.txt deleted file mode 100644 index 80c651d..0000000 --- a/ findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,38 +0,0 @@ -D:\michael\FlashDevelop\flashdevelop-development\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll.config -D:\michael\FlashDevelop\flashdevelop-development\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.dll -D:\michael\FlashDevelop\flashdevelop-development\FlashDevelop\Bin\Debug\Plugins\FindReplaceEx.pdb -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.PluginUI.resources -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.Properties.Resources.resources -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.Resources.en_US.resources -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.dll -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.pdb -D:\michael\projects\VisualStudio\c#\FindReplaceEx\obj\x86\Debug\FindReplaceEx.csprojResolveAssemblyReference.cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.csprojResolveAssemblyReference.cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.PluginUI.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.Properties.Resources.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.Resources.en_US.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.dll -D:\michael\projects\VisualStudio\c#\FindReplaceExTry\obj\x86\Debug\FindReplaceEx.pdb -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.csprojResolveAssemblyReference.cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.PluginUI.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.Properties.Resources.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.Resources.en_US.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.dll -D:\michael\projects\VisualStudio\c#\FindReplaceExTry2\obj\x86\Debug\FindReplaceEx.pdb -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.csprojResolveAssemblyReference.cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.PluginUI.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.Properties.Resources.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.Resources.en_US.resources -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.dll -D:\michael\projects\VisualStudio\c#\FindReplaceExTry3\obj\x86\Debug\FindReplaceEx.pdb -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.csprojResolveAssemblyReference.cache -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.PluginUI.resources -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.Properties.Resources.resources -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.Resources.en_US.resources -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.csproj.GenerateResource.Cache -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.dll -D:\michael\projects\VisualStudio\c#\FindReplaceEx4\obj\x86\Debug\FindReplaceEx.pdb diff --git a/ findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.GenerateResource.Cache b/ findandreplaceex/obj/x86/Debug/FindReplaceEx.csproj.GenerateResource.Cache deleted file mode 100644 index c39b08534489769f3718fa66958b1ccb85b931be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 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 RS%K}jTzA`C_vCQx@*lE^QI!Ay diff --git a/ findandreplaceex/obj/x86/Debug/FindReplaceEx.dll b/ findandreplaceex/obj/x86/Debug/FindReplaceEx.dll deleted file mode 100644 index 144b478561a4f6dcc3fd3261100475b23c8e456a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60928 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 K|L1>C0)GeAjJ|jP diff --git a/ findandreplaceex/obj/x86/Debug/FindReplaceEx.pdb b/ findandreplaceex/obj/x86/Debug/FindReplaceEx.pdb deleted file mode 100644 index 842e958cb973a1421f7f799eedd0af780db46297..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114176 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 Jv+&3U{wJn;A)WvL diff --git "a/ findandreplaceex/\327\236\327\251\327\231\327\236\327\225\327\252.txt" "b/ findandreplaceex/\327\236\327\251\327\231\327\236\327\225\327\252.txt" deleted file mode 100644 index aacaf97..0000000 --- "a/ findandreplaceex/\327\236\327\251\327\231\327\236\327\225\327\252.txt" +++ /dev/null @@ -1,31 +0,0 @@ -שחרור 1 -V - תיקון טולטיפ מהבהב -V - הוספת קיצורי מקשים לkeybord manager -V - בחיפוש תיקיות להחליף את הצ'ק בוקס ל-3 מצבים - המצב השלישי משאיר את האפשרות לחוצה -V - לחיצה על אנטר מחליפה (ומחפשת?). -V - היסטוריית חיפושים - אפשר להוסיף כאשר לוחצים על אינטר -V - הורדת כפתור החיפוש, מעכשיו מחפשים ומחליפים עם אנטר -V-תיקון בג -שמירת ה-V בשלושת הצ'קבוקס העליונים -V - הוספת טולטיפ עם הנתיב המלא בכרטיסייה תיקיות -V - להוסיף משתנה בסטינג שיקבע כמה ישמרו בהיסטוריית החיפושים -V - ממשיך לחפש בכל התיקיות אם הצ'ק בוקס מבומן כריבוע. -V - סידור מחדש של הלייאווט. -V - הוספת ספליטר המאפשר הגדלה של חלון התוצאות -V - לאחר החלפה לא מוריד את התוצאות. -שחרור 2 -V - שינוי סיומת בטאב פולדרס אם זה הקס או AS -V - סידור העמודות בפאנל result -V - הרחבת פאנל התוצאות כאשר ה-result לא בפוקוס - לעשות בהגדרות שאפשר להחליט האם פאנל הריסולט יתרחב לאחר חיפוש(פר טאב) -V - לעשות שיתאים גם אם שמים בצד ( ולא רק למטה) - --שלא יבצע חיפוש מחדש במעבר בין קבצים -- לבדוק איך מוסיפים פלאין ל-APPMAN --לעשות את ה-tooltip של התוצאות קבוע ולא מהבהב. -- לחזק את הסימון של הסלקשן - contrast - -- חיפוש והחלפה בתיקיות לא עובד כמו שצריך - -? - למה הסיר את ה-V מהצ'ק בוקסים? -? - אולי כדאי לעשות tab רק על find ו-replace? -?- להחליף את ה-try-catch ב-tooltip -?- למה צריך את הסיפור של הקונטרסט? למה לא לסנן את התוצאות לגמרי? \ No newline at end of file