## :date:2025-08-02 星期六更新

### RySmartEditor    V1.0.2508.0201
- *.[新增]文件查找支持批量替换功能。
- *.[修复]修复文件查找功能失效的BUG。
This commit is contained in:
zilinsoft committed 2025-08-02 10:50:47 +08:00
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
{
@@ -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;
@@ -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
{
@@ -24,7 +24,6 @@ SOFTWARE.
*/
#endregion
using ScintillaNETV2;
using ScintillaNETV2;
using VPKSoft.ScintillaLexers.HelperClasses;
using VPKSoft.ScintillaLexers.LexerColors;
@@ -24,7 +24,6 @@ SOFTWARE.
*/
#endregion
using ScintillaNETV2;
using ScintillaNETV2;
using VPKSoft.ScintillaLexers.HelperClasses;
using static VPKSoft.ScintillaLexers.LexerEnumerations;
@@ -24,7 +24,6 @@ SOFTWARE.
*/
#endregion
using ScintillaNETV2;
using ScintillaNETV2;
using VPKSoft.ScintillaLexers.HelperClasses;
using static VPKSoft.ScintillaLexers.LexerEnumerations;
@@ -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;
@@ -24,7 +24,6 @@ SOFTWARE.
*/
#endregion
using ScintillaNETV2;
using ScintillaNETV2;
using VPKSoft.ScintillaLexers.HelperClasses;
using VPKSoft.ScintillaLexers.LexerColors;
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.2507.1601")]
[assembly: AssemblyFileVersion("1.0.2507.1601")]
[assembly: AssemblyVersion("1.0.2508.0201")]
[assembly: AssemblyFileVersion("1.0.2508.0201")]
@@ -716,16 +716,13 @@ namespace SuperDesign.Tools.SmartEditor
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Collections.Specialized.StringCollection list = new System.Collections.Specialized.StringCollection();
string[] list = new string[this.olvFiles.SelectedObjects.Count];
for (int i = 0; i < this.olvFiles.SelectedObjects.Count; i++)
{
var row = (MyFileSystemInfo)this.olvFiles.SelectedObjects[i];
list.Add(row.FullName);
list[i]=row.FullName;
}
DataObject data = new DataObject();
data.SetData("Preferred DropEffect", "COPY");
data.SetFileDropList(list);
Clipboard.SetDataObject(data);
RyFiles.CopyFileToClipboard(list);
}
private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
@@ -586,7 +586,7 @@ namespace 开发辅助工具.Tools.SmartEditor
收藏该文件ToolStripMenuItem.Enabled = FilePath.Length > 0;
文件信息ToolStripMenuItem.Enabled = FilePath.Length > 0;
查看历史记录ToolStripMenuItem.Enabled =FTPRemotePath.Length>0 || FilePath.Length > 0;
打开其它站点文件ToolStripMenuItem.Enabled = SiteInfo.FtpId > 0 && FilePath.Length>0;
打开其它站点文件ToolStripMenuItem.Enabled = SiteInfo.Id > 0 && FilePath.Length>0;
复制所在文件夹路径ToolStripMenuItem.Enabled = FilePath.Length > 0;
复制文件名ToolStripMenuItem.Enabled = FilePath.Length > 0;
复制路径ToolStripMenuItem.Enabled = FilePath.Length > 0;