Eclipse: Уведомление, когда методы переименованы?до после - PullRequest
1 голос
/ 25 марта 2012

Я ищу событие или уведомление, которое позволяет мне реагировать в моем Eclipse-плагине, когда методы классов (java) изменены (переименованы или удалены / добавлены).Я особенно заинтересован в представлении IJavaElement измененного метода.

Существует ли какое-либо событие, которое предоставляет мне такую ​​информацию?

Ответы [ 2 ]

1 голос
/ 28 марта 2012

это мой plugin.xml

<extension
     point="org.eclipse.ltk.core.refactoring.renameParticipants">
  <renameParticipant
        class="bookmark.renameparticipant.JavaElementRenameParticipant"
        id="bookmark-pp.bookmark.renameParticipant1"
        name="name">
     <enablement>
        <with
              variable="element">
           <or>
              <instanceof
                    value="org.eclipse.jdt.core.ICompilationUnit">
              </instanceof>
              <instanceof
                    value="org.eclipse.jdt.core.IType">
              </instanceof>
              <instanceof
                    value="org.eclipse.jdt.core.IMethod">
              </instanceof>
              <instanceof
                    value="org.eclipse.jdt.core.IField">
              </instanceof></or>
        </with>
     </enablement>
  </renameParticipant>

и мой источник моего участника переименования:

Я устанавливаю точку останова в init-методе участника, но если я использую CTRL+ 2 + R в Eclipse даже не вызывается init:

@Override
    protected boolean initialize(Object element) {

        if (!(element instanceof IJavaElement)) {
            return false;
        }

        oldHandleId = ((IJavaElement) element).getHandleIdentifier();
        detectElementType((IJavaElement) element);

        newHandleId = generateNewHandleId(oldHandleId);

        if (!initSuccessful()) {
            return false;
        }

        return true;
    }
0 голосов
/ 26 марта 2012

Я думаю, вы ищете переименовать участников. См. Точку расширения org.eclipse.ltk.core.refactoring.renameParticipant.

У вас есть возможность подключиться к рефакторингу, и вы получите обратный вызов, когда рефакторинг начинается методом checkConditions, а также когда он заканчивается методом createChange.

...