2009-05-26 12 views
6

Ho creato un piccolo plug-in IDE utilizzando l'API Open Tools che accede a ClearCase. Ha voci di menu "Check In", "Check Out", ecc. Funziona OK ma voglio che controlli un file di sola lettura automaticamente se inizio a digitare nell'editor IDE o se tento di salvare il file. Pensi che sia possibile?Come rilevare se il file in IDE viene modificato utilizzando l'API Open Tools

Ho provato alcune cose ma alla fine ho rinunciato. IOTAEditorServices.KeyboardServices ha un metodo AddKeyboardBinding che sembrava promettente. Usandolo ho aggiunto un notificatore con btPartial (e successivamente provato btComplete) e il plug-in ha iniziato a rilevare alcune pressioni dei tasti di scelta rapida ma non tutti gli eventi della tastiera, lontano da esso ... Qualsiasi idea sarebbe molto apprezzata!

+0

Hai risolto il tuo problema? Mi piacerebbe vedere il tuo codice. Ho appena fatto una domanda simile: http://stackoverflow.com/questions/6670621/how-to-hook-a-method-to-the-edit-event-in-delphi-7-ide – neves

+0

@neves: Faresti meglio a concentrarti su [TOndrej] (http://stackoverflow.com/users/11480/tondrej) [risponditore] (http://stackoverflow.com/a/909485/744588) di seguito. Presumibilmente, 'user112365' non è più vivo e vegeto su SO. – menjaraz

risposta

1

Devo essere possibile in qualche modo: usiamo SourceConexion() qui, che esegue il checkout automatico del file prima di modificare l'origine o modificare il modulo.

JVC ha il supporto di integrazione IDE, è open source, forse hanno implementato anche questo: http://jedivcs.sourceforge.net/

7

Penso che un modo "pulito" è quello di collegare un IOTAEditorNotifier ad ogni editore e avere il vostro metodo di IOTAEditor.Modified chiamato dall'IDE ogni volta che il contenuto dell'editor viene modificato, sia tramite tastiera, mouse o programmaticamente da un altro plugin.

Here 's un esempio che registra un IOTAIDENotifier da notificare dei file che vengono aperti nell'IDE in modo che possa registrare le sue istanze IOTAEditorNotifier.

+0

Grazie mille. Sembra che questo dovrebbe funzionare. Farò un tentativo e ti faccio sapere più tardi, molto probabilmente venerdì. –

+0

@ user112365 Lo hai mai capito? Ho provato questo, ma il problema è che i file di sola lettura non possono essere modificati. Quindi lo IOTAEditor.Modified non viene mai attivato. – santiagoIT

+0

@santiagoIT Penso che sia possibile rimuovere il flag di sola lettura dal buffer di modifica anche se il file stesso è di sola lettura. –