88 votes

Empêcher la barre d'espacement de déclencher l'autocomplétion dans Eclipse

<strong>Mise à jour</strong>

Ce problème a été corrigé dans Eclipse <strong>2018-12 </strong>. Ce comportement reste par défaut, mais peut être désactivé - voir <a href="https://stackoverflow.com/a/53876787/1082449">la réponse acceptée </a>pour savoir comment

Je vais laisser la question telle quelle pour la postérité, et pour ceux qui utilisent des versions antérieures d'Eclipse.


Dans Eclipse, j'ai activé les suggestions de type intellisense pour Java en allant sur

Window -> Preferences -> Java/Editor/Content Assist

et en mettant en place ce qui suit

Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

source = Eclipse Intellisense ?

Cela fonctionne à merveille, à l'exception d'un problème ennuyeux. Lorsque j'appuie sur spacebar le mot saisi est automatiquement complété par ce qui se trouve en tête de la liste des suggestions. C'est assez juste, sauf qu'il m'arrive de taper un nom de classe/variable avec une correspondance légale exacte, mais ceci ne le fera pas apparaît en tête de liste des suggestions. Ainsi, lorsque j'appuie naturellement sur spacebar Eclipse insère quelque chose de complètement erroné.

E.G. après avoir tapé Cookie Je vais frapper spacebar et obtenir CookieMonster .

Cela semble être un bogue, et se produit assez souvent pour être ennuyeux, mais même en dépit de cela Je ne veux pas spacebar pour déclencher l'autocomplétion en général . Je peux vouloir taper le nom d'une variable qui n'a pas encore été déclarée, ou quelque chose de similaire. Je veux utiliser l'autocomplétion comme outil d'aide, mais ma frappe naturelle devrait toujours sont prioritaires.

J'aimerais arrêter spacebar déclenchant l'autocomplétion, et soit revenir à l'utilisation de la fonction enter ou, mieux encore, déclencher l'autocomplétion à l'aide d'un mot-clé custom qui n'est pas utilisée dans la dactylographie ordinaire. Tout cela est-il possible ?

J'ai joué avec tous les paramètres de l'application Content Assist en vain. En cherchant la question sur Google, on obtient un tas de résultats sur la désactivation de la fonction d'autocomplétion.


Ce problème est corrigé depuis Eclipse 2018-12 [4.10]. voir la réponse acceptée

Il est présent dans toutes les versions antérieures, à savoir 2018-09 [4.9], Photon [4.8], Oxygène [4.7], Néon [4.6], etc.

0 votes

+1 J'étais justement en train de me battre avec ce même problème... Une chance de le résoudre ? C'est très ennuyeux d'appuyer sur espace et d'obtenir quelque chose que l'on ne voulait pas (on ne l'a pas sélectionné !)... C'est peut-être bien pour la "déclaration de type", mais pour les "noms de variables", ce n'est pas raisonnable.

0 votes

Malheureusement, ce n'est pas le cas. Savez-vous si le même problème existe dans la dernière version de Kepler (4.3) ? Je n'ai pas encore fait la mise à jour, mais si c'est le cas, je mettrai à jour la question.

3 votes

Malheureusement, ce même comportement se produit dans Kepler (4.3)... C'est vraiment dommage. J'aime beaucoup cette activation automatique mais c'est vraiment ennuyeux qu'elle fasse une telle sélection dans plusieurs situations. Ma solution temporaire est d'augmenter légèrement le temps d'activation, de sorte que j'écrive la plus grande partie du nom de la nouvelle variable... mais cela ne fonctionne pas toujours. Je vais faire des recherches plus approfondies sur ce problème, et je vais probablement le signaler à Eclipse, car je pense qu'il s'agit d'un bogue et non d'une fonctionnalité.

26voto

Pascalius Points 1202

Il existe une solution sur l'outil de suivi des problèmes pour cela. Copier le bocal dans le dossier eclipse/dropins. Au prochain redémarrage, l'espace est désactivé comme déclencheur de l'autocomplétion.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=348857

Eclipse 12-2018 et plus récent : Cela fonctionne de manière native, consultez la réponse de Pyves.

2 votes

Ça a l'air génial mais ça ne marche pas pour moi dans Eclipse Juno - pas de changement de comportement, la barre d'espacement active toujours l'autocomplétion. Est-ce que cela fonctionne pour vous dans Kepler ? Où se trouvent les boutons/menus de la barre d'outils permettant de basculer l'outil mentionné dans le fil de discussion sur les bogues ?

1 votes

Oui, cela fonctionne pour moi avec Kepler Service Release 1. Cependant, je ne vois pas non plus les éléments de la barre d'outils.

0 votes

Cela ne fonctionne pas pour moi dans Eclipse Luna SR2 (4.4.2 -- Build Id : 20150219-0600).

7voto

Andrew Xu Points 21

Utiliser une version SDK d'Eclipse

1. ouvrez la vue Plug-ins et trouvez org.eclipse.jface.text, cliquez avec le bouton droit de la souris, choisissez d'importer en tant que projet source. Après l'importation, vous le trouverez dans votre espace de travail.

2.In src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java

char[] triggers = t.getTriggerCharacter();
if(contains(triggers,key))

changer pour

if(key!='='&&key!=0x20&&contains(triggers,key))

3.Export org.eclipse.jface.text

Faites un clic droit sur le dossier du projet org.eclipse.jface.text, choisissez export-->Deployable plugins and fragments, next, destination choose archive file, finish. Remplacez le fichier dans eclipse/plugins par celui que vous avez généré.

2 votes

Pour ceux qui se demandent comment ouvrir cette vue, allez dans "Fenêtre"->"Afficher la vue"->"Autre..." et dans la zone de texte du filtre, tapez "plug", puis sélectionnez "Plug-ins" dans la boîte ci-dessous et appuyez sur "OK".

0 votes

(Pour ceux qui ne veulent pas se donner tout ce mal, voici le mien pour la version 64 bits d'Eclipse Luna SR2 4.4.2 : 1drv.ms/1GZhJPq -- garder à l'esprit les changements que j'ai mentionnés plus haut).

0 votes

@BrainSlugs83 Si vous pouviez a) poster le code sur github ou b) ajouter "." aux déclencheurs d'achèvement, ce serait génial.

3voto

herman Points 1358

La barre d'espacement a été une touche pour sélectionner l'autocomplétion même dans Indigo. À ma connaissance, il n'est pas possible de la configurer. En fait, c'est probablement la raison pour laquelle le délai existe.

Je suggère de fixer le délai à une valeur optimale qui vous permette de taper des choses telles que private void ... confortablement sans susciter de suggestions de private y void . Si vous recevez une suggestion parce que vous avez attendu trop longtemps, appuyez sur Echap pour interrompre Content Assist.

0 votes

Je n'ai obtenu qu'un succès limité en augmentant le délai.

0voto

user3178008 Points 1

Même configuration que davnicwil, même problème, toujours sur eclipse 4.4.

Solution: Intercepter (crochet) MAJ+barre d'ESPACE (appuyez et maintenez) le (éditeur de fenêtre) de l'éclipse et de le remplacer avec de l'ESC,de l'ESPACE (séquence). Maintenant, vous mes décider entre

  • La saisie semi-automatique+ESPACE: appuyez sur ESPACE lorsque l'autosuggestion présent
  • juste de l'ESPACE: appuyez sur la combinaison de touches prédéfinies ou de la séquence (par exemple SHIFT+ESPACE)

Sur windows, vous pouvez utiliser http://www.heise.de/download/activaid.html (vous pouvez également utiliser AutoHotkey, java native crochet, ...)

Guide ActivAid:

  1. Ouvrir Ac'tivAid, sélectionnez "UserHotkeys"
  2. cliquez sur "+", une description
  3. cliquez sur "short cut", par exemple, appuyez sur MAJ+ESPACE
  4. Commande: "{ESC}{SPACE}" (sans les guillemets)
  5. cliquez sur le "+", sélectionnez eclipse éditeur d'image, appuyez sur ENTRÉE
  6. cliquez sur OK, OK Ca'tivAid

Mon fichier de config:activAid/paramètres/ac'tivAid.ini:[UserHotkeys]

Hotkey11=+Space
Path11=<Send>{ESC}{SPACE}
Description11=Eclipse Shift+Space -> Esc,Space
Category11=
Application11=ahk_class SWT_Window0

Vous pouvez également reconfigurer les touches sur les claviers non anglais avec des "chaînes de raccourci", par exemple " >{, ä->} etc.

-1voto

laidbackengineer Points 101

Avez-vous essayé de désactiver ctrl + espace pour les aide au contenu java ? Comme vous avez déjà activé le content assist sur 0 delay et sur l'occurrence d'un ensemble de caractères, vous n'avez probablement pas besoin de ctrl+space. Allez à 1. préférences-> dans recherche tapez clé chercher l'entrée avec content assist java il suffit de supprimer cette clé de liaison 2. aller dans preferenc-> java -> editor -> content assist et décocher Insérer automatiquement des propositions uniques et voir si cela résout le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X