## :date:2025-08-02 星期六更新
### RySmartEditor V1.0.2508.0201 - *.[新增]文件查找支持批量替换功能。 - *.[修复]修复文件查找功能失效的BUG。
This commit is contained in:
1 parent
5a5faaf5dc
commit
6e3b87ed94
28 files changed
+514
-42
No files matched your search
@@ -1,9 +1,8 @@
|
||||
using System;
|
||||
using AutocompleteMenuNS;
|
||||
using ScintillaNETV2;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using AutocompleteMenuNS;
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
|
||||
public class ScintillaWrapper : ITextBoxWrapper
|
||||
{
|
||||
|
||||
-1
@@ -831,7 +831,6 @@ namespace ScintillaNET_FindReplaceDialog
|
||||
//
|
||||
this.btnFileReplaceAll.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnFileReplaceAll.Enabled = false;
|
||||
this.btnFileReplaceAll.Location = new System.Drawing.Point(392, 57);
|
||||
this.btnFileReplaceAll.Name = "btnFileReplaceAll";
|
||||
this.btnFileReplaceAll.Size = new System.Drawing.Size(121, 27);
|
||||
|
||||
@@ -1214,7 +1214,50 @@ namespace ScintillaNET_FindReplaceDialog
|
||||
|
||||
private void btnFileReplaceAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
var folder = TxtSearchPath.Text;
|
||||
if (!System.IO.Directory.Exists(folder))
|
||||
{
|
||||
MessageBox.Show("目录不存在。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
if (TxtFileSearchText.Text.Length == 0)
|
||||
{
|
||||
MessageBox.Show("待查找文本为空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
return;
|
||||
}
|
||||
if (!DesignMode)
|
||||
{
|
||||
ryCommon.Ini ini = new ryCommon.Ini(Application.StartupPath + "\\UserDb\\FindReplace.ini");
|
||||
ini.WriteIni("FileFind", "Exts", TxtFileType.Text);
|
||||
ini.WriteIni("FileFind", "SkipDirName_On", ChkSkipDirName.Checked);
|
||||
ini.WriteIni("FileFind", "SkipDirName_Text", CbbSkipDirName.Text);
|
||||
ini.WriteIni("FileFind", "SearchSubDir", ChkSubDir.Checked);
|
||||
ini.WriteIni("FileFind", "IgnoreBinExt", ChkIgnoreBinExt.Checked);
|
||||
ini.WriteIni("FileFind", "SearchHiddenDir", ChkHiddenDir.Checked);
|
||||
ini.WriteIni("FileFind", "LimitFileSize_On", ChkLimitFileSize.Checked);
|
||||
ini.WriteIni("FileFind", "LimitFileSize_Value", NumLimitFileSize.Value);
|
||||
}
|
||||
FrmFinding frm = new FrmFinding();
|
||||
frm.SearchConfig.FindText = TxtFileSearchText.Text;
|
||||
frm.SearchConfig.ReplaceText = TxtFileReplaceText.Text;
|
||||
frm.SearchConfig.SearchDir = folder;
|
||||
if (TxtFileType.Text.IndexOfEx("(") >= 0)
|
||||
{
|
||||
frm.SearchConfig.Exts = TxtFileType.Text.GetStr("(", ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
frm.SearchConfig.Exts = TxtFileType.Text;
|
||||
}
|
||||
frm.SearchConfig.ReplaceModeOn = true;
|
||||
frm.SearchConfig.SkipDirName = ChkSkipDirName.Checked ? CbbSkipDirName.Text : "";
|
||||
frm.SearchConfig.LimitFileSize = ChkLimitFileSize.Checked ? (NumLimitFileSize.Value.ToInt() * 1024 * 1024) : 0;
|
||||
frm.SearchConfig.SearchSubDir = ChkSubDir.Checked;
|
||||
frm.SearchConfig.IgnoreBinExt = ChkIgnoreBinExt.Checked;
|
||||
frm.SearchConfig.SearchHiddenDir = ChkHiddenDir.Checked;
|
||||
frm.SearchConfig.RegexOptions = fcFile.GetRegexOptions();
|
||||
frm.SearchConfig.SearchFlags = fcFile.GetSearchFlags();
|
||||
frm.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -129,9 +129,6 @@
|
||||
<metadata name="mnuRecentFindF.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>576, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 56</value>
|
||||
</metadata>
|
||||
<metadata name="mnuExtendedCharFindR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>198, 17</value>
|
||||
</metadata>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using ryCommon;
|
||||
using ryCommon.sType;
|
||||
using ryControls;
|
||||
using ScintillaNETV2;
|
||||
using SuperDesign.Tools.SmartEditor;
|
||||
@@ -305,7 +306,31 @@ namespace ScintillaNET_FindReplaceDialog
|
||||
var find_list= SearchText(text);
|
||||
if(find_list.Count>0)
|
||||
{
|
||||
dict_list.Add(files[f],find_list);
|
||||
if (SearchConfig.ReplaceModeOn)
|
||||
{
|
||||
var new_text = "";
|
||||
var start = 0;
|
||||
var new_find_list = new List<CharacterRange>();
|
||||
for (int z = 0; z < find_list.Count; z++)
|
||||
{
|
||||
var item = find_list[z];
|
||||
if (start > text.Length) { break; }
|
||||
new_text += text.Substring(start, item.CpMin - start) + SearchConfig.ReplaceText;
|
||||
new_find_list.Add(new CharacterRange(new_text.Length - SearchConfig.ReplaceText.Length, new_text.Length) { LineNum = item.LineNum, RangeText = SearchConfig.ReplaceText });
|
||||
start = item.CpMax;
|
||||
if (find_list.Count == z + 1)
|
||||
{
|
||||
new_text += text.Substring(start);
|
||||
}
|
||||
}
|
||||
开发辅助工具.Manager.Itrycn_Db.AddHistory(files[f], text);
|
||||
RyFiles.WriteAllText(files[f], new_text, TxtFileEncoder.GetEncoding(files[f]));
|
||||
dict_list.Add(files[f], new_find_list);
|
||||
}
|
||||
else
|
||||
{
|
||||
dict_list.Add(files[f], find_list);
|
||||
}
|
||||
}
|
||||
count++;
|
||||
if (count <= total_count)
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
using ryCommon;
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using WeifenLuo.WinFormsUI.Docking;
|
||||
|
||||
-1
@@ -30,7 +30,6 @@ using ScintillaNETV2;
|
||||
using VPKSoft.ScintillaLexers.HelperClasses;
|
||||
using static VPKSoft.ScintillaLexers.LexerEnumerations;
|
||||
using static VPKSoft.ScintillaLexers.GlobalScintillaFont;
|
||||
using ScintillaNETV2;
|
||||
|
||||
namespace VPKSoft.ScintillaLexers.CreateSpecificLexer
|
||||
{
|
||||
|
||||
-1
@@ -24,7 +24,6 @@ SOFTWARE.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
using VPKSoft.ScintillaLexers.HelperClasses;
|
||||
using VPKSoft.ScintillaLexers.LexerColors;
|
||||
|
||||
-1
@@ -24,7 +24,6 @@ SOFTWARE.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
using VPKSoft.ScintillaLexers.HelperClasses;
|
||||
using static VPKSoft.ScintillaLexers.LexerEnumerations;
|
||||
|
||||
-1
@@ -24,7 +24,6 @@ SOFTWARE.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
using VPKSoft.ScintillaLexers.HelperClasses;
|
||||
using static VPKSoft.ScintillaLexers.LexerEnumerations;
|
||||
|
||||
-1
@@ -30,7 +30,6 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
using VPKSoft.ScintillaLexers.HelperClasses;
|
||||
using static VPKSoft.ScintillaLexers.LexerEnumerations;
|
||||
|
||||
|
||||
-1
@@ -24,7 +24,6 @@ SOFTWARE.
|
||||
*/
|
||||
#endregion
|
||||
|
||||
using ScintillaNETV2;
|
||||
using ScintillaNETV2;
|
||||
using VPKSoft.ScintillaLexers.HelperClasses;
|
||||
using VPKSoft.ScintillaLexers.LexerColors;
|
||||
|
||||
Reference in new issue
Block a user