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:




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:



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:



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:



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

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:


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:



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:


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.