c# - 从 C# 源文件中提取文档注释

标签 c# visual-studio documentation comments

<分区>

有谁知道有什么工具可以让您直接从 .cs 文件中将注释提取到一些简单的文本甚至剪贴板中?如果这样的工具也可以在方法级别工作,那就更好了。

不是在寻找像 SandcaSTLe 这样可以在构建时工作的东西,我正在寻找可以在单一源代码文件上工作的东西。基本上我需要将一大块方法签名和相关的文档注释复制到一个文本文件中,但我厌倦了删除“///”并重新格式化这些行。我希望能够右键单击一个方法,并在“将文档复制到剪贴板”的行中有一个上下文菜单项。

是否存在这样的工具?

最佳答案

我刚刚编写了一个工具来执行此操作。这只是几行代码,还没有完成,但扩展起来非常简单(明天我可能会在某个地方这样做)。

结果:只需单击从菜单中提取,结果就会出现在剪贴板中。

alt text

两个非常简单的步骤:

  1. 编写一个程序,将一个文件作为参数,从该文件中提取一些文本并将它们粘贴到剪贴板。
  2. 将该程序集成到您的 IDE 中。

第 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 屏幕截图:

alt text

关于c# - 从 C# 源文件中提取文档注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759714/

相关文章:

c++ - 如何为我的应用程序分配 visual studio 中的所有可用内存?

Phpdocumentor 和 Slim 路由器文档

c# - 需要递归函数来生成唯一的字符串组合

c# - clickonce 从哪里从 regedit 获取 DisplayName 中使用的值?

c# - 如果只有最后一次构建通过 TFS 插件失败,则 TFS 成功构建警报电子邮件

python - 带有三重引号的 Jupyter Notebook Python 自动文档字符串生成

c++ - C++中的默认参数

c# - 如何获得任何 3 位以上整数的最后两位数字?

c# - Xamarin 表单 - 网页 View

visual-studio - Inno Setup:应用程序无法启动