Bonjour,
Dans l'élaboration de mon plug-in, il m'est nécessaire de chercher dans tous les fichiers Java du Workspace une expression régulière de la formequi peut se situer n'importe où (bien évidemment dans des commentaires ou de la javadoc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part #(TEST|IMPL)#.*#[0-9]+
Dans un premier temps j'avais pensé passer par l'arbre AST mais malheureusement ce n'est pas possible, AST trouvant bien les commentaires mais ne retournant le contenu que s'il s'agit de javadoc. Bref, la solution retenue ne fût donc plus celle là.
Je voudrais désormais rechercher cette expression régulière comme-ci nous effectuons un CTRL+H...
J'ai donc ajouté en dépendance le plug-in "org.eclipse.search".
A partir d'ici j'ai deux options il me semble (je suis nouveau dans le développement de plug-in) :
- Créer une extension "org.eclipse.search.textSearchEngine"
- Utiliser directement la classe TextSearchEngine dans le code
Ne voulant pas étendre la fonctionnalité de recherche je me dis que la solution n°1 n'est pas d'actualité.
J'ai donc choisi la solution n°2 (je reste ouvert à toutes autres propositions).
J'ai donc dans mon Handler quelque chose du genre :
D'après ce que j'ai compris dans la documentation, le résultat serait contenu dans l'objet TextSearchRequestor.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 TextSearchEngine s = TextSearchEngine.create(); TextSearchScope newSearchScope = TextSearchScope.newSearchScope(null, Pattern.compile("*.java"), true); TextSearchRequestor textSearchRequestor = new TextSearchRequestor(){ // TODO Quelles sont les méthodes à implémenter ? @Override public boolean acceptFile(IFile file) throws CoreException { return true; } }; IStatus search = s.search(newSearchScope, textSearchRequestor, Pattern.compile("#(TEST|IMPL)#.*#[0-9]+"), null);
Mais je ne sais pas quelles sont les méthodes à implémenter et comment les implémenter, et je ne sais pas également quoi mettre dans le TextSearchScope.newSearchScope (j'ai mis null pour le tableau des IFile) ...
Bref je suis un peu perdu.
Pouvez-vous m'expliquer comment faire, un exemple, ou même me dire si je suis sur le bon chemin ou pas...
Merci par avance pour votre aide.
Partager