12 febrero 2010

El experto GExperts (1)

No podía abandonar el tema de los expertos sin mencionar uno de los más añejos que ha ido acompañando a Delphi en muchas de sus versiones. No tiene tantas herramientas como otros expertos pero las que lleva están muy bien pensadas y son muy efectivas. Vamos al grano.

DESCARGAR GEXPERTS

Este experto es gratuito y lo podemos descargar de esta página web:

http://www.gexperts.org/


INSTALAR GEXPERTS

Para escribir este artículo, me he bajado la versión 1.33 para RAD Studio 2007. Si tenemos GExperts instalado en otra versión de Delphi que está en ejecución, nos va a pedir que lo cerremos.

La instalación no tiene complicaciones y solo hay que ir pulsando el botón Next:

Sabemos que se ha instalado correctamente si al ejecutar Delphi vemos este pedazo de menú:


Vamos a ver a toda la artillería que trae, comenzando a ver su menú de opciones de arriba abajo.

ASCII CHART

Esta opción nos muestra los códigos de los caracteres ASCII que siempre vienen bien cuando estamos en el evento OnKeyPress:

Arriba a la izquierda tiene las opciones Low y High para ver los primeros 128 bytes del código ASCII o los 128 últimos (según la fuente que tengamos seleccionada). Y luego tenemos los botones Dec o Hex para obtener los códigos decimales o hexadecimales respectivamente.

BACKUP PROJECT

Esta opción permite hacer una copia de seguridad de todas las unidades de nuestro proyecto:

Al pulsar el botón Options podemos elegir si queremos encriptar la copia de seguridad o elegir hacer copia también de las librerías que utiliza:

Al pulsar el botón Backup elegimos el archivo zip donde va a parar la copia de seguridad:


CLASS BROWSER

La ventana que aparece al elegir esta opción nos muestra la jerarquía de clases de nuestro proyecto y si seleccionamos una de la lista, veremos a la derecha sus propiedades y métodos:

En la parte superior tenemos los botones C, T, P, V, etc., que por defecto están todos activados y va a determinar si se muestran las propiedades públicas, privadas, protegidas, etc.

CLEAN DIRECTORIES

Cuando llevamos tiempo trabajando con un proyecto, se generan gran cantidad de archivos temporales que no nos interesa tener cuando vayamos a hacer una copia de seguridad o a publicarlos en algún repositorio. Entonces tenemos esta ventana encargada de limpiar los archivos innecesarios:


Solo hay que seleccionar las extensiones de los archivos que no nos interesan y pulsar el botón Clean.

CLIPBOARD HISTORY

Esta es una de esas opciones que hecho de menos en otros expertos. Cada vez que copiemos un trozo de texto al portapapeles, GExperts guardará una copia en su historial:

Puede venir muy bien cuando realizamos tareas repetitivas de copiar código de aquí para allá. Mediante la opción Edit -> Clear podemos vaciar todo el historial de copias para comenzar de nuevo.

CODE LIBRARIAN

La librería de código nos permite almacenar y clasificar fragmentos de código que solemos utilizar muy a menudo y que queremos tener accesibles de una manera rápida. Al principio está completamente vacía:

Comenzamos creando una nueva carpeta pulsando el botón:

Y lo llamamos por ejemplo Trucos:

Ahora pulsamos el botón:


Y escribimos Abrir CD:

Y en la parte derecha de la ventana escribimos el truco para abrir la bandeja del CD:


También se pueden crear carpetas dentro de otras de tal modo que al final tengamos una buena jerarquía de trozos de código para resolver problemas en cualquier proyecto. El único inconveniente que le encuentro es que no permite exportar esta librería para pasársela a otros programadores.

CODE PROOFREADER

GExperts también incorpora un corrector de código fuente al estilo del que lleva Microsoft Word, de tal modo que nos equivocamos escribiendo un comando, que se encargue el corrector de corregirlo, acelerando así nuestra mecanografía. Para que funcione correctamente debemos suministrarle un diccionario de palabras erróneas y su palabra correcta equivalente.

Al ejecutarlo nos avisará que va a crear un diccionario en XML:


Entonces saldrá esta ventana:

Si pinchamos en la pestaña Autocorrect veremos las correcciones que vienen predefinidas:

Debemos activar la opción Enable Autocorrect para que tenga efecto. Si queremos crear las nuestras propias, pulsamos el botón + y vamos a crear una para la palabra reservada begin:

Entonces con solo escribir la palabra incorrecta en el editor de código y pulsar espacio, la reemplazará automáticamente sin interrumpirnos en la escritura de código. En la pestaña Dictionary tenemos un diccionario de palabras que debemos activar con la opción Enable dictionary replacement que convertirá a mayúsculas la primera letra de los comandos del diccionario:

De tal modo que nos dedicamos a escribir en minúsculas y ya se encargará el corrector de pasarlo a mayúsculas (menos los identificadores propios del proyecto).

En la pestaña Correction History tenemos los cambios que ha realizado automáticamente desde que activamos el diccionario. Así vemos en que nos hemos equivocado escribiendo (para corregir malas costumbres):


En el próximo artículo seguiremos viendo más opciones de este estupendo experto.

Pruebas realizadas en RAD Studio 2007.

05 febrero 2010

El experto Castalia (y 3)

Hoy terminaremos de ver las opciones más interesantes del experto Castalia, sobre todo en lo referente al apartado de refactorización.

ILUMINACIÓN DE APERTURA Y CIERRE DE PARÉNTESIS

Cuando tenemos varios paréntesis anidados se hace difícil saber si los hemos cerrado correctamente, por lo que Castalia ilumina los paréntesis cuando estamos encima del de apertura o cierre:


REFACTORIZACIÓN

La refactorización nos permite mejorar y optimizar el código después de haber sido escrito para que el programa haga lo mismo con menos líneas de código. Entre las tareas de refactorización encontramos las de:

Cambiar el nombre de una variable local. Si se nos ocurre hacer esto en una versión normal de Delphi debemos cambiar el nombre en su declaración dentro de la sección var y tantas veces como esté en el procedimiento o función (manualmente con Buscar/Reemplazar). Supongamos que en este procedimiento quiero cambiar el nombre de la variable S por S2:

Pues entonces selecciono la variable S ya sea en el apartado var o en cualquier línea de código y en el menú superior selecciono:

A continuación se seleccionarán en el código todas las apariciones de la variable S:

Ahora escribo S2 y cambiarán todas las líneas a la vez:


Pulsamos la tecla Intro y todo volverá a la normalidad.

Renombrar los parámetros de una función o un procedimiento. Funciona exactamente igual que en el caso anterior. Por ejemplo:

Nos situamos en el parámetro b y seleccionamos:

Escribimos el nuevo nombre y pulsamos Intro:


Renombrar una variable temporal por su expresión equivalente. Generalmente solemos crear variables temporales dentro de un procedimiento para realizar ciertos cálculos complejos que luego llevaremos a otro lugar. Por ejemplo:

Seleccionamos la variable temporal c y en el menú superior elegimos:

Eliminará esta variable y resolverá los cálculos directamente:


Duplicar una variable local seleccionada. A veces suele ocurrir que dentro de un procedimiento creamos la variable i para un bucle pero luego hacemos dos bucles y queremos utilizar otra variable para no mezclar las cosas:

Para no tener que subir y declarar otra variable, lo que hacemos es seleccionarla:

Y en el menú de Castalia elegimos:


Entonces declarará en la sección var un duplicado de la misma:

Solo tenemos que escribir su nuevo nombre y pulsar Intro.

Cambiar el nombre de un método. Para cambiar el nombre de un procedimiento o función que pertenecen a un objeto, solo tenemos que esta situados encima del nombre en la implementación:

Y seleccionamos la opción:

Cambiará también su nombre en la interfaz. El inconveniente que tiene es que no podemos hacerlo al revés (desde la interfaz).

Extraer un bloque de código a un nuevo método. Supongamos que tenemos el típico bucle para intercambiar dos variables de un array por el método de la burbuja:

Seleccionamos el núcleo del bucle:

Y seleccionamos la opción Castalia -> Refactoring -> Extract Method y nos montará todo el tinglado incluyendo los parámetros que necesita:


Agregar un parámetro a un procedimiento o función. Si ya tenemos un procedimiento con parámetros y tenemos que añadirle alguno más:

Seleccionamos Castalia -> Refactoring -> Add parameter y nos dejará la plantilla preparada:

En definitiva, podemos hacer lo mismo para renombar clases (Rename class) o moverlas a otra unidad (Move class). Creo que la opción más importante en refactorización es la de extraer bloques de código en nuevos procedimientos como hemos visto antes.

LA BARRA LATERAL

La barra lateral que está situada a la derecha del editor de código nos informará de los marcadores que hemos colocado y de las zonas donde está el cursor, como bien indica el ejemplo de su página web:


DESTACANDO LAS ESTRUCTURAS DE CONTROL

Por cada identación de código nos mostrará la alineación:


En este sentido, me gusta más la coloración que le da cnPack.

CONCLUSIONES

Se supone que tiene otras opciones como lo de la tecla Inicio que se vaya al principio de la línea o que compruebe la sintaxis automáticamente de color rojo, pero por las pruebas que he realizado, a veces funciona y otras veces no.

En resumen, no está mal como experto pero deja bastante que desear respecto a cnPack que además es gratuito. Más vale que se pongan las pilas porque no creo que vendan muchas licencias conforme está.

Pruebas realizadas en Delphi 7.

22 enero 2010

El experto Castalia (2)

Continuamos viendo las características originales de este experto que aumentará la productividad en Delphi.

LA PARTICIÓN DEL EDITOR DE CÓDIGO FUENTE

Castalia permite dividir el editor de código fuente para poder visualizar a la vez dos trozos de código de la misma unidad. Para ello seleccionamos en el menú superior Castalia -> Split Editor:


De este modo, podemos comparar dos trozos de código de la misma unidad o copiarlos. Toda modificación que se haga en una parte se reflejará inmediatamente en la otra, ya que al fin y al cabo, son la misma unidad. Si volvemos a seleccionar Castalia -> Split Editor volverá a una sola ventana de código.

EL MENÚ FAVORITOS

El menú favoritos permite memorizar grupos de proyectos, proyectos o unidades de modo que luego podamos consultarlas rápidamente:


Si por ejemplo memorizamos el proyecto actual, podemos elegir el nombre que queremos ponerle en el menú:

Si luego resulta que estamos situados en otro proyecto y abrimos el que hemos memorizado en favoritos, entonces cerrará automáticamente el proyecto actual y abrirá el seleccionado. Es como el menú Reopen de Delphi pero más elegante y además permite meter a favoritos todos los que queramos.

ARREGLAR SALTOS DE LÍNEA

Uno de los problemas que suelen darse en los editores de código fuente es que no colocan correctamente los caracteres de fin de línea (LF) y retorno de carro (CR) al final de todas las líneas, por lo que al exportar el texto a otro editor o a alguna página de Internet se producen auténticos desastres. También puede ocurrir al traemos de una página web un trozo de código para insertarlo en Delphi.

Para solucionar esto tenemos la opción Castalia -> Fix Line Breaks que coloca ambos caracteres en todas las líneas. Cuando yo exporto trozos de código a este blog, a veces se me montan unas líneas de código con otras que es un auténtico desastre. Sólo hay que seleccionar esa opción y guardar.

DESTACAR EL CONTROL DE FLUJO DEL PROGRAMA

Cuando insertemos en el editor de código comandos que provoquen un cambio brusco del flujo del programa se mostrará su símbolo a la izquierda del código:


DECLARACIÓN DE VARIABLES EN LÍNEA

Aquí si se han inventado un buen método para declarar variables rápidamente en un bloque de código sin tener subir a la zona var y luego volver abajo a seguir escribiendo código. Por ejemplo, la declaración de la variable i para un bucle:


La escribimos dentro del bloque de código al pulsar la tecla ESPACIO la declarará arriba automáticamente y abajo dejará la variable creada:

El algo realmente cómodo cuando estamos declarando variables en procedimientos con muchas líneas de código.

LA BARRA DE BÚSQUEDA FLOTANTE

Al pulsar la combinación de teclas CTRL + F (la búsqueda por defecto de Delphi) aparecerá una barra de búsqueda flotante encima del editor de código:

Con sólo comenzar a teclear saltará a la primera coincidencia encontrada:

Luego podemos ir pulsando los botones Find Next o Find Previous para saltar a la siguiente o la anterior palabra respectivamente. También sigue funcionando la búsqueda con F3. Al no ser una barra de búsqueda modal, podemos buscar y editar a la vez, al contrario del buscador de Delphi que lo bloquea todo.

MULTIPASTE

Otra característica muy interesante que incorpora este experto es la capacidad de pegar código dentro del editor permitiendo respetar un prefijo y un sufijo. Por ejemplo, supongamos que deseo copiar esta SQL de IBConsole:

Copiamos el código como siempre con CTRL + C del programa origen y cuanto estemos en el editor de código de Delphi, seleccionamos Castalia -> Multipaste en el menú superior. Saldrá esta ventana:

Y ahora añadimos arriba de prefijo y sufijo lo siguiente:


Al pulsar el botón Ok quedará esto en el código:

Para que fuera perfecto solo le habría faltado que pudiésemos guardar plantillas de prefijos y sufijos para poder reutilizarlos en sucesivas ocasiones.

COMENTARIOS CON UNA SOLA TECLA

Para comentar todo un bloque de código solo tenemos que seleccionarlo:

Y pulsar la tecla / del teclado numérico:

Si mantenemos el bloque seleccionado y pulsamos otra vez la misma tecla quitará los comentarios.

IDENTACIÓN CON UNA SOLA TECLA

En Castalia han añadido la posibilidad de identar código (mover un bloque de código dos espacios a la derecha) pulsando la tecla TABULADOR o SHIFT + TABULADOR (mover dos espacios a la izquierda) como en cnPack o en la versión 2010 de Delphi:


En el próximo artículo terminaré de comentar las características de este experto.

Pruebas realizadas en Delphi 7.

Publicidad