## :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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user