Snippets con eclipse

De ChuWiki

¿Qué es un snippet?[editar]

Un Snippet no es más que un trozo de código pequeño, que no es un programa completo, pero que puede servir como ejemplo de cómo se usa alguna determinada función o clase, para poder hacer copy-paste de él, etc.

Guardar un snippet[editar]

Eclipse nos permite tener una lista de snippets, es decir, una lista de pequeños trozos de código que luego podremos usar en cualquier parte de nuestro código. Por ejemplo, cada vez que se crea y visualiza un JFrame, puede ser habitual hacer las siguientes llamadas

elJFrame.pack();   // Da tamaño al frame.
elJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    // Al cerrarlo se termina la aplicación.
elJFrame.setLocationRelativeTo(null);   // Sale centrado en pantalla.
elJFrame.setVisible(true);   // Se hace visible.

Pues bien, si ese código lo estamos repitiendo una y otra vez en nuestras aplicaciones eclipse, podemos decirle a eclipse que lo guarde como snippet. De esta forma, eclipse nos dará una lista de Snippets que hemos ido guardando y podremos usar cualquiera de ellos en cualquier momento. Es como un copy-paste, pero más "avanzado", ya que tendremos una lista de códigos copiados, que no se perderá cuando hagamos otro copy, y que podremos usar en cualquier momento dentro de eclipse.

Eclipse organiza estos snippets por categorías, de forma que podemos, por ejemplo, meter todos los snippets que tengan que ver con Swing en una categoría Swing, los que tengan que ver con base de datos en una categoría BD, etc. Así estám más organizados.

Para decirle a eclipse que nos guarde este trozo de código como un snippet, símplemente lo seleccionamos, damos al botón derecho del ratón para sacar el menú y elegimos la opción "Add to Snippet...". Se abre una ventana preguntando por el nombre de la categoría. Ponemos un nombre cualquiera, "Swing", por seguir con el ejemplo mencionado. Entonces se abre una ventana como la siguiente

  • En "Name" ponemos un nombre que nos facilite acordarnos de qué tiene el snippet, por ejemplo "visualizar frame"
  • En "Description" ponemos un texto más largo describiendo qué hace el snippet, por ejemplo, "da tamaño, centra y visualiza frame"
  • Es normal que este trozo de código no nos valga tal cual. Posiblemente, de un sitio a otro, la variable que contiene el JFrame no sea "elJFrame". En otro sitio puede ser "laVentana" o "miAplicacion". Lo que hacemos entonces, pulsando el botón "new" que tenemos en el lado derecho de la tabla, es crear una nueva variable. A esa variable, la llamamos por ejemplo "frame".
  • En el trozo de código, cambiamos todos los "elJFrame" por "${frame}". De esta manera, cuando vayamos a usar el snippet (el "paste") en otro sitio de código, eclipse nos preguntará qué queremos poner en lugar de ${frame}.

La ventana, una vez modificada, quedará así

Sólo queda darle a "Ok" para salvar los cambios.

Usar el snippet[editar]

Para usar el snippet, sólo tenemos que abrir la ventana de snippets. Lo más cómodo es tenerla como pestaña en alguna parte de nuestro eclipse. Para ello, "window" -> "show view" -> "others..." y en la ventana que sale elegimos "general" -> "snippets". Esto nos mostrará la vista como pestaña según se ve en la siguiente imagen

Ahora sólo tenemos que coger con el ratón el snippet que queramos de nuestra lista (en este caso "visualizar frame" y arrastrarlo sobre nuestro código al sitio que queramos. El código se insertará, pero si hay alguna variable como ${frame}, eclipse nos preguntará qué queremos poner ahí antes de pegarlo. Tendremos que poner el nombre de la variable en la que tengamos el frame en ese caso concreto

y con esto se insertará en nuestro código el snippet, reemplazando los ${frame} por el valor que hemos puesto.