在VS 2008中取消注释CSS的快捷方式?

时间:2009-10-19 06:09:57

标签: css visual-studio visual-studio-2008 editor

我使用this question中提到的宏来评论VS 2008中CSS编辑器中的文本选择。我正在寻找另一个取消注释评论的宏。

2 个答案:

答案 0 :(得分:0)

只是写一个类似的模块/方法,我认为应该有用,我没试过,但这就是我的想法。
请将此视为您已关联的帖子的补充,您可以从该帖子中查找其他详细信息。

Public Module UnCommentCSS
    Sub UnCommentCSS()
        Dim selection As TextSelection
        selection = DTE.ActiveDocument.Selection

        Dim selectedText As String
        selectedText = selection.Text

        If selectedText.Length > 0 _
           and selectedText.StartsWith("/*") _
           and selectedText.EndsWith("*/") Then
           selectedText = selectedText.Split("*"c)
           selection.Text = selectedText(1)
        End If
    End Sub
End Module

注意:如果/ * * /
之间没有嵌套*,则此方法有效 否则,您必须进行必要的改进/更改

答案 1 :(得分:0)

作为IObservable suggests的Brian Schmitt,你可以使用相同的键来评论和取消注释你的代码,当然这取决于它是否已被评论。他用来实现这一目的的代码如下:

Sub CommentCSS()
If Not DTE.ActiveDocument.Name.EndsWith("css") Then Return
 Try
  DTE.UndoContext.Open("Comment CSS")

  Dim txtSel As TextSelection = DTE.ActiveDocument.Selection
  Dim currText As String = txtSel.Text

  If currText.Length > 0 Then
   Dim newTxt As String
   If currText.Trim.StartsWith("/*") AndAlso currText.Trim.EndsWith("*/") Then
    newTxt = currText.Replace("/*", "").Replace("*/", "")
   Else
    newTxt = "/*" + currText + "*/"
   End If

   txtSel.Delete()
   txtSel.Insert(newTxt, vsInsertFlags.vsInsertFlagsInsertAtEnd)
  End If
 Finally
  DTE.UndoContext.Close()
 End Try
End Sub

我从代码中删除了他的评论,因为他们搞砸了SO的代码着色,但是他给出的选项看起来非常方便。此外,在上面提供的链接中,他解释了有关如何绑定快捷键以使其正常工作的所有内容。