2009-05-26 12 views
6

Zrobiłem małą wtyczkę IDE za pomocą Open Tools API, która uzyskuje dostęp do ClearCase. Ma pozycje menu "Check In", "Check Out" itd. Działa poprawnie, ale chcę, aby automatycznie pobierał plik tylko do odczytu, jeśli zacznę pisać w edytorze IDE lub jeśli spróbuję zapisać plik. Czy myślisz, że to możliwe?Jak wykryć, czy plik w IDE jest edytowany za pomocą Open Tools API

Próbowałem kilku rzeczy, ale ostatecznie się poddałem. IOTAEditorServices.KeyboardServices ma metodę AddKeyboardBinding, która wyglądała obiecująco. Używając go, dodałem zgłaszającego z opcją typu btPartial (i później wypróbowałem btComplete), a wtyczka zaczęła wykrywać niektóre klawisze skrótów, ale nie wszystkie zdarzenia na klawiaturze, z dala od tego ... Wszelkie pomysły byłyby mile widziane!

+0

Czy rozwiązałeś swój problem? Chciałbym zobaczyć twój kod. Właśnie zadałem podobne pytanie: http://stackoverflow.com/questions/6670621/how-to-hook-a-method-to-the-edit-event-in-delphi-7ideide – neves

+0

@neves: Lepiej skup się na [TO_rerej] (http://stackoverflow.com/users/11480/tondrej) na [answerser] (http://stackoverflow.com/a/909485/744588) poniżej. Przypuszczalnie "user112365' nie jest już bardziej żywy i zaczyna działać. – menjaraz

Odpowiedz

7

Myślę, że „czystszy” sposób to podłączyć do IOTAEditorNotifier do każdego edytora i mieć swój sposób IOTAEditor.Modified nazywa przez IDE za każdym razem, gdy zawartość edytora jest modyfikowana, za pomocą klawiatury, myszy lub programowo z innej wtyczki.

Here to przykład, który rejestruje, że IOTAIDENotifier jest powiadamiany o plikach otwieranych w IDE, aby mógł zarejestrować swoje instancje IOTAEditorNotifier.

+0

Wielkie dzięki. Wygląda na to, że to powinno działać. Spróbuję i dam ci znać później, najprawdopodobniej w piątek. –

+0

@ user112365 Czy kiedykolwiek to wymyśliłeś? Próbowałem tego, ale problem polega na tym, że plików tylko do odczytu nie można modyfikować. Dlatego IOTAEditor.Modified nigdy nie jest uruchamiany. – santiagoIT

+0

@santiagoIT Myślę, że możesz usunąć flagę tylko do odczytu z bufora edycji, nawet jeśli sam plik jest tylko do odczytu. –