J'aime quand Eclipse me permet de sauter entre les paramètres dans un appel de méthode à l'aide d'une touche TAB. Je voudrais que mon plugin fournisse une fonctionnalité similaire. Pour être précis, j'injecte un peu de texte dans l'éditeur et je voudrais mettre en évidence la syntaxe spécifique et laisser le programmateur passer à la correspondance suivante à l'aide de la touche TAB.
Voici un exemple. Permet de supposer que j'ai créé dynamiquement l'extrait suivant: p> Je vais injecter cela dans l'éditeur et j'aimerais que Après avoir recherché un peu, j'ai trouvé que cela pourrait être fait en utilisant Modèles . Cependant, je ne trouve aucun exemples pertinents sur le Web. Quelqu'un a-t-il de l'expérience avec cela? P> J'ai trouvé deux liens qui pourraient être utiles, bien que je ne puisse toujours pas trouver un Solution. P> [?] Code> est mis en surbrillance et prêt Pour la modification (l'utilisateur peut taper
longueur () code>). De plus, s'il y a plus de fragments code> [?] Code>, j'aimerais que l'utilisateur utilise l'onglet pour passer à la suivante. P>
3 Réponses :
Je ne suis pas totalement sûr de ce que vous voulez, mais vous pourrez peut-être faire ce que vous voulez avec des modèles.
Par exemple, ouvrez un éditeur Java, placez le curseur à l'intérieur d'une méthode, tapez Préférences -> Java -> Editeur -> Modèles P> Arraya Puis CTLR-Space et sélectionnez ArrayAjouter dans le menu contextuel. Vous obtiendrez un modèle avec une chaîne mise en surbrillance, appuyant sur onglet saute à la variable suivante. La source de modèle peut être vue dans, p>
${array_type}[] ${result:newName(array)} = new ${array_type}[${array}.length + 1];
System.arraycopy(${array}, 0, ${result}, 0, ${array}.length);
${result}[${array}.length]= ${var};
Oui, voici comment fonctionne les modèles. Cependant, je développe un plugin qui créera des extraits de code sur l'exécution. J'essaie de savoir comment utiliser, si possible, utiliser des modèles API afin que l'utilisateur puisse modifier et naviguer entre des espaces réservés. Y a-t-il encore plus d'informations que vous voudriez que je donne?
Le meilleur pari est de suivre la source du plug-in de modèle et de voir comment cela fonctionne alors.
Avez-vous vérifié org.eclipse.jface.text.templates.templateproposal? Et si vous souhaitez insérer un extrait sans utiliser de contenu, vous pouvez inspecter la méthode Templateproposal # Appliquer également.
J'injecte mon extrait dans l'éditeur dans l'éditeur d'un emplacement spécifique sans utiliser de contenu d'assistance. Cela semble vraiment prometteur. Si vous pouviez donner un exemple de code dans une réponse, je l'accepterai.
code manutention des échantillons: résultat: p> Je vous suggère d'utiliser Dans mes codes, il y a des hacks car il n'y a aucun moyen d'obtenir p>
org.eclipse.jdt.ui.javacompletionproposalcomputer code> extension. Cela vous permet de contribuer à la manière légale. P>
isourceviewer code> légalement. Je sais
isourceviewer code> est
itextTargeoperer code> lui-même, mais ce n'est pas une API (casting illégal). Et le modèle est destiné à être conçu pour être utilisé par
templateCompétionProcesseur code> ou
templateCompétionpompactorproroposal code>. P> p> p>
Ma réponse est basée sur la réponse de Jeeyeul. La différence est que je voulais non seulement le modèle lui-même, mais également les importations pour qu'elle soit résolue et ajoutée automatiquement. Cela peut être fait de manière à suivre, à l'aide de JDT Stuff: