Как определить, что файл в IDE редактируется с помощью Open Tools API - PullRequest
6 голосов
/ 26 мая 2009

Я сделал небольшой плагин IDE, используя Open Tools API, который обращается к ClearCase. В нем есть пункты меню «Check In», «Check Out» и т. Д. Он работает нормально, но я хочу, чтобы он автоматически извлекал файл, доступный только для чтения, если я начну печатать в редакторе IDE или попытаюсь сохранить файл. Как вы думаете, это возможно?

Я попробовал несколько вещей, но в конце концов сдался. IOTAEditorServices.KeyboardServices имеет метод AddKeyboardBinding, который выглядел многообещающим. Используя его, я добавил средство уведомления с типом привязки btPartial (а затем попробовал btComplete), и плагин начал обнаруживать некоторые нажатия клавиш, но не все события клавиатуры, далеко не так ... Любые идеи будут высоко оценены!

Ответы [ 2 ]

8 голосов
/ 26 мая 2009

Я думаю, что "более чистый" способ - подключить IOTAEditorNotifier к каждому редактору и вызывать свой метод IOTAEditor.Modified в IDE при каждом изменении содержимого редактора, будь то клавиатура, мышь или программно из другого плагин.

Здесь - это пример, который регистрирует IOTAIDENotifier для уведомления об открытии файлов в IDE, чтобы он мог зарегистрировать свои IOTAEditorNotifier экземпляры.

1 голос
/ 26 мая 2009

Я должен быть как-то возможно: мы используем SourceConexion (http://www.epocalipse.com/scx.htm) здесь, который автоматически извлекает файл перед редактированием источника или изменением формы.

JVCS имеет поддержку интеграции с IDE, это открытый исходный код, возможно, они тоже это реализовали: http://jedivcs.sourceforge.net/

...