<分区>
有谁知道有什么工具可以让您直接从 .cs 文件中将注释提取到一些简单的文本甚至剪贴板中?如果这样的工具也可以在方法级别工作,那就更好了。
我不是在寻找像 SandcaSTLe 这样可以在构建时工作的东西,我正在寻找可以在单一源代码文件上工作的东西。基本上我需要将一大块方法签名和相关的文档注释复制到一个文本文件中,但我厌倦了删除“///”并重新格式化这些行。我希望能够右键单击一个方法,并在“将文档复制到剪贴板”的行中有一个上下文菜单项。
是否存在这样的工具?
<分区>
有谁知道有什么工具可以让您直接从 .cs 文件中将注释提取到一些简单的文本甚至剪贴板中?如果这样的工具也可以在方法级别工作,那就更好了。
我不是在寻找像 SandcaSTLe 这样可以在构建时工作的东西,我正在寻找可以在单一源代码文件上工作的东西。基本上我需要将一大块方法签名和相关的文档注释复制到一个文本文件中,但我厌倦了删除“///”并重新格式化这些行。我希望能够右键单击一个方法,并在“将文档复制到剪贴板”的行中有一个上下文菜单项。
是否存在这样的工具?
最佳答案
我刚刚编写了一个工具来执行此操作。这只是几行代码,还没有完成,但扩展起来非常简单(明天我可能会在某个地方这样做)。
结果:只需单击从菜单中提取,结果就会出现在剪贴板中。
两个非常简单的步骤:
第 1 步,第 1 部分 主程序,获取一个文件,将其发送到“提取器”并将结果写入剪贴板。
class Program
{
[STAThread]
static void Main(string[] args)
{
if (args.Length == 0) return;
FileInfo f = new FileInfo(args[0]);
Extracter e = new Extracter(f.OpenText().ReadToEnd());
Clipboard.SetText(e.GetExtractedText());
}
}
第 1 步,第 2 部分 提取器:当然是使用正则表达式从中获取你需要的所有文本模式,并返回符合要求的字符串。我省略了帖子密度的评论,因为原理很简单并且已经解释过了。
public class Extracter
{
private Regex re;
// extend/adapt regex patterns for better result.
const String RE_COMMENT_AND_NEXT_LINE= @"(?<=([\/]{3})).+";
public string FileText { get; set; }
public Extracter(String FileText)
{
this.FileText = FileText;
}
public String GetExtractedText()
{
StringBuilder sb = new StringBuilder(String.Empty);
re = new Regex(RE_COMMENT_AND_NEXT_LINE);
foreach (Match match in re.Matches(FileText))
{
sb.Append(match.ToString());
}
return sb.ToString();
}
}
第 2 步:添加到 IDE
当然依赖于 IDE,但总是很容易。请参阅我的 VS2008 屏幕截图:
关于c# - 从 C# 源文件中提取文档注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759714/