15 enero 2010

El experto Castalia (1)

Después de una pequeña pausa, seguimos con el tema de los expertos para Delphi, continuando en esta ocasión con el experto Castalia, que si bien no es tan famoso como cnPack, si tiene algunas características que lo hacen muy interesante.

Este experto es comercial (se vende a 99$) y está disponible para las versiones de Delphi desde la 5 a la 7 y para RAD Studio 2005, 2006, 2007, 2009 y 2010. Esta es su página de venta:

http://www.twodesk.com/store/index.html

Podemos descargar una versión Trial de 30 días desde esta página:

http://www.twodesk.com/castalia/index.html

La versión a fecha de este artículo es la 2009.3. Me he bajado la instalación de la versión para Delphi 7 que tiene un tamaño de 3,3 MB:

El único inconveniente que tiene la instalación es que nos pedirá que cerremos todas las versiones de Delphi, aunque yo solo me haya bajado la versión de para Delphi 7. Al ejecutarla precompila el código fuente y se instala:

Arrancamos Delphi 7 y abrimos un proyecto a ver si aparece alguna novedad en el IDE:

En un primer vistazo, no parece que sea demasiado intrusivo salvo que aparece en la parte inferior del editor de código los días que nos quedan para evaluar el producto y un botón para comprarlo:

También podemos apreciar que nos ha metido los números de línea a la izquierda:

Y hay una nueva barra de herramientas encima del editor de código:

Luego vemos que hay una barra vacía a la derecha de la barra de desplazamiento de la ventana:

Y otra barra vacía fuera del IDE a la izquierda del escritorio:

Y luego tenemos en el menú superior la opción Castalia con esta menú de opciones:

Comencemos a ver cada una de sus características.

LA PILA DE MARCADORES

Los marcadores de Castalia nos permiten colocar un marcador en una ubicación específica en el código y volver a ella más tarde (igual que los bookmarks de Delphi). Pero al contrario de Delphi, que solo permite hasta 10 marcadores fijos, cada vez que asignamos un marcador en Castalia se añade a una pila de marcadores que luego podemos recorrer.

Para memorizar la posición de una línea en concreto, pulsamos el botón Push Bookmark on Stack que se encuentra en la barra superior del editor de código:

Al pulsarlo nos aparecerá este mensaje a la derecha del editor:

Nos dice que lo ha añadido a la pila de marcadores y que si queremos quitarlo podemos pulsar la tecla escape (mientras permanezcamos en la misma línea). Supongamos que me voy a otra línea distinta y luego quiero volver. Lo primero que apreciamos es que se han activado los cuatro botones de los marcadores:

Con las flechas verdes de izquierda y derecha podemos navegar sobre los marcadores creados. Además veremos que no sólo memoriza la línea donde está el marcador, además memoriza su posición horizontal con un pequeño triángulo apuntando hacia arriba:

Al mover el puntero del ratón sobre el editor de código también nos mostrará una pequeña barra de herramientas flotante con estos botones:

El primer botón (Pop) es para volver al marcador anterior y sacarlo de la pila de marcadores. El segundo (Swap) es para saltar entre marcadores. Y el tercero (la letra A azul) es para refactorización, que vemos más adelante. Si tenemos varios marcadores los podemos listar con el desplegable del botón Pop:

Resumiendo, tenemos los botones para memorizar marcadores y meterlos a la pila (Push), otro botón para saltar al marcador y eliminarlo de la pila (Pop) y luego tenemos los botones de navegación entre los mismos (con las flechas verdes) o con Swap (en la barra flotante). Es otra manera de ver las cosas, pero también efectiva.

LA BARRA DE NAVEGACIÓN DE CÓDIGO

Es la barra que aparece en la parte superior del editor de código y que nos permite averiguar en que objeto y procedimiento/función estamos situados:

También podemos desplegarlos y saltar rápidamente a otro procedimiento:

Pero a estos dos desplegables creo que les ha faltado que pueda comenzar a teclear una palabra clave y que me encuentre el procedimiento/función que más se le parezca. Así como esta es algo soso.

Un botón que sí me perece muy interesante es Used Units:

Es un botón desplegable que nos permite abrir cualquier unidad usada por la unidad actual:

Al seleccionarlo abrirá una nueva pestaña con la unidad elegida. El botón que aparece a su derecha (Sections) nos permite saltar a las zonas de código más importantes de la unidad actual:

Los botones de marcadores que hay a su derecha ya lo hemos visto en la sección anterior.

LAS PLANTILLAS DE CÓDIGO

Las plantillas de código no solo se limitan a acelerar la escritura de código sino que además podemos hacerlas programables mediante su propio lenguaje de scripts de tal modo que puedan manipular cadenas, realizar operaciones matemáticas, pedir al usuario una entrada de datos o pegar algo del portapapeles.

Las plantillas predeterminadas pueden verse seleccionando en el menú superior Castalia -> Template Editor:

En la parte izquierda de la ventana tenemos las abreviaciones de las plantillas y si pinchamos sobre las mismas veremos su implementación a la derecha. Entonces podemos ver que si en el editor de código escribimos for i nos montará el resto:

Lo más raro que he apreciado es que nos coloca marcadores por cada parámetro, de modo que al terminar de escribir la sentencia se queda todo lleno de marcadores:

Es un poco raro para mi gusto, ya que luego habría que deshacerse de todos estos marcadores pulsando Escape. Las plantillas no solo insertan código automáticamente, también permiten comprobar si hemos terminado de rellenar ciertas sentencias. Por ejemplo, si declaramos un procedimento y no lo terminamos nos aparecerá este error a la derecha:

De este modo, podemos crear plantillas para comprobar sentencias en tiempo de diseño antes de compilar. Solo es cuestión de investigar como funciona este lenguaje script. La ayuda en este sentido es bastante completa y podemos verla seleccionando Castalia -> Castalia Help y luego vamos al apartado Code Template Reference:


CONTINUARA

En el próximo artículo seguiremos viendo más características de este experto. Quiero expresar mi agradecimiento a Jorge Abel por haberme recomendado este experto del que no tenia conocimiento. Hay tantas cosas que todavía me quedan por aprender de Delphi...

Pruebas realizadas en Delphi 7.

Publicidad