Parar o pressionamento de tecla da barra de espaço ao ativar o preenchimento automático no Eclipse

No Eclipse Oxygen, eu habilitei sugestões no estilo intellisense para Java, indo para

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

e definindo o seguinte

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

fonte = Eclipse Intellisense?

Isso funciona shinymente, além de um problema chato. Quando eu bato na barra de espaço , o token que está sendo typescript é autocompletado com o que estiver no topo da lista de sugestões. É justo, exceto que às vezes eu digito um nome de class / variável com uma correspondência legal exata, mas isso não aparecerá como a sugestão principal. Então, quando eu acertei naturalmente a barra de espaços, o Eclipse insere algo completamente errado.

EG depois de digitar Cookie eu vou bater na barra de espaço e pegar o CookieMonster .

Isso parece um erro, e acontece com frequência suficiente para ser chato, mas mesmo assim eu não quero que a barra de espaço acione o preenchimento automático em geral . Eu posso querer digitar um nome de variável que ainda não foi declarado, ou algo similar. Quero usar o preenchimento automático como uma ferramenta auxiliar, mas minha digitação natural deve sempre ter prioridade sobre ele.

Gostaria de interromper o preenchimento automático do acionador de barra de espaço de trabalho e voltar a usar enter ou, melhor ainda, acionar o preenchimento automático com uma chave personalizada que não é usada na digitação comum. Tudo isso é possível?

Eu brinquei com todas as configurações do Content Assist sem sucesso. Pesquisando a pergunta apenas retorna vários resultados sobre a desativação do recurso de preenchimento automático.

ATUALIZAR

Este problema está presente nas últimas 6 versões do Eclipse – Oxigênio [4.7] Neon [4.6] Marte [4.5] Luna [4.4] Kepler [4.3] e Juno [4.2]

O encadeamento no rastreador de problemas discutido na resposta aceita e vários comentários parecem sugerir que esse problema foi confirmado.

Se algum dos devladores do Eclipse estiver lendo, tudo o que posso dizer é, por favor, considere os benefícios de consertar isso.

Claro, o plugin na resposta aceita, e outros plugins ligados ao segmento de bug, consertá-lo. Mas quantas outras pessoas que enfrentam esta questão sabem ou se preocupam em encontrá-lo e instalá-lo?

O preenchimento automático é um recurso que você deseja trabalhar de maneira intuitiva e sem falhas, em qualquer IDE moderno. Este é o caso no IntelliJ IDEA e por isso é atualmente uma razão muito convincente para mudar …

Existe uma solução no rastreador de problemas para isso. Copie o jar na pasta eclipse / dropins. Com o próximo espaço de reboot é desabilitado como triggersdor de preenchimento automático.

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

Use uma versão do SDK do eclipse

1. Abra Plug-ins Veja e localize org.eclipse.jface.text, clique com o botão direito, escolha import como Source Project. Após a importação, você o encontra em sua área de trabalho.

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

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

mudar para

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

3.Export org.eclipse.jface.text

Clique com o botão direito do mouse na pasta do projeto org.eclipse.jface.text, escolha export -> Plugins e fragments implementáveis, em seguida, destino, escolha o arquivo, termine. Substitua o de eclipse / plugins com o que você gera.

A barra de espaço tem sido a chave para selecionar o autocomplete mesmo no Indigo. Pelo que sei, isso não pode ser configurado. Na verdade, é provavelmente por isso que o atraso existe.

Eu sugiro definir o atraso para algum valor ideal que permite que você digite coisas como private void ... confortavelmente sem desencadear sugestões para private e void . Em seguida, caso você receba uma sugestão porque esperou por muito tempo, pressione Escape para interromper o Assistente de Conteúdo.

Mesma configuração como davnicwil, mesmo problema, ainda no eclipse 4.4.

Solução : Interceptar (gancho) SHIFT + ESPAÇO (pressione e segure) na (editor-janela) eclipse e substituí-lo por ESC, ESPAÇO (seqüência). Agora você decide entre

  • Autocomplete + SPACE: pressione SPACE quando a auto-sugestão estiver presente
  • apenas ESPAÇO: pressione combinação de teclas ou sequência predefinida (por exemplo, SHIFT + ESPAÇO)

No windows você pode usar http://www.heise.de/download/activaid.html (você também pode usar AutoHotkey, hook nativo de java, …)

HowTo com ActivAid:

  1. Abra o Ac’tivAid, selecione “UserHotkeys”
  2. clique em “+”, defina uma descrição
  3. clique em “atalho”, pressione, por exemplo, SHIFT + ESPAÇO
  4. Comando: “{ESC} {SPACE}” (sem aspas)
  5. clique em “+”, selecione o quadro do editor de eclipse, pressione ENTER
  6. clique em OK, OK no Ac’tivAid

Meu arquivo de configuração: activAid / settings / ac’tivAid.ini: [UserHotkeys]

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

Você também pode remapear teclas em teclados não ingleses com “HotStrings”, por exemplo, ö -> {, ä->} etc.

Finalmente resolvi isso.

Tente baixar este org.eclipse.jface.text.jar e copie-o para a sua pasta de plugins (tipicamente eclipse / plugin). Não se esqueça de fazer o backup do seu próprio.

Funciona no Eclipse Juno.

Se o link não funcionar, comente sobre isso, obrigado.

Você pode desativar a ativação automática através da checkbox de seleção

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

e ative o recurso de preenchimento automático sob demanda. A tecla de atalho padrão para isso é

CTRL + espaço

No Eclipse, vá para Window -> Preferences -> General -> Keys e remova a binding para o comando Content Assist.