Aunque todos culpamos al “copy-paste” cuando tenemos un error en nuestro código, como si no fuese nuestra culpa, lo usamos a menudo para acelerar nuestros tiempos de desarrollo.

Muchas veces usamos este método por simple desidia o por falta de conocimiento de nuestras herramientas de trabajo, ya que existen una infinidad de snippets preconfigurados. ¿Pero qué son estos snippets?

Seguro que muchos ya lo saben, por eso les encanta su IDE de desarrollo, porque les ofrece cantidad de herramientas, atajos de teclado, etc., con los cuales tecleamos dos veces y generamos un nuevo bloque de instrucciones al momento. Estos pequeños fragmentos de código semi inteligente son lo que denominamos snippets, que según la Wikipedia son:

Snippet es un término del idioma inglés utilizado en programación para referirse a pequeñas partes reusables de código fuente, código máquina o texto. Comúnmente son definidas como unidades o métodos funcionales que se pueden integrar fácilmente en módulos mucho más grandes, aportando funcionalidad.

Si usas Visual Studio y estas escribiendo una simple clase en VB, prueba a teclear el atajo “prop” + TAB + TAB y verás surgir la magia de los snippets. De pronto vemos en nuestro IDE una propiedad de la clase declarada con unos parámetros por defecto. Además nuestro editor nos ofrecerá cambiar el nombre, el tipo e incluso el nombre de la variable privada que hace referencia a nuestra propiedad.  Y todo ello con tan solo pulsar el tabulador!!!

Private nombreDeLaVariablePrivada As Decimal
Public Property NombreDeLaPropiedad() As Decimal
	Get
		Return nombreDeLaVariablePrivada
	End Get
	Set(ByVal value As Decimal)
		nombreDeLaVariablePrivada = value
	End Set
End Property

Son trabajos que realizamos muchas veces y Visual Studio lo sabe, así que por eso nos dota de este tipo de herramientas.

Lo que menos gente conoce es que estos atajos o asistentes del programador podemos crearlos a nuestra medida. Pero, ¿para qué puede ser útil poder generar snippets propios? Nuestro IDE ya nos ofrece un montón de ellos para la generación de bucles, declaraciones, etc. La respuesta a la anterior pregunta es que, en el desarrollo de nuestra labor, cada uno tenemos una metodología, unas pautas de programación que debemos seguir que al final nos requieren mucho tiempo en nuestras tareas.

Desarrollemos un ejemplo para ver cómo se haría en Visual Studio una tarea tan simple como añadir un comentario personalizado en la corrección de un hotfix. Un poco absurdo, lo sé, pero solo se trata de un ejemplo práctico.

Lo primero es crear un archivo xml, que definirá nuestro snippet:



  
    
Hotfix comment Ivan Amo Add hotfix comment description as defined in developers manual hcom
Name Enter your developer name acronym. DeveloperNameAcronym CodeNumber Enter the hotfix internal code. 000 Description Enter a short description of solution applied. No description

Header
Definición de nuestro snippet donde insertaremos el nombre del autor, su atajo de inserción y una breve descripción si se desea.

Code
En esta sección se define a través del atributo Language el lenguaje de programación al que va dirigido este snippet y dentro de la estructura de datos <![CDATA[]]> de un xml se define la porción de código que se insertará.

Declarations
Dentro de esta sección se definen las variables que son editables dentro del snippet.

También existen otras secciones para realizar importaciones al código, namespace, etc. Para más información consultar en https://docs.microsoft.com/es-es/visualstudio/ide/code-snippets-schema-reference?view=vs-2019

Ya solo nos falta decirle a Visual Studio que use nuestro fichero, para lo cual lo guardaremos con la extensión .snippet en el directorio de los snippets personales de visual studio. Para hacerlo basta con ir a Herramientas->Administrador de fragmentos de código o Ctrl+k, Ctrl+b

Con lo cual se nos abrirá la ventana de la siguiente imagen:

Desde aquí pulsaremos importar y seleccionamos nuestro fichero. Con esto ya estaremos listos para usar nuestro snippet.  Ahora si escribimos “hcom” + [TAB] mientras editamos nuestro código fuente obtendremos: