📄 searchreplaceutilities.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Kr黦er" email="mike@icsharpcode.net"/>
// <version value="$version"/>
// </file>
using System;
using System.Collections;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.TextEditor;
namespace ICSharpCode.TextEditor.Document
{
public sealed class SearchReplaceUtilities
{
public static bool IsTextAreaSelected {
get {
return WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null &&
WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent is ITextEditorControlProvider;
}
}
public static bool IsWholeWordAt(ITextBufferStrategy document, int offset, int length)
{
char[] delimiters = {'(', ')', '[', ']', ' ', ';', '.', '=', '+', '-', '/', '*', '<', '>', ',', '\n', '\t'};
string prefix = "";
string suffix = "";
if (offset != 0) {
prefix = document.GetText(offset - 1, 1);
}
if ((offset + length) < document.Length) {
suffix = document.GetText(offset + length, 1);
}
return (offset - 1 < 0 || (prefix.IndexOfAny(delimiters) != -1)) &&
(offset + length + 1 >= document.Length || (suffix.IndexOfAny(delimiters) != -1));
}
public static int CalcCurrentOffset(IDocument document)
{
// TODO:
// int endOffset = document.Caret.Offset % document.TextLength;
// return endOffset;
return 0;
}
public static ISearchStrategy CreateSearchStrategy(SearchStrategyType type)
{
switch (type) {
case SearchStrategyType.None:
return null;
case SearchStrategyType.Normal:
return new BruteForceSearchStrategy(); // new KMPSearchStrategy();
case SearchStrategyType.RegEx:
return new RegExSearchStrategy();
case SearchStrategyType.Wildcard:
return new WildcardSearchStrategy();
default:
throw new System.NotImplementedException("CreateSearchStrategy for type " + type);
}
}
public static IDocumentIterator CreateDocumentIterator(DocumentIteratorType type)
{
switch (type) {
case DocumentIteratorType.None:
return null;
case DocumentIteratorType.CurrentDocument:
return new CurrentDocumentIterator();
case DocumentIteratorType.Directory:
return new DirectoryDocumentIterator(SearchReplaceInFilesManager.SearchOptions.SearchDirectory,
SearchReplaceInFilesManager.SearchOptions.FileMask,
SearchReplaceInFilesManager.SearchOptions.SearchSubdirectories);
case DocumentIteratorType.AllOpenFiles:
return new AllOpenDocumentIterator();
case DocumentIteratorType.WholeCombine:
return new WholeProjectDocumentIterator();
default:
throw new System.NotImplementedException("CreateDocumentIterator for type " + type);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -