¿Cómo evitar que el Editor de secuencias de comandos se desplace (y pierda la ubicación del cursor) en la compilación?

Tengo algunos archivos .scpt extensos. Por "largo", me refiero a recuentos de caracteres (excluyendo 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 el Editor de secuencias de comandos (p. ej., presionando ⌘ command+ S), el archivo casi siempre se desplazará mucho más abajo en el archivo. El resultado es que estoy muy lejos de la ubicación en la secuencia de comandos donde estaba editando, y mi cursor de texto se pierde. Si escribo algún texto inmediatamente después de guardarlo, el texto se coloca en la última línea del documento.

Por lo tanto, tengo que dedicar bastante tiempo a tratar de encontrar la línea o el área de código que estaba editando. Ahorro a menudo, por lo que esta vez suma significativamente.

Para empeorar las cosas, después de guardar, la barra de desplazamiento en el Editor de secuencias de comandos tiene errores y es 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 como resultado una experiencia de ahorro frustrante y que requiere mucho tiempo.

El único escenario en el que he visto desaparecer por completo estos dos problemas es cuando el guión es corto. Como en, lo suficientemente corto como para no poseer una barra de desplazamiento en absoluto.

Por lo general, no tengo muchos programas ejecutándose en mi computadora cuando uso Script Editor y nunca son aplicaciones exigentes. Por lo general, tengo un par de ventanas de Chrome, un par de ventanas de TextEdit, una ventana de Script Editor, y eso es todo. Mi máquina es una Retina MacBook Pro de principios de 2013 con 16 GB de RAM.

¿Es normal este comportamiento del Editor de secuencias de comandos? ¿Hay algo que pueda hacer para mitigarlo?

Sí, es un comportamiento normal en (Apple) Script Editor hasta OS X 10.11.6 y, como se menciona en la respuesta de wch1zpink, no está en macOS Sierra.

Respuestas (1)

Acabo de probar lo que explicaste con el editor de scripts en Sierra y no experimenté el mismo problema que estás experimentando. Puede que esta no sea la mejor solución a sus preguntas, pero definitivamente le ahorrará algo de tiempo. ¿Por qué no simplemente agregar un pequeño comentario en el lugar del script donde desea que se ubique el cursor después de guardar un archivo? Simplemente agregue algo como --cursory copie lo comentado --cursoren su portapapeles, luego de hacer ⌘ command+ S, luego continúe y haga clic en ⌘ command+ F(lo que abrirá el campo de búsqueda allí mismo en la ventana del editor de secuencias de comandos) y luego podría hacer clic en ⌘ command+ V(que pegaría automáticamente ese corto línea comentada en el campo de búsqueda) esto, por supuesto, resaltará ese texto en su secuencia de comandos y lo llevará directamente a su ubicación.


ACTUALIZACIÓN - NUEVO ENFOQUE DIFERENTE

Simplemente agregue este controlador en la parte inferior de cualquiera de sus archivos de secuencia de comandos. (Me gusta colocar mis controladores en la parte inferior de la secuencia de comandos para evitar que abarroten el resto del cuerpo de la secuencia de comandos)

Llamar al controlador en cualquier punto de su secuencia de comandos finalmente obtendrá las coordenadas de su barra de desplazamiento, luego guardará automáticamente la secuencia de comandos actual con el comando de código clave, luego devolverá su barra de desplazamiento a sus coordenadas originales. Simplemente comente o elimine el comentario de la llamada del controlador dependiendo de si desea guardar o no guardar su documento. Dejar la llamada del controlador como sin comentar Como lo tengo configurado ahora, guardará automáticamente su secuencia de comandos cada vez que haga clic en el botón "EJECUTAR" dentro del editor de secuencias de comandos.

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 AL MARGEN: Tengo el conjunto de retardo 5 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) puede ajustar el valor de retardo o comentalo si no lo necesitas.