Как получить "активный редактор" в плагине Eclipse? - PullRequest
13 голосов
/ 19 февраля 2012

В моем плагине Eclipse мне нужно знать, когда изменился видимый на экране редактор. В настоящее время я получаю активный редактор следующим образом:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor()

Это работает в большинстве случаев, за исключением случаев, когда нажата зеленая кнопка Продолжить:

Debugger buttons

Если я использую ярлык F8, активный редактор обновляется, как и ожидалось.

Похоже, что свойство активного редактора не обновляется, пока вкладка редактора не окажется в фокусе (чего не происходит при нажатии кнопки Продолжить).

Есть ли какой-нибудь другой путь, которым я могу воспользоваться, чтобы получить "видимый редактор"?

Заранее спасибо.

Alan

Ответы [ 3 ]

2 голосов
/ 19 февраля 2012
  1. Редактор активен только тогда, когда у него есть фокус, поэтому то, что вы получаете, является правильным выводом API. Пользователь вашего плагина не будет запускать его в режиме отладки, поэтому для конечного пользователя это не проблема
  2. В качестве альтернативы, чтобы получить все открытые редакторы, вы можете сделать следующее:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()

1 голос
/ 28 октября 2013

Метод IWorkbenchPage interface has an isPartVisible () `, который указывает, является ли указанная часть видимой. Результат не зависит от того, активна ли указанная часть в данный момент, то есть имеет фокус или нет.

Чтобы найти видимый, но в данный момент неактивный редактор, может быть недостаточно просто вызвать этот метод на странице активной рабочей среды. Вместо этого вам, возможно, придется перебрать все окна рабочей среды и проверить видимость вашего редактора на странице каждого из них.

0 голосов
/ 02 мая 2014

Вопрос похож на вопрос, размещенный по ссылке ниже.Одним из способов достижения этого является отслеживание того, какой редактор был ранее открыт, путем создания Part Listener. Eclipse Plugin - Как получить последний работавший над редактором

...