2009-05-26 12 views
6

Hice un pequeño complemento IDE usando Open Tools API que accede a ClearCase. Tiene elementos de menú "Check In", "Check Out", etc. Funciona bien, pero quiero que revise automáticamente un archivo de solo lectura si comienzo a escribir en el editor IDE o si intento guardar el archivo. ¿Crees que esto es posible?Cómo detectar si el archivo en IDE se está editando usando la API de Herramientas abiertas

Probé algunas cosas pero finalmente me rendí. IOTAEditorServices.KeyboardServices tiene el método AddKeyboardBinding que parecía prometedor. Al usarlo agregué un notificador con el tipo de enlace btPartial (y luego intenté con btComplete) y el complemento comenzó a detectar algunas pulsaciones de tecla de método abreviado pero no todos los eventos de teclado, ni mucho menos ... ¡Cualquier idea sería muy apreciada!

+0

¿Has resuelto tu problema? Me encantaría ver tu código. Acabo de hacer una pregunta similar: http://stackoverflow.com/questions/6670621/how-to-hook-a-method-to-the-edit-event-in-delphi-7-ide – neves

+0

@neves: Es mejor que se enfoque en [TOndrej] (http://stackoverflow.com/users/11480/tondrej) 's [answser] (http://stackoverflow.com/a/909485/744588) a continuación. Presumiblemente, 'user112365' ya no está vivo y pateando SO. – menjaraz

Respuesta

1

Debo ser posible de alguna manera: utilizamos SourceConexion (http://www.epocalipse.com/scx.htm) aquí, que comprueba automáticamente el archivo antes de editar la fuente o cambiar el formulario.

JVCs tiene soporte de integración IDE, es de código abierto, tal vez se han implementado esto también: http://jedivcs.sourceforge.net/

7

creo que una manera "más limpia" es para conectar un IOTAEditorNotifier a cada editor y tener su método IOTAEditor.Modified llama por el IDE siempre que se modifique el contenido del editor, ya sea por teclado, mouse o programáticamente desde otro complemento.

Here es un ejemplo que registra un IOTAIDENotifier para ser notificado de los archivos que se abren en el IDE para que pueda registrar sus instancias IOTAEditorNotifier.

+0

Muchas gracias. Parece que esto debería funcionar. Lo probaré y te lo haré saber más tarde, muy probablemente el viernes. –

+0

@ user112365 ¿Alguna vez resolvió esto? Intenté esto, pero el problema es que los archivos de solo lectura no se pueden modificar. Entonces el IOTAEditor.Modified nunca se activa. – santiagoIT

+0

@santiagoIT Creo que puede eliminar el indicador de solo lectura del buffer de edición incluso si el archivo es de solo lectura. –

Cuestiones relacionadas