El editor de Xailer está diseñado para hacer más rápido y más cómodo el trabajo rutinario con el código fuente y ofrece una numerosa lista de características avanzadas.
Se incluyen varias características que lo hacen un editor potente, versátil y sencillo de usar. Entre otras, se pueden destacar:
Entre las características visuales y
El editor de código determinar automáticamente el esquema de sintaxis para los lenguajes xBase, C/C++, archivos de recursos (RC), archivos de configuración (INI), archivos de proceso por lotes (BAT), archivos make (MAK y MK), archivos HTML/XML y DIFF.
La siguiente captura muestra el resaltado en un fuente que contiene sintaxis xBase y C.
Desde el menú Herramientas→Opciones del editor→Sintaxis es posible definir los colores, tipos, tamaños y efectos de letra que se deseen para personalizar el aspecto de las palabras reservadas, comentarios, números, operadores, etc.
El folding o plegado de código nos dá la posibilidad de ocultar y mostrar selectivamente secciones de código mientras lo editamos, nos ofrece más facilidad para manejar archivos grandes y nos permite tener una mejor visión del contenido, haciendo más fácil la concentración en una parte relevante del código mientras se trabaja.
Tenemos la posibilidad de activarlo/desactivarlo con la opción Herramientas→Opciones del editor→Apariencia.
Las marcas de edición en los márgenes son indicadores visuales de los últimos cambios realizados en el código fuente y permiten localizar rápidamente qué cambios se han hecho y si han sido guardados o no.
En la imagen de ejemplo se aprecian dos marcas de edición: la primera, en color verde, indica que se ha añadido la definición de un nuevo método y el cambio ya ha sido guardado y la segunda, en color rojo, indica que se ha añadido un nuevo método pero aún no se ha guardado.
Los bookmarks sirven para establecer marcas en puntos específicos del código y nos permiten movernos entre ellas rápidamente.
Con la opción del menú Edición→Marcas→Ver marcas, se pueden gestionar de un modo centralizado todas las marcas existentes en un proyecto: se puede navegar entre ellas, filtrarlas por módulo, eliminar una o todas, sin necesidad de tener que recorrer todos los archivos del proyecto.
Las abreviaturas o plantillas de código simplifican en gran medida la escritura del código ya que permiten insertar secciones de código con sólo pulsar un atajo de teclado.
En la imagen puede verse el resultado de una abreviatura definida como:
METHOD |() CLASS T<MODULE_SHORTNAME>
RETURN
Esta abreviatura está asociada al texto “me” y al pulsar CTRL+B, el editor automáticamente expande el texto, inserta el contenido de la abreviatura y coloca el cursor de edición en la posición indicada por el carácter pipe “|”.
En el menú Herramientas→Opciones del editor→Abreviaturas se pueden encontrar algunas abreviaturas predefinidas y hacer el mantenimiento de las mismas.
Las abreviaturas soportan macros que son reemplazadas por sus valores correspondientes en tiempo de ejecución.
Además de las macros se pueden utilizar macro-variables interactivas para obtener valores que luego se insertarán durante la expansión. Por ejemplo:
METHOD <%VAR:Nombre del método%>() CLASS T<MODULE_SHORTNAME>\n\n|\nRETURN Nil
Al hacer la expansión de la anterior abreviatura, el editor detecta que se está utilizando una macro-variable y automáticamente aparecerá un formulario solicitando el valor de <%VAR%>.
Suponiendo que se ha introducido “MiMetodo”, la expansión quedará de la siguiente manera:
METHOD MiMetodo() CLASS TClass RETURN Nil
El número de variables soportadas es de diez y su sintáxis es la siguiente:
<%VARn:texto opcional%>
“VARn” indica el número de variable (VAR0 hasta VAR9) y la cadena “texto opcional” define el texto (separado por el signo “:”) que se muestra al usuario durante la petición del valor de la variable.
También se soporta <%VAR%> como sinónimo de <%VAR0%>.
Las calltips son pequeñas ventanas que muestran los parámetros que recibe una función o procedimiento y sirven como guía de ayuda para introducir correctamente los argumentos.
Además de las funciones estándar de búsqueda y reemplazo, tanto con cadenas como con expresiones regulares, se tiene disponible un historial de búsquedas con el que es posible repetir varias veces una búsqueda sin tener que reescribirla una y otra vez.
Otra característica avanzada es el marcado de código, que permite marcar en color todas las ocurrencias de una cadena en el documento activo para una rápida localización visual.
Del mismo modo, para deshacer el marcado en la imagen anterior, sólo es necesario dejar en blanco el campo “Buscar” y pulsar el botón “Marcar todo”.
El editor resalta los paréntesis cuando el cursor está posicionado junto a uno de ellos y automáticamente resalta su par, de esta manera es fácil comprobar si una expresión es correcta.
Del mismo modo, cuando un paréntesis no tiene su par, el resaltado se hace en un color diferente, lo que permite localizar rápidamente errores de escritura.
El resaltado de paréntesis incluye los paréntesis (), llaves {}, corchetes [] y los paréntesis angulares <>.
Esta opción permite que el editor automáticamente inserte el paréntesis de cierre cada vez que se introduzca uno de apertura.
Así, en caso de introducir una sentencia como “MyFunction(”, el editor automáticamente le añadirá el paréntesis de cierre y colocará el cursor en medio de ambos.
El completado de paréntesis incluye los paréntesis (), llaves {}, corchetes [] y los paréntesis angulares <>.
Las pestañas del editor permiten la navegación entre los diferentes módulos que componen el proyecto de una manera sencilla.
El editor de código soporta la forma tradicional de selección de texto, tanto con el teclado (MAYUS+CURSOR) como con el ratón, y añade un modo extendido que soporta la selección de columnas de texto.
Para activar el modo de selección de columnas sólo hay que pulsar ALT mientras se selecciona el texto con el ratón.
En todo momento tenemos disponible un historial con todo lo que se ha copiado al portapapeles, de modo que podemos ver qué código ha sido copiado/cortado y también podemos recuperarlo para volver a utilizarlo si lo necesitamos.
La barra de estado muestra información sobre la línea y columna actual, el estado de inserción/sobreescritura y un topo de color verde o rojo que indica si el documento activo ha sufrido algún cambio desde la última vez que se ha guardado.
El editor permite seleccionar un amplio abanico de posibilidades que permite desde una sencilla impresión monocolor hasta una salida completamente WYSIWYG, respetando la configuración establecida en el resaltado de código, números de línea, etc.
Desde el menú Archivo se contemplan las opciones estándar de impresión, configuración de página y vista previa.
img
Aparte de las opciones comunes de impresión, también se pueden personalizar las unidades de medida, colores, ajuste de línea, encabezado y pie de página, numeración de líneas y marco de página con la opción Herramientas→Opciones del editor→Impresión.
img
Hay algunas opciones de configuración del editor de código que por ser poco usadas, poco dadas a sufrir cambios o están en fase de mejoras, aún no son accesibles desde el entorno y deben establecerse a través de entradas en el archivo de configuración Xailer.cfg
AskQuit=.T./.F.: Establece si se desea que el IDE pida confirmación antes de cerrarlo.
ViewWhiteSpace=0, 1: Muestra los espacios en blanco como invisibles o como puntos.
FoldPreprocessor=.T.: Activa/desactiva el folding para las directivas del preprocesador, por ejemplo en bloques #ifdef..#endif
FoldPragma=.T.: Activa/desactiva el folding para la directiva #pragma BEGINDUMP..ENDDUMP
FoldCpp=.T.: Activa/desactiva el folding para las llaves, {}, en los fuentes en C
FoldComment=.T.: Activa/desactiva el folding para los bloques de comentarios
FoldStyle=0, 1, 2, 3: Establece el tipo de marca visual para el folding
CompleteBraces=.F.: Activa/desactiva el autocompletado de paréntesis
Calltips=.T.: Activa/desactiva las calltips. En caso de estar desactivadas puede forzarse su aparición con Ctrl+Shift+Espacio