Я создаю модуль NetBeans с несколькими службами (код помощь, проект, отладчик и т.д.)NetBeans - TaskFactory (Синтаксический API) не работает, если ProjectFactory (Project API) был зарегистрирован
Я заметил что после того, как я зарегистрировал свой ProjectFactory с помощью аннотации @ServiceProvider
, TaskFactory, зарегистрированная аннотацией @MimeRegistration
, перестает работать. То есть его единственный метод create(Snapshot snapshot)
для создания задач синтаксического анализа, например ParserResultTasks для аннотаций ошибок, больше не вызывается, поэтому не выполняется синтаксический анализ.
Однако, как только я вызываю синтаксический анализатор явно, например. через ParserManager.parse
в CompletionProvider все работает снова. Кроме того, я должен, вероятно, отметить, что реализация проекта, редактора и анализатора находится в отдельных модулях.
Есть ли еще что я должен обратить внимание, если ProjectFactory и TaskFactory используются вместе? Возможно, добавление TaskFactory к поиску проекта?
Update
Все вдруг все работает. Я не знаю, в чем проблема, возможно, регистрация META не была загружена правильно после внесения изменений? Я не знаю. Но теперь все, кажется, делает то, что оно должно делать.
Я по-прежнему открыт для возможных предложений, где все может пойти не так, когда вы используете API, как проект, так и парсинг вместе (если это вообще было проблемой).
Update2
Нет, это не работает. Относится к отчету об ошибке, см. https://netbeans.org/bugzilla/show_bug.cgi?id=230558
Да, похоже, что Clean/Build All позаботился о создании записей файла слоя в одном из ваших модулей. Я бы порекомендовал просить «возможные предложения, в которых все может пойти не так ...» на форуме пользователей платформы NetBeans. http://forums.netbeans.org/platform-users.html –
@JonathanSpooner Мне жаль, что это было, к сожалению, это не так. См. Мой Update2. – bcause