snippet - En Visual Studio 2010, ¿hay una manera de comentar fácilmente las líneas en CSS?
visual code html lint (2)
¿Alguien sabe si hay una manera en Visual Studio 2010 para resaltar y comentar las líneas en los archivos CSS como puede hacerlo con todos los demás archivos (haciendo clic en un botón)? Tal vez una extensión de Visual Studio? Comentarlos manualmente es engorroso.
Desafortunadamente, los comandos regulares para comentar y descomentar ( Ctrl + K + C y Ctrl + K + U ) no funcionan para CSS. En su lugar, deberá grabar o escribir una macro que haga esto y adjuntarla a su propio acceso directo.
Para comentar el texto seleccionado (nota, esto es rápido y sucio y por lo tanto lo comenta como un solo bloque):
Sub CssComment()
DTE.ActiveDocument.Selection.Text = "/*" + DTE.ActiveDocument.Selection.Text + "*/"
End Sub
Actualizar
Esta nueva versión a continuación funciona más como el comando de comentario regular y los comentarios línea por línea. Esto significa que no tienes que seleccionar el texto de antemano. Esto también realiza todos los cambios como una única operación que se puede deshacer y comprueba la extensión del archivo para que pueda asignarlo al acceso directo normal y funcionará para todos los archivos.
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
Actualización para Descomentar
Esta macro realiza la tarea inversa. Una vez más, se implementa de modo que funcione para todos los documentos, si es necesario, al verificar la extensión del archivo y aplazar el comando estándar Edit.UncommentSelection
para archivos que no sean CSS.
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
Actualización 18Oct2012
De acuerdo con la respuesta de dirq , hay una extensión, Web Essentials, que proporciona comentarios y comentarios sobre CSS. Recomendaría usar esto sobre las macros anteriores, ya que proporciona otro gran soporte además de los atajos de comentarios de CSS.
Hay una extensión disponible que funciona mejor que la macro: Web Essentials. Echale un vistazo. http://visualstudiogallery.msdn.microsoft.com/6ed4c78f-a23e-49ad-b5fd-369af0c2107f