📄 wholeprojectdocumentiterator.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version>$Revision: 1240 $</version>
// </file>
using System;
using System.Collections;
using System.IO;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.Core;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
namespace SearchAndReplace
{
public class WholeProjectDocumentIterator : IDocumentIterator
{
ArrayList files = new ArrayList();
int curIndex = -1;
public WholeProjectDocumentIterator()
{
Reset();
}
public string CurrentFileName {
get {
if (curIndex < 0 || curIndex >= files.Count) {
return null;
}
return files[curIndex].ToString();;
}
}
public ProvidedDocumentInformation Current {
get {
if (curIndex < 0 || curIndex >= files.Count) {
return null;
}
if (!File.Exists(files[curIndex].ToString())) {
++curIndex;
return Current;
}
IDocument document;
string fileName = files[curIndex].ToString();
foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
if (content.FileName != null &&
FileUtility.IsEqualFileName(content.FileName, fileName) &&
content is ITextEditorControlProvider)
{
document = (((ITextEditorControlProvider)content).TextEditorControl).Document;
return new ProvidedDocumentInformation(document,
fileName,
0);
}
}
ITextBufferStrategy strategy = null;
try {
strategy = StringTextBufferStrategy.CreateTextBufferFromFile(fileName);
} catch (Exception) {
return null;
}
return new ProvidedDocumentInformation(strategy,
fileName,
0);
}
}
public bool MoveForward()
{
return ++curIndex < files.Count;
}
public bool MoveBackward()
{
if (curIndex == -1) {
curIndex = files.Count - 1;
return true;
}
return --curIndex >= -1;
}
public void Reset()
{
files.Clear();
if (ProjectService.CurrentProject != null) {
foreach (ProjectItem item in ProjectService.CurrentProject.Items) {
if (item is FileProjectItem && SearchReplaceUtilities.IsSearchable(item.FileName)) {
files.Add(item.FileName);
}
}
}
curIndex = -1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -