📄 main.cs
字号:
// project created on 09.08.2003 at 10:16
using System;
using System.Collections.Specialized;
using System.IO;
using System.Windows.Forms;
using System.Collections;
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
using ICSharpCode.SharpRefactory.PrettyPrinter;
using ICSharpCode.SharpRefactory.Parser;
class MainClass
{
public static StringCollection SearchDirectory(string directory, string filemask)
{
return SearchDirectory(directory, filemask, true);
}
public static StringCollection SearchDirectory(string directory, string filemask, bool searchSubdirectories)
{
StringCollection collection = new StringCollection();
SearchDirectory(directory, filemask, collection, searchSubdirectories);
return collection;
}
/// <summary>
/// Finds all files which are valid to the mask <code>filemask</code> in the path
/// <code>directory</code> and all subdirectories (if searchSubdirectories
/// is true. The found files are added to the StringCollection
/// <code>collection</code>.
/// </summary>
static void SearchDirectory(string directory, string filemask, StringCollection collection, bool searchSubdirectories)
{
try {
string[] file = Directory.GetFiles(directory, filemask);
foreach (string f in file) {
collection.Add(f);
}
if (searchSubdirectories) {
string[] dir = Directory.GetDirectories(directory);
foreach (string d in dir) {
SearchDirectory(d, filemask, collection, searchSubdirectories);
}
}
} catch (Exception) {
}
}
static void PrettyPrintDirectories()
{
StringCollection files = SearchDirectory("C:\\b", "*.cs");
foreach (string fileName in files) {
Parser p = new Parser();
p.Parse(new Lexer(new FileReader(fileName)));
if (p.Errors.count == 0) {
StreamReader sr = File.OpenText(fileName);
string content = sr.ReadToEnd();
sr.Close();
PrettyPrintVisitor ppv = new PrettyPrintVisitor(content);
ppv.Visit(p.compilationUnit, null);
StreamWriter sw = new StreamWriter(fileName);
sw.Write(ppv.Text);
sw.Close();
} else {
Console.Write(" Source code errors:");
Console.WriteLine(p.Errors.ErrorOutput);
}
}
Console.ReadLine();
}
public static void Main (string[] args)
{
// PrettyPrintDirectories();
// Parser p = new Parser();
// string fileName = "C:\\a.cs";
// Console.Write("Converting : " + fileName);
// p.Parse(new Lexer(new FileReader(fileName)));
// if (p.Errors.count == 0) {
// StreamReader sr = File.OpenText(fileName);
// string content = sr.ReadToEnd();
// sr.Close();
// PrettyPrintVisitor ppv = new PrettyPrintVisitor(content);
// ppv.PrettyPrintOptions.IndentSize = 6;
// ppv.Visit(p.compilationUnit, null);
//
// Console.WriteLine(ppv.Text);
//
// Console.WriteLine(" done.");
// } else {
// Console.Write(" Source code errors:");
// Console.WriteLine(p.Errors.ErrorOutput);
// }
string searchPath = Path.GetFullPath(Application.StartupPath + @"\..\src");
StringCollection files = SearchDirectory(searchPath, "*.cs", true);
ArrayList defs = new ArrayList();
long oldSet = Environment.WorkingSet;
DateTime start = DateTime.Now;
foreach (string str in files) {
Lexer lexer = new Lexer(new FileReader(str));
Parser parser = new Parser();
parser.Parse(lexer);
}
Console.WriteLine("Time: " + (DateTime.Now - start) + " memory : " + (Environment.WorkingSet - oldSet));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -