Ir al contenido principal

Minor tip: expansión de código

Estaba jugando con la Rocha y encontré un diálogo de esos que nunca uso que son las "opciones", eso donde podes configurar el tamaño del tab (cuantos caracteres se mueve el cursor cuando apretás tab, más o menos sería eso).

También podés definir cada cuanto milisegundos titilan los dos puntitos de tu reloj digital y cosas así super útiles :)

Alguien decía que esas opciones (o similares) son las dudas que el programador trasmite a sus usuarios (o algo así).

No importa, en este caso encontré una que me pareció por lo menos divertida y talvez útil.



En realidad la había visto en la demo que hizo Milano con Nicolás en el evento 2006 si no estoy mal. Claro en ese momento la Rocha andaba en ESA máquina y no mucho más, hoy anda en MI máquina así que mejor que mejor.

¿Cuál es?

Tools/Options y aparece:

autorep.png

Lo que hago es definir un "mapping" de sustitución en los editores, fácil de entender.
En el ejemplo built-in: si alguien escribe "foreach" cuando da separador (espacio, tab, etc) se sustituye por "for each".

Nada muy innovador, pero está divertido por lo menos.

¿Para qué puede ser útil?
No lo se, yo por ahora me defini algunos como:
[GC] - //guscarr says:
[TI] - //feature to be improved

editprop.png

Seguro a otros se le ocurrirán otros usos, capaz combinado con el Search, con las categorías, etc.

Ojo, no confundir con los snippets que están mucho más polenta y que también tienen su "expansor", por ejemplo FEUW lo pasa a:

For each using /*Data Selector*/
    where /*Conditions*//*For each Code*/
Endfor

Comentarios

Entradas más populares de este blog

Abrir links con aplicaciones nativas y no el browser (deeplinking)

El problema que tengo con algunas aplicaciones Android/iOS es que cuando recibo un link por algún medio (mail, tweet, etc) al abrirlo me lo abre con el browser, en lugar de abrirlo con una aplicación nativa asociada a ese “contenido”. Por ejemplo, si recibo un link a un tweet espero que lo abra con alguna aplicación de twitter que tenga instalada y no con el browser. De modo análogo si recibo un mail con una nota de prensa de un medio X y tengo la aplicación de ese medio X instalada, espero que el link lo abra con la aplicación nativa y no con el browser. Lo mismo quisiera con mi aplicación de "banking" o cualquiera que tenga instalada y sepa manejar ese "contenido" (link). Los motivos son bastante obvios pero los resumo en: la experiencia de usuario es mucho mejor en la aplicación nativa que en el navegador. Parte importante del tema es que el mismo link sea válido tanto para ver el contenido en el browser como para verlo en la aplicación, porque como prove

¡A la salud de mi KB!

Es bueno, especialmente en "bases de conocimiento" (KB) que han pasado por varias versiones de Genexus, chequear su "estado de salud". En este sentido KBDoctor  es una herramienta que ayuda mucho, principalmente desde el punto de vista del "modelo" Genexus (atributos, calls, definiciones de variables, etc) representado en una KB. También es útil revisar la salud de los archivos que lo soportan. Hasta la 9.0 eran archivos C-tree (los famosos .DAT) que tenían indices (los famosos .IDX) y teníamos en "rebuild -y" que mejoraba esos archivos y sobre todo reconstruía los indices. A partir de la X las KBs se almacenan en MS SQL Server por lo cual la administración de la misma pasó de ser un "file server" a un "database server". En este sentido algo que me ha dado muy buenos resultados es el "CheckKnowledgeBase".

Rocha:Constantes tipo fecha

En la Rocha se soportan constantes del tipo fecha o fecha-hora con formato ANSI/ISO (AAAA-MM-DD HH:MM:SS).  Tecnicamente (Sintáxis): <date>::=    [0-9]{1,4}"/"[0-9]{1,2}"/"[0-9]{1,2} | [0-9]{1,4}"."[0-9]{1,2}"."[0-9]{1,2} | [0-9]{1,4}"-"[0-9]{1,2}"-"[0-9]{1,2} <hms>::=    [0-9]{1,2}[ap] | [0-9]{1,2}":"[0-9]{1,2}[ap]? | [0-9]{1,2}":"[0-9]{1,2}":"[0-9]{1,2}[ap]? <constant> ::=   "#"<date>"#" | "#"<date> <hms>"#" | "#"<hms>"#" Funcionalmente Se pueden utilizar esas constantes en las reglas, eventos, propiedades, etc (todo lugar donde se utilice el parser): Algunos ejemplos básicos: &FechaInicial=#2007-01-01# &FechaHoraInicial=#07-1-1 11:15a# &HoraInicial=#11a# Me parece bueno no tener que escribir funciones (CTOD, TTOC) sobre constantes tipo char para lograr una fecha y mucho mejor aun en