#VS2015 – Borrar todos los comentarios en un Click con #Roslyn

Hola!

Hoy toca ver un poco de Roslyn para eliminar los comentarios de un archivo. El paso a paso sobre cómo crear un proyecto de Roslyn, está en la sección referencias [Roslyn – Creating an introduce and initialize field refactoring]. Para este ejemplo, lo que buscaremos serán elementos del tipo comentarios en C#, así que en el punto de entrada [ComputeRefactorUsing], buscaremos elementos del tipo SyntaxTrivia, a partir de la posición del cursor con la función DescentantTrivia() (línea 18)

Los elementos de tipo SyntaxTrivia identifican todo aquello que no es importante para el compilador, como saltos de línea, comentarios, etc. En este ejemplo, validaremos que existan elementos del tipo comentarios para mostrar la acción disponible (línea 24). A continuación creamos el comando [Remove comments] y lo asociamos a una operación RemoveAllComents(). Dentro de esta operación, obtendremos nuevamente todos los elementos de tipo SyntaxTrivia y procesaremos los mismos a nivel del documento root con la operación ReplaceTrivia(). En una de sus sobrecargas, esta operación utiliza 2 parámetros para procesar el reemplazo. Para este ejemplo, solo reemplazaremos la línea si el Trivia es del tipo SingleComment o MultipleComment (línea 40). Reemplazamos esta línea por un salto de carro y podemos dar por cerrada la operación.

En el siguiente video podemos ver 2 animaciones, donde la 1ra ejecuta el código del ejemplo, y en la 2da se muestra un Preview de un reemplazo eliminado todos los elementos de tipo SyntaxTrivia.

El código del ejemplo se puede descargar desde GitHub en https://github.com/elbruno/Blog/tree/master/ElBruno.RemoveComments

Saludos @ Madrid

/El Bruno

References

– Roslyn https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview#syntax-trivia

– Roslyn – Creating an introduce and initialize field refactoring http://trydis.github.io/2015/01/03/roslyn-code-refactoring/

– Roslyn SyntaxTrivia https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview#syntax-trivia

– Roslyn ReplaceTrivia()http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/CSharpExtensions.cs,b3247464908d9e7a

– Roslyn SyntaxFactory http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/Syntax/SyntaxFactory.cs

Advertisements

4 thoughts on “#VS2015 – Borrar todos los comentarios en un Click con #Roslyn

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s