0

Je crée un module NetBeans avec plusieurs services (assistant de code, projet, débogueur, etc.)NetBeans - taskFactory (API Parsing) ne fonctionne pas si un ProjectFactory (API Project) a été enregistré

J'ai remarqué Après avoir enregistré mon ProjectFactory via l'annotation @ServiceProvider, TaskFactory qui est enregistré par l'annotation @MimeRegistration cesse de fonctionner. C'est à dire. sa seule et unique méthode create(Snapshot snapshot) pour créer des tâches d'analyse, comme ParserResultTasks pour les annotations d'erreur, n'est plus invoquée, donc pas d'analyse.

Cependant, une fois que j'appelle l'analyseur explicitement, par ex. à travers ParserManager.parse dans un CompletionProvider, tout fonctionne à nouveau. Aussi, je devrais probablement noter que les implémentations du projet, de l'éditeur et de l'analyseur sont toutes dans des modules séparés.

Y at-il autre chose à laquelle je dois faire attention si ProjectFactory et TaskFactory sont utilisés ensemble? Peut-être ajouter la TaskFactory à la recherche du projet?

Mise à jour

Tout d'un coup, tout fonctionne. Je ne sais pas quel était le problème, peut-être que les enregistrements META n'ont pas été correctement chargés après les modifications? Je ne sais pas. Mais maintenant tout semble faire ce qu'il doit faire.

Je suis toujours ouvert pour des suggestions possibles où les choses peuvent mal se passer lors de l'utilisation à la fois de l'API de projet et d'analyse (si cela était du tout le problème).

Update2

Non, cela ne fonctionne pas. Classé dans un rapport de bogue, voir https://netbeans.org/bugzilla/show_bug.cgi?id=230558

+0

Ouais, il semble que tout nettoyer/tout construire a pris soin de créer les entrées du fichier de calque dans l'un de vos modules. Je recommanderais de demander des «suggestions possibles sur les situations qui peuvent mal tourner ...» sur le forum des utilisateurs de la plateforme NetBeans. http://forums.netbeans.org/platform-users.html –

+0

@JonathanSpooner J'aurais aimé que ce soit ça, malheureusement ça ne l'était pas. Voir ma mise à jour2. – bcause

Répondre

0

Ok, il s'avère que c'était un bug après tout, mais il a été corrigé maintenant.

Voir l'histoire complète sur here.

Questions connexes