3 votos

¿Cómo evitar que el editor de script se desplace (y pierda la ubicación del cursor) al compilar?

Tengo algunos archivos .scpt muy largos. Cuando digo "largos", me refiero a un número de caracteres (excluyendo los espacios) de 200.000.

Uso script Editor.app para crear y editar AppleScripts (simplemente porque script Editor ya estaba instalado).

Si guardo un archivo largo en script Editor (por ejemplo, pulsando command + S ) el archivo se desplazará casi siempre mucho más abajo en el archivo. El resultado es que estoy muy lejos de la ubicación en el script donde estaba editando, y mi cursor de texto se pierde. Si escribo algún texto inmediatamente después de guardar, el texto se coloca en la última línea del documento.

Así que tengo que pasar un buen rato intentando encontrar la línea o área de código que estaba editando. Guardo a menudo, por lo que este tiempo se acumula significativamente.

Para empeorar las cosas, después de guardar, la barra de desplazamiento en script Editor es buggy y errática durante unos 30 segundos. Esto hace que el desplazamiento manual sea en gran medida contraproducente. A veces este período errático es de hasta un minuto.

Combinados, estos dos errores dan lugar a una experiencia de ahorro frustrante y que requiere mucho tiempo.

El único escenario en el que he visto desaparecer completamente estos dos problemas es cuando el script es corto. Es decir, lo suficientemente corto como para no tener una barra de desplazamiento.

Generalmente no tengo muchos programas ejecutándose en mi ordenador cuando estoy usando script Editor y nunca son aplicaciones que sean exigentes. Suelo tener un par de ventanas de Chrome, un par de ventanas de TextEdit, una ventana de script Editor, y ya está. Mi máquina es un Early 2013 Retina MacBook Pro con 16 GB de RAM.

¿Es normal este comportamiento del editor script? ¿Hay algo que pueda hacer para mitigarlo?

0 votos

Sí, es un comportamiento normal en (Apple)script Editor a través de OS X 10.11.6 y como se menciona en la respuesta de wch1zpink no lo es en MacOS Sierra.

1voto

wch1zpink Puntos 11

Acabo de probar lo que has explicado con el editor script en Sierra y no he experimentado el mismo problema que tú. Puede que no sea la mejor solución a tus preguntas pero seguro que te ahorra tiempo. Por qué no simplemente tirar en un pequeño comentario en el lugar en el script donde usted quiere que su cursor situado después de un archivo de guardar. Simplemente añadiendo algo como --cursor y copiar lo comentado --cursor a su portapapeles y después de hacer command + S y a continuación haga clic en command + F (que abrirá el campo de búsqueda en la ventana del editor de script) y luego puede hacer clic en command + V (que pegaría automáticamente esa corta línea comentada en el campo de búsqueda) esto, por supuesto, resaltará ese texto en su script y le llevará directamente a su ubicación.


ACTUALIZACIÓN - NUEVO ENFOQUE DIFERENTE

Sólo tienes que añadir este manejador al final de cualquiera de tus archivos script. (Me gusta poner mis manejadores al final del script para evitar que abarroten el resto del cuerpo del script)

Llamar al manejador en cualquier punto de su script obtendrá en última instancia las coordenadas de su barra de desplazamiento, luego guardará automáticamente el script actual con el comando keycode , luego devolverá su barra de desplazamiento a sus coordenadas originales. Simplemente comente o descomente la llamada del manejador dependiendo de si quiere guardar o no guardar su documento. Dejando la llamada del manejador sin comentar Tal y como lo tengo configurado ahora, guardará automáticamente su script cada vez que pulse el botón "RUN" dentro del editor script.

on setScrollPosition()
    tell application (path to frontmost application as text) to (path to me as text)
    set theFile to result
    set theFile2 to alias theFile
    tell application "Finder"
        set theName to name of theFile2
    end tell
    delay 1
    tell application "System Events"
        get value of value indicator 1 of scroll bar 1 of scroll area 1 of splitter group 1 of splitter group 1 of window theName of application process "Script Editor"
        set thePosition to the result
        key code 1 using command down
        delay 10
        set value of value indicator 1 of scroll bar 1 of scroll area 1 of splitter group 1 of splitter group 1 of window theName of application process "Script Editor" to thePosition
    end tell
end setScrollPosition

setScrollPosition()

NOTA ALGUNA: Yo tengo el retraso fijado en 5, lo que me da tiempo para jugar con la posición de desplazamiento después de hacer clic en "Ejecutar" para ver si realmente funciona o no (lo que hace en la última versión de Sierra) puedes ajustar el valor del retraso o comentarlo si no lo necesitas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X