Come impedire a Script Editor di scorrere (e perdere la posizione del cursore) su Compile?

4

Ho alcuni file .scpt lunghi. Con "lunghi", sto parlando di conteggi di caratteri (spazi esclusi) di 200.000.

Uso Script Editor.app per creare e modificare AppleScripts (semplicemente perché Script Editor era già installato).

Se salvi un lungo file in Script Editor (ad es., premendo ⌘ comando + S ) il file scorrerà quasi sempre più in basso nel file. Il risultato è che sono molto distante dalla posizione nello script in cui stavo modificando e il mio cursore del testo è stato perso. Se scrivo del testo subito dopo il salvataggio, il testo viene posizionato sull'ultima riga del documento.

Quindi, devo dedicare un po 'di tempo a cercare la linea o l'area di codice che stavo modificando. Risparmio spesso, quindi questa volta si aggiunge in modo significativo.

Per peggiorare le cose, dopo aver salvato, la barra di scorrimento in Script Editor è piena di errori e irregolare per circa 30 secondi. Ciò rende lo scroll manuale in gran parte controproducente. A volte questo periodo irregolare dura fino a un minuto.

Combinati, questi due errori si traducono in un'esperienza di risparmio frustrante e dispendiosa in termini di tempo.

L'unico scenario in cui ho visto sparire completamente questi due problemi è quando lo script è breve. Come in, abbastanza breve da non possedere una barra di scorrimento di sorta.

Generalmente non ho molti programmi in esecuzione sul mio computer quando utilizzo Script Editor e non sono mai applicazioni che richiedono. Di solito ho un paio di finestre di Chrome, un paio di finestre TextEdit, una finestra di Script Editor e il gioco è fatto. La mia macchina è un MacBook Pro Retina di inizio 2013 con 16 GB di RAM.

Questo comportamento di Script Editor è normale? C'è qualcosa che posso fare per mitigarlo?

    
posta rubik's sphere 14.03.2017 - 04:24
fonte

1 risposta

2

Ho appena provato ciò che hai spiegato con l'editor di script in Sierra e non ho riscontrato lo stesso problema che stai riscontrando. Questa potrebbe non essere la soluzione migliore per le tue domande, ma ti farà sicuramente risparmiare un po 'di tempo. Perché non inserire un piccolo commento nel punto dello script in cui si desidera posizionare il cursore dopo il salvataggio di un file. Aggiungendo solo qualcosa come --cursor e copia quello commentato --cursor negli appunti, dopo aver fatto ⌘ comando + S , quindi vai avanti e fai clic su ⌘ comando + F (che aprirà il campo di ricerca proprio lì nella finestra dell'editor di script) quindi puoi fare clic su ⌘ comando + V (che incollerebbe automaticamente quella breve frase commentata nel campo di ricerca) questo ovviamente evidenzierà quel testo nel tuo script e ti porterà direttamente alla sua posizione.

UPDATE - NEW DIFFERENT APPROACH

Aggiungi questo gestore alla fine di uno qualsiasi dei tuoi file di script. (Mi piace mettere i miei gestori nella parte inferiore dello script per evitare che ingombrino il resto del corpo dello script)

Chiamando il gestore in qualsiasi punto del tuo script otterrai le coordinate della tua barra di scorrimento, quindi salverà automaticamente lo script corrente con il comando keycode, quindi la barra di scorrimento tornerà alle sue coordinate originali. Basta commentare o non commentare la chiamata del gestore a seconda se si desidera salvare o non salvare il documento. Lasciando la chiamata del gestore come non commentata  Come ho impostato ora, salverà automaticamente il tuo script ogni volta che fai clic sul pulsante "ESEGUI" all'interno dell'editor di 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()

LATO NOTA: Ho il ritardo impostato 5 che mi dà il tempo di giocare con la posizione di scorrimento dopo aver fatto clic su "Esegui" per vedere se funziona o meno (cosa che fa nell'ultima versione di Sierra) che è possibile regolare il valore di delay o commentalo se non ne hai bisogno.

    
risposta data 14.03.2017 - 06:12
fonte

Leggi altre domande sui tag