gpt4 book ai didi

css - 在 Visual Studio 2010 中,有没有办法轻松地注释掉 CSS 中的行?

转载 作者:技术小花猫 更新时间:2023-10-29 10:14:06 25 4
gpt4 key购买 nike

有谁知道 Visual Studio 2010 中是否有一种方法可以像对待所有其他文件一样(通过单击按钮)突出显示和注释掉 CSS 文件中的行?也许是 Visual Studio 扩展?手动评论它们很麻烦。

最佳答案

不幸的是,用于注释和取消注释的常规命令(Ctrl+K+CCtrl+K+U) 不适用于 CSS。相反,您需要录制或编写执行此操作的宏并将其附加到您自己的快捷方式。

要评论所选文本(注意,这是快速而肮脏的,因此将其评论为单个 block ):

Sub CssComment()
DTE.ActiveDocument.Selection.Text = "/*" + DTE.ActiveDocument.Selection.Text + "*/"
End Sub

更新
下面这个新的命令更像是常规的评论命令和逐行评论。这意味着您不必事先选择文本。这还将所有更改作为单个可撤消操作进行,并检查文件扩展名,以便您可以将其分配给常规快捷方式,它适用于所有文件。

Sub CommentCss()
Dim ts1 As TextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)

Dim fileName = DTE.ActiveDocument.FullName

' We should default to regular commenting if we're not editing CSS.
' This allows this macro to be attached to the Ctrl+K+C shortcut
' without breaking existing file format commenting.
If Not fileName.EndsWith(".css") Then
DTE.ExecuteCommand("Edit.CommentSelection")
Return
End If

Dim weOpenedUndo As Boolean = False
If Not DTE.UndoContext.IsOpen Then
DTE.UndoContext.Open("CommentCSS")
weOpenedUndo = True
End If

ts1.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn, True)
Dim ep1 As EditPoint2 = ts1.TopPoint.CreateEditPoint()
Dim ep2 As EditPoint2 = ts1.BottomPoint.CreateEditPoint()

While ep1.Line <= ep2.Line
Dim text As String = ep1.GetLines(ep1.Line, ep1.Line + 1)
text = text.Trim()

If Not text.StartsWith("/*") Or Not text.EndsWith("*/") Then
ep1.StartOfLine()
ep1.Insert("/*")
ep1.EndOfLine()
ep1.Insert("*/")
End If
Dim lineBeforeDown As Integer = ep1.Line
ep1.LineDown()

If ep1.Line = lineBeforeDown Then
Exit While
End If
End While

ts1.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn, True)

If weOpenedUndo Then
DTE.UndoContext.Close()
End If
End Sub

取消注释更新
该宏执行相反的任务。同样,它的实现是为了在需要时通过检查文件扩展名并推迟到非 CSS 文件的标准 Edit.UncommentSelection 命令来适用于所有文档。

Sub UncommentCss()
Dim ts1 As TextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)
Dim ep1 As EditPoint2 = ts1.TopPoint.CreateEditPoint()
Dim ep2 As EditPoint2 = ts1.BottomPoint.CreateEditPoint()

Dim fileName = DTE.ActiveDocument.FullName

' We should default to regular commenting if we're not editing CSS.
' This allows this macro to be attached to the Ctrl+K+C shortcut
' without breaking existing file format commenting.
If Not fileName.EndsWith(".css") Then
DTE.ExecuteCommand("Edit.UncommentSelection")
Return
End If

Dim weOpenedUndo As Boolean = False
If Not DTE.UndoContext.IsOpen Then
DTE.UndoContext.Open("UncommentCSS")
weOpenedUndo = True
End If

While ep1.Line <= ep2.Line
ep1.StartOfLine()

Dim text As String = ep1.GetLines(ep1.Line, ep1.Line + 1)
text = text.Trim()

If text.StartsWith("/*") And text.EndsWith("*/") Then
Dim epEndOfLine As EditPoint2 = ep1.CreateEditPoint()
epEndOfLine.EndOfLine()
text = text.Substring(2, text.Length - 4)
ep1.ReplaceText(epEndOfLine, text, vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers Or vsEPReplaceTextOptions.vsEPReplaceTextAutoformat)
End If

Dim lineBeforeDown As Integer = ep1.Line
ep1.LineDown()

If ep1.Line = lineBeforeDown Then
Exit While
End If
End While

ts1.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn, True)

If weOpenedUndo Then
DTE.UndoContext.Close()
End If
End Sub

2012 年 10 月 18 日更新
根据 dirq's answer ,有一个扩展名,Web Essentials提供 CSS 注释和取消注释。我建议在上面的宏中使用它,因为除了 CSS 注释快捷方式之外,它还提供其他强大的支持。

关于css - 在 Visual Studio 2010 中,有没有办法轻松地注释掉 CSS 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com