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

4

Tengo algunos archivos .scpt largos. Por "largo", estoy hablando de conteos 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 Script Editor (por ejemplo, al presionar ⌘ command + S ), el archivo casi siempre se desplazará mucho más abajo en el archivo. El resultado es que estoy muy alejado de la ubicación en el script donde estaba editando, y mi cursor de texto se ha perdido. Si escribo un texto inmediatamente después de guardarlo, el texto se coloca en la última línea del documento.

Por lo tanto, tengo que pasar un poco de tiempo decente tratando de encontrar la línea o área de código que estaba editando. Ahorro a menudo, por lo que esta vez se acumula 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 parte contraproducente. A veces, este período errático es de hasta un minuto.

Combinados, estos dos errores resultan en una experiencia de ahorro frustrante y lenta.

El único escenario en el que he visto desaparecer completamente estos dos problemas es cuando el script 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?

    
pregunta rubik's sphere 14.03.2017 - 04:24

1 respuesta

2

Acabo de intentar 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 para sus preguntas, pero definitivamente le ahorrará algo de tiempo. ¿Por qué no incluir un pequeño comentario en el lugar del script donde desea ubicar el cursor después de guardar un archivo? Simplemente agregue algo como --cursor y copie el comentario de --cursor en su portapapeles y luego, después de ejecutar ⌘ command + S , siga adelante y haga clic en + F (que abrirá el campo de búsqueda allí mismo en la ventana del editor de secuencias de comandos) luego puede hacer clic en ⌘ comando + V (que pegaría automáticamente esa breve línea comentada en el campo de búsqueda), por supuesto, esto resaltará ese texto en su script y lo llevará directamente a su ubicación.

ACTUALIZACIÓN: NUEVO ENFOQUE DIFERENTE

Simplemente agregue este controlador al final de cualquiera de sus archivos de secuencia de comandos (me gusta poner mis controladores en la parte inferior de la secuencia de comandos para evitar que abarroten el resto del cuerpo de la secuencia de comandos)

Al 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, y luego la barra de desplazamiento volverá a sus coordenadas originales. Simplemente comente o no comente la llamada del controlador, dependiendo de si desea guardar o no su documento. Dejando la llamada del manejador como se comenta.  Como lo tengo configurado ahora, Will 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 LATERAL: 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 ocurre en la última versión de Sierra) que puedes ajustar el valor de retraso o coméntelo si no lo necesita.

    
respondido por el wch1zpink 14.03.2017 - 06:12

Lea otras preguntas en las etiquetas