A continuación puedes leer sobre las mejoras introducidas en el IDE de Xojo a partir de la verisón 2019r2. Este artículo es una traducción al Español de la entrada original publicada por Greg O’Lone en el Blog de Xojo.
Mantener el uso del IDE sencillo para los usuarios recién llegados es uno de nuestros principios fundamentales, pero eso no significa que no podamos añadir muchas de las capacidades que necesitan los usuarios más avanzados. En este ciclo hemos añadido algunas capacidades realmente emocionantes para gestionar proyectos de medio y gran tamaño, y también hemos realizado algunas mejoras generales para que el uso del IDE de Xojo resulte aun más satisfactorio. Para ser honesto, cuantas más capacidaes de este tipo añadimos menos quiero volver a utilizar las anteriores versiones del IDE…
Velocidad General Mejorada
Una de las áreas más evidentes que dificultaba a las personas a cargo de proyectos de gran tamaño es la velocidad del IDE en sí mismo. Paul y yo hemos trabajado en una serie de puntos que hacían que la experiencia con el IDE en general resultase menos que deseable. En concreto, nos hemos centrado en cosas que por sí mismas no estaban demasiado mal, pero que en un efecto acumulativo podían significar mucho en tu día a día
Una de dichas áreas era el guardado de los proyectos de texto. Puede que pienses que no había mucho espacio para la mejora en esto, dado que se trata de una simple E/S de archivos, ¿cierto? Hemos comprobado un punto de optimización en el modo en el que guardamos los Marcadores (Bookmarks) y los Puntos de Parada (Breakpoints), lo que en el proyecto del IDE representa un gran ahorro cuando se realizan una buena cantidad de cambios. En nuestro caso hemos pasado desde los 30 segundos a tan solo 1, y para alguien que tenga el hábito de guardar antes de cada ejecución esto supone una gran diferencia.
También hemos optimizado el dibujado en el Navegador, y dicho cambio ha resultado en un aumento significativo de la velocidad en general en varias partes del IDE, desde la selección de una buena cantidad de elementos en el Navegador propiamente dicho, a la realización de cambios sobre múltiples elementos, o simplemente a la hora de escribir código en el Editor de Código.
Gestión de Pestañas Mejorado
Las pestañas tenían un comportamiento errático en un modo u otro durante una buena cantidad de tiempo. Finalmente han tenido su decicación en este ciclo, y pensamos que ahora estarás mucho más contento con el modo en el que funcionan. Hemos reescrito la lógica que intervenía en el modo en el que se escogían los tabuladores cuando se realizaba una acción que resultaba en una nueva petición de ubicación, y hemos hecho que el comportamiento sea consistente, con independencia de la procedencia de la solicitud; tanto si es una petición del tipo Go To Location
, una búsqueda o como resultado de hacer clic sobre el resultado de un error. Las reglas se aplican en el siguiente orden:
- Si existe por lo menos una pestaña bloqueada que coincida con el destino de
Go To
, entonces se utilizará la primera (de izquierda a derecha). - Si existe por lo menos una pestaña desbloqueada que coincida con el destino de
Go To
, entonces se sustituirá la primera encontrada. - Si la pestaña actual está desbloqueda será sustituida por la nueva ubicación.
- Si hay pestañas desbloqueadas, se sustituirá la primera encontrada.
- Si no se cumple ninguna de las anteriores condiciones, entonces se creará una nueva pestaña para la ubicación del destino.
NOTA: Nunca se tienen en cuenta las Pestañas del Depurador como un destino de Go To
. Esto puede parecer algo obvio, pero no siempre ha sido así anteriormente. Ahora sí. Las pestañas del Depurador también están bloqueadas por defecto y no pueden desbloquearse.
La única excepción a estas reglas son las reglas de Open In New Tab
. Es decir, si haces clic con el botón derecho sobre un elemento y seleccionas la opción Open In New Tab
o haces doble clic sobre un item con el ajuste de preferencias “Double-click opens item in new tab” definido, entonces abrirán una nueva pestaña como resultado.
Una vez que empieces a utilizar la nueva lógica, creo que estarás de acuerdo en que resulta mucho más intuitivo y no te sentirás como que el IDE está cambiando continuamente los contextos por ti. Personalmente encuentro que estoy utilizando menos pestañas que en anteriores versiones dado que tengo más confianza en que los objetos que he abierto aun estarán ahí cuando vuelva a ellos.
Conmutador de Modo Oscuro para macOS en el Editor de Plantillas
En macOS 10.14 y posteriores hemos añadido un nuevo botón de la barra de herramientas que te permite conmutar rápidamente la Ventana que estás editando entre los modos Claro y Oscuro. No es preciso cambiar por completo la versión de macOS que estés utilizando simplemente para ver el aspecto que tendrá el diseño en un modo u otro.
Menú Contextual del Navegador
Hemos realizado algo de trabajo de limpieza en este apartado para hacer que resulte aun más obvio lo que puedes y lo que no puedes hacer con los objetos en el Navegador. Desaparecen todo los elementos desactivados que no se aplicaban al “contexto” para el elemento seleccionado dado que, bueno, no estaban “en contexto”. también hemos mejorado los menús Edit Superclass
y Edit Subclass
. La opción Edit Superclass
muestra ahora toda la jerarquía de la clase superior, incluyendo cosas que no puedes editar (desactivadas, por supuesto) de modo que puedas seguir la herencia común. El menú Edit Subclass
se ha ordenado alfabéticamente de modo que no tengas que leer todo el listado sólo para encontrar todos los ítems que empiezan con “c”.
Menú Contextual del Editor de Código
Este menú también ha recibido atención y cuidado. En primer lugar, el menú se ha reorganizado para que los grupos de menú estén basados en el contexto actual de aquello sobre lo que hayas hecho clic y el objeto en el que reside el código propiamente dicho.
Grupo 1
Como en anteriores versiones del IDE, las opciones Cut, Copy, Paste, Delete y Select All aún se encuentran en la parte superior del menú. Son opciones comunes para los usuarios que utilizan el ratón y no queríamos perjudicar dicha funcionalidad.
Grupo 2
El siguiente grupo es para cosas dirigidas a acceder o modificar el objeto que esté editando. Aquí es donde encontrarás el menú Switch To
para acceder directamente a los otros elementos de código pertenecientes al elemento actual.
También hemos añadido dos nuevos submenús a esta sección y que son específicos para copiar las signaturas del evento y del delegado correspondientes a aquello sobre lo que hayas hecho clic. Por ejemplo, si tu código se refiere a un obnjeto URLConnection, ahora puedes hacer clic con el botón derecho sobre URLConnection y seleccionar Add Method > From Event > ContentReceived
y el IDE añadirá automáticamente un método en el objeto actual con la misma signatura incluyendo el objeto en sí mismo para su uso con AddHandler
. En este caso, terminarás con un método que tendrá un aspecto como este:
URLConnection_ContentReceived(obj As URLConnection, URL As String, HTTPStatus As Integer, content As String)
Entonces puedes escribir algo como:
AddHandler h.ContentReceived, AddressOf URLConnectionContentReceived
Los Delegados funcionan del mismo modo, aunque sin incluir la referencia al objeto en la signatura del método. ¡Ya no serán necesarias más idas y venidas entre tu código actual y el objeto de destino o la Referencia del Lenguaje para copiar las signaturas!
Grupo 3
Si existe, este grupo es para cosas que son específicas para el objeto o instancia del objeto sobre el que hayas hecho clic en el Editor de Código. Aquí es donde podrás ver los elementos de menú Find
y Go To
para encontrar otros usos de o para ir a la definición de un item, respectivamente.
Grupo 4
Este grupo es para herramientas de selección y específicas de código, incluyendo el comando Insert Color
, y los menús Standardize Format
y Wrap In
, de modo que puedas envolver la actual selección de código en un bloque #If…EndIf
o While/Wend
. Esta sección también incluye el menú para convertir la actual selección en una Constante o Método.
Grupo 5
Aquí puedes conmutar los Puntos de Parada y Marcadores.
Grupo 6
Acceso a la Ayuda y la Referencia del Lenguaje.