1.5.5  Expansión de Comandos

Esta utilidad está diseñada para agilizar la autoría de los ficheros de escenas de POV-Ray al permitirle que inserte rápidamente cualquiera de los comandos típicos tecleando parte de la palabra y presionando TAB (siempre y cuando tenga activada la opción "Overlay Keyword Expansion On Tab Key"1 en el Menú Editor).

Si está habilitada esta opción, la tecla tab sirve de dos maneras: en primer lugar invocará a la expansión de código, y en segundo lugar, si parece que no se desea la expansión de código en la posición actual de edición, actuará como una tecla tab normal (insertando tabulaciones o espacios tal y como esté definido en la configuración de su editor).

1.5.5.1  Un Rápido Ejemplo

Antes de meterse en la siguiente explicación, le sugerimos que lo pruebe por sí mismo. Primero, asegurese de que está activado "Overlay Keyword Expansion On Tab Key" (que es la opción por defecto, así que a menos que la haya desactivado debería estar activa).

Ahora, abra un nuevo archivo en el editor si no tiene uno abierto ya, y coloque el cursor de edición en una línea en blanco y teclee las letras "am", presionando seguidamente TAB. La palabra "ambient" debería aparecer ahora donde antes tenía "am". Ahora presiónela de nuevo y verá transformarse la palabra "ambient" en "ambient_light". Ahora presione MAYUS+TAB (mayus y tab a la vez) y verá que vuelve a "ambient", y, si presiona de nuevo, vuelve al texto "am".

1.5.5.2  Cómo Funciona la Expansión de Comandos

Cuando ud. presiona TAB, el editor mira primero los caracteres de la izquierda y derecha de la posición actual del cursor de edición. Si hay un espacio en blanco a la izquierda del cursor, o no hay espacio en blanco a la derecha del cursor entonces no se ejecuta la expasión de comandos y la tecla TAB fuciona normalmente. Nótese que para el propósito de esta comprobación, el principio de línea no se considera espacio en blanco, pero sí el fin de línea.

Para pasar la prueba anterior, por tanto, el cursor debe estar al final de una palabra que contenga un caracter, sequido por un espacio, tab, o fin de línea. El editor entonces, cogerá esta palabra de la línea y la comparará (distinguiendo mayúsculas de minúsculas) con la lista interna que tiene de todos los comandos conocidos de un fichero de escena de POV-Ray.

Si la comparación anterior produce una coincidencia perfecta (es decir, la palabra de la izquierda del cursor es exactamente la misma que un comando), entonces no hay expansión de comandos y la tecla tab funciona normalmente.

Si la prueba anterior falla (es decir, no hay coincidencia perfecta), entonces se efectúa una comparación parcial. Si la palabra de la izquierda del cursor no coincide, aunque sea parcialmente, con ninguna de las palabras de la lista de comandos, entonces no hay expansión de comandos y la tecla tab funciona normalmente.

Si se pasa la prueba anterior, la palabra de la izquierda del cursor debe ser un comando parcial (por ejemeplo, "pigm" se considera un comando parcial ya que el editor sabe que "pigment" es un comando). Dado este hecho, el editor extrae de la lista todos los comandos que coinciden con el comando parcial (en el ejemplo anterior, "pigment", "pigment_map", y "pigment_pattern" contienen todas el prefijo "pigm" y como tales se incluirán en la lista).

El editor almacena esta lista en memoria y luego completa el comando parcial con el primero (alfabéticamente) de la lista que guardó (en el ejemplo anterior, sería "pigment"). Cuando esto ocurre, el editor está en el modo "expansión de comandos". El editor permanece en este modo hasta que mueva la posición de edición o haga algún cambio al texto por otra vía que no sea la expansión TAB y MAYUS+TAB.

Al presionar TAB otra vez aparecerá el siguiente comando almacenado en la lista de posibles coincidencias, reemplazando al primero, y así sucesivamente. Si llega al fin de la lista, al presionar TAB la barra de título de POV-Ray para Windows parpadeará. Ésto es una indicación visual de que no hay más comandos en la dirección de avance.

Presionando MAYUS+TAB provoca que aparezca el comando previo, y si está usted en el primer comando de la lista, ello provocará que se restablezca el texto original que tecleó. Si está en la palabra original y presiona MAYUS+TAB, la barra de título parpadeará para indicar que no puede retroceder más.

Aunque todo esto suene complejo en teoría, en la práctica tiene un uso muy directo y natural, y una vez que se acostumbre probablemente no quiera volver a hacer las cosas a la antigua.

La ventaja de la expansión de comandos se aclara si mira el siguiente ejemplo: suponga que quiere introducir el comando "smooth_color_triangle". Desde luego, puede teclear el comando entero (un total de veintiuna pulsaciones). O, usando la expansión de comandos, puede introducirlo usando sólo cuatro teclas al teclear "sm" y luego TAB y TAB otra vez. El primer tab lo expande a "smooth" y el segundo tab lo expande hasta "smooth_color_triangle".

Sugerencia: si usa la expansión de comandos y accidentalmente expande una palabra que no quería, si todavía no ha salido del modo de expansión de comandos, la mejor forma de recuperarla es usar MAYUS+TAB para volver atrás. Es muy fácil darle a la tecla "Deshacer" por inercia. Aunque funcione, no siempre recupera la posición del cursor. Al usar MAYUS+TAB también mueve el cursor de edición de vuelta a su posición inicial mientras reestablece la palabra inicial.

(1) Superponer la Expansión de comandos a la tecla Tab (N. d. T)