2016-06-08 38 views
7

Vorrei accedere alla cronologia di ciò che è stato digitato nel pannello sorgente in RStudio.Come accedere alla cronologia script/sorgente in RStudio?

Sono interessato al modo in cui apprendiamo e digitiamo il codice. Tre cose che vorrei analizzare sono: i) il modo in cui una persona digita il codice, ii) in che modo le persone diverse digitano il codice, iii) il modo in cui un principiante migliora la digitazione.

Afferrare la cronologia dei comandi è abbastanza soddisfacente come primo tentativo in questo modo, ma mi piacerebbe raggiungere una granularità più fine e quindi accedere alle successive modifiche, all'interno di una singola riga in un modo.

Quindi, per essere chiari, non sto cercando né il history of commands o per un diff tra diverse versioni di e il file .R.

Ciò a cui desidero accedere è in realtà le modifiche successive al pannello di origine che sono visibili quando si preme in modo ricorsivo Ctrl+Z. Non so se c'è una parola più precisa per quello che descrivo, ma di nuovo quello che mi interessa è come i bit di codice vengono aggiunti/spostati/eliminati/corretti/migliorati nel pannello sorgente ma non necessari passati alla Console e quindi assente dalla storia del comando.

Questo deve essere da qualche parte/in qualche modo salvato da RStudio in quanto è accessibile dal successivo. Questo può essere salvato in un modo abbastanza nascosto/privato/memoria/processo/... e ho un'idea molto vaga di come funziona una GUI. Non lo so se sarebbe facilmente accessibile, quindi analizzato in modo programmatico, in genere se potessimo salvare un file da esso. Timestamps sarebbe la ciliegina sulla torta ma sarei felice senza.

Avete idea di come accedere a questa storia?

+0

Non sono sicuro, cosa stai cercando esattamente. Ma se stai cercando la cronologia dei comandi digitati, allora in ** RStudio ** prova 2 cose: ** 1. ** tasto di scelta rapida 'Ctrl + 4' per mettere a fuoco la cronologia o' Ctrl + Shift + 4' per ingrandire finestra della storia. 'Ctrl + Atl + Maiusc + 0' ripristina la vista predefinita. ** 2. ** posizionare il cursore sulla console e spingere Freccia Su (▲, ↑) sulla tastiera diverse volte per trovare il comando digitato. È utile? – Vilmantas

+0

RStudio salva la cronologia dei comandi su '.Rhistory'. Puoi aprirlo con l'editor di testo. Ma molto probabilmente stai cercando qualcosa di più avanzato. – Vilmantas

+0

Grazie per il tuo interesse @ Vilmantas ma non è quello che sto cercando. Durante la programmazione in RStudio, se si preme 'Ctrl + Z', si vedono le cose successive aggiunte/spostate/cancellate (non necessarie passate alla Console - così assenti dalla cronologia del comando) nel pannello sorgente. Questo è quello che mi interessa. Inoltre, avrei bisogno di un modo per accedere a questa cronologia a livello di codice, ad esempio da un file o equivalente. –

risposta

4

Il pannello sorgente di RStudio è essenzialmente una vista di un Ace Editor. Pertanto, è necessario accedere alla editSession della sessione dell'editor e utilizzare getDocument o getWordRange insieme all'annullamento dell'istanza di undoManager di editSession.

Non penso che lo farai da all'interno di RStudio senza aver violato il codice RStudio a meno che RStudio Addin api non venga fatto per passare gli eventi di editor in futuro.

Potrebbe essere più semplice scrivere un registratore di sessione quando vengono apportate modifiche piuttosto che cercare di rovinare la cronologia degli annullamenti. Immagino che potresti scrivere un Addin che chiama un javascript per comunicare sulla porta RStudio esistente usando gli eventi dell'Ace Editor (ad esempio onChange).

+0

Non ho idea di come ottenerlo ma grazie un po 'per la luce nell'oscurità. –