Eclipse IAutoEditStrategy вызывается только на backspace; как вызвать все правки? - PullRequest
2 голосов
/ 10 января 2010

В настоящее время я работаю над настраиваемым плагином редактора для Eclipse. Я переписал getAutoEditStrategies следующим образом:

public IAutoEditStrategy[] getAutoEditStrategies(
  ISourceViewer sourceViewer, String contentType) {
  return new IAutoEditStrategy[] { new KRLAutoEditStrategy() };
}

и написал минимальную стратегию, подобную этой:

public class KRLAutoEditStrategy implements IAutoEditStrategy {
  public void customizeDocumentCommand(IDocument d, DocumentCommand c) {
    System.out.println("Called.");
  }
}

Теперь customizeDocumentCommand вызывается только когда я нажимаю клавишу Backspace, а не для любого другого символа. Что мне не хватает? Как еще реализовать автоматический отступ?

Ответы [ 2 ]

1 голос
/ 10 января 2010

Не вижу ничего плохого в вашей пользовательской стратегии (у меня почти такой же код работает отлично), но для реализации некоторого базового вида автоматического отступа вы можете использовать DefaultIndentLineAutoEditStrategy (добавить его в массив, возвращаемый getAutoEditStrategies )

0 голосов
/ 12 января 2010

Я сам понял это сейчас. Моя стратегия была в порядке, но она не работала, потому что раздел редактора, к которому я хотел применить его, не был открыт через getConfiguredContentTypes.

Если ваша раскраска или отступ не работают, убедитесь, что вы работаете с разделом, к которому применены правильные токены и выставлены через getConfiguredContentTypes! Проблема стала очевидной, когда я использовал разные цвета для всех разделов, а один из них не был окрашен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...