Visual Studio regex para eliminar todos los comentarios y líneas en blanco en el código VB.NET usando una macro
Intenté eliminar todos los comentarios y líneas vacías en un archivo con la ayuda de una macro. Ahora se me ocurrió esta solución que elimina los comentarios (hay algunos errores que se describen a continuación) pero no puede eliminar las líneas en blanco entre -
Sub CleanCode()
Dim regexComment As String = "(REM [\d\D]*?[\r\n])|(?<SL>\'[\d\D]*?[\r\n])"
Dim regexBlank As String = "^[\s|\t]*$\n"
Dim replace As String = ""
Dim selection As EnvDTE.TextSelection = DTE.ActiveDocument.Selection
Dim editPoint As EnvDTE.EditPoint
selection.StartOfDocument()
selection.EndOfDocument(True)
DTE.UndoContext.Open("Custom regex replace")
Try
Dim content As String = selection.Text
Dim resultComment As String = System.Text.RegularExpressions.Regex.Replace(content, regexComment, replace)
Dim resultBlank As String = System.Text.RegularExpressions.Regex.Replace(resultComment, regexBlank, replace)
selection.Delete()
selection.Collapse()
Dim ed As EditPoint = selection.TopPoint.CreateEditPoint()
ed.Insert(resultBlank)
Catch ex As Exception
DTE.StatusBar.Text = "Regex Find/Replace could not complete"
Finally
DTE.UndoContext.Close()
DTE.StatusBar.Text = "Regex Find/Replace complete"
End Try
End Sub
Entonces, así es como debería verse antes y después de ejecutar la macro.
ANTES D
Public Class Class1
Public Sub New()
''asdasdas
Dim a As String = "" ''asdasd
''' asd ad asd
End Sub
Public Sub New(ByVal strg As String)
Dim a As String = ""
End Sub
End Class
DESPUÉ
Public Class Class1
Public Sub New()
Dim a As String = ""
End Sub
Public Sub New(ByVal strg As String)
Dim a As String = ""
End Sub
End Class
Existen principalmente dos problemas principales con la macro
No puede eliminar las líneas en blanco en el medio. Si hay un fragmento de código que dice asíDim a as String = "Name='Soham'"
Luego de ejecutar la macro se convierte en
Dim a as String = "Name='"