【问题标题】:VS 2010 Extensibility: Create a extension to automatically wrap selected text (code) in comments and adding a comment above itVS 2010 可扩展性:创建扩展以自动将所选文本(代码)包装在注释中并在其上方添加注释
【发布时间】:2011-03-22 12:26:27
【问题描述】:

我正在尝试开发一个与 VS 2010 中的“评论”工具栏按钮类似的扩展,但我想将所有文本标记为“已注​​释掉”并在其上方添加评论。

这是一个例子。我知道这很简单,但是要容易得多。我的想法是有一些额外的工具栏按钮来标记不再使用的代码,标记有错误的代码......以及类似的东西......这可以在任务窗口中选择,因为它以 TODO 开头:

        // TODO MARTIN CODE NO LONGER USED
        /*if (myItem)
        {
            txtTest.Enabled = false;
            txtTest1.Value = 0;
            btnOk.Enabled = false;
        }*/

我想我需要使用:

       DTE.ActiveDocument

和:

       (((TextDocument)myDoc).Selection.Text).

那要重新写出代码,我需要做什么?

【问题讨论】:

    标签: vsx extensibility visual-studio-addins


    【解决方案1】:

    这并不完全是您问题的答案,但它是您可以考虑的另一种选择。您可以定义执行您需要的每个操作的宏,然后将它们分配给工具栏按钮。一个示例宏是:

    Sub TODOComment()
        DTE.ExecuteCommand("Edit.CommentSelection")
        DTE.ActiveDocument.Selection.LineUp()
        DTE.ActiveDocument.Selection.EndOfLine()
        DTE.ActiveDocument.Selection.NewLine()
        DTE.ActiveDocument.Selection.Text = "// TODO "
    End Sub
    

    这使用了内置的注释掉部分功能,然后上升到选择之前的行,在行尾插入一个返回并添加一个“TODO”注释。所以有明显的缺点(不要在文件顶部运行它),但它或多或少会做你所追求的。取消注释基本上是相同的(取消注释所有内容,然后删除第一行)。

    我不太了解自动化引擎,所以如果我想学习如何做这类事情,我倾向于录制一个临时宏,执行我感兴趣的活动,然后调整输出以获得我想要的结果。它往往会节省相当多的时间来寻找并不总是显而易见的文档。

    【讨论】:

      【解决方案2】:

      只需录制一个临时宏来执行您想要的任何操作,然后将其粘贴到您的宏中,并根据需要进行调整。在这种情况下,我认为这就是你想要做的:

          DTE.ExecuteCommand("Edit.CommentSelection")
          DTE.ActiveDocument.Selection.LineUp()
          DTE.ActiveDocument.Selection.NewLine()
          DTE.ActiveDocument.Selection.Text = "// TODO Whatever"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 2018-01-01
        相关资源
        最近更新 更多