2010-01-02 13 views
9

Do Eclipse tiene un plugin para el tipo de terminación automática por delante como Visual Studio, por lo que no tiene que destruir mi pulsando la barra espaciadora Ctrl +espacio todo el tiempo? (Si no sabe cómo funciona en Visual Studio, no se moleste en responder.)Tipo de terminación automática por delante en Eclipse

Y también, ¿puedo limitar la autocompletar a paquetes importados, en lugar de cada clase de Java en la tierra? Es frustrante ver sugerencias de awt y swing, etc., cuando estoy trabajando con GWT. Y no quiero agregar todas las clases de Java al filtro, eso es estúpido. (De nuevo, al igual que como se hace en Visual Studio!)

+0

@Claus, podría añadir la etiqueta 'visual-studio', para atraer más visual-studio * * y eclipsar a los usuarios experimentados que podrían proporcionar una respuesta mejor que la mía. – VonC

+1

@Claus, si no quiere escuchar a los usuarios conocedores de Eclipse, se perderá muchas funciones ingeniosas en Eclipse. Tenga una mente abierta en su lugar. – JesperE

+2

¿Cómo se solicitan características extremadamente útiles que otros IDEs tienen, siendo de mente cerrada? Las "características" que requieren que me dedique más tiempo al desarrollo del tipo, y ralentizar mi IDE, no son ingeniosas. –

Respuesta

24

En cuanto a su segunda parte, yes you can

  • abierto Eclipse
  • Seleccione Ventana/Preferencias en el menú
  • expanda Java/Apariencia/Escriba los filtros en el menú de la izquierda
  • Haga clic en el botón "Agregar paquete", ingrese "java.awt" (sin las comillas) y haga clic en Aceptar
  • Aceptar su salida

Esto hará que Eclipse elimine todas las clases coincidentes del paquete java.awt de su lista de tipos por adelantado. Muy bonito ...

Así que existe "de escritura anticipada" en Eclipse (mencionado en este status report in June 2006), pero es sinónimo de auto-completado, lo más a menudo provocada por CTRL +espacio ... (que no es exactamente lo que está buscando)


para ser más específicos, el tipo de automatic auto-completion (finalización mientras está escribiendo, con un "Todo" lista "común" o de las terminaciones posibles) que tiene en Visual Studio no está disponible en Eclipse (en realidad, lea a continuación):

alt text

Respuesta original enero de 2010:

Al menos, no sin un plugin dedicando.
E incluso con ese complemento, debería seguir un TemplateCompletionProcessor, lo que significa que necesitaría una lista de caracteres activando dicha finalización (una vez más, no lo que está buscando), mediante la redefinición del método getCompletionProposalAutoActivationCharacters().

actualización de noviembre de 2011:

Cristi menciones en his answer (upvoted) una gran solución, que consiste en la adición de todas las letras como la activación automática activa para Java.
Ver también "Automatically opening completion window in Eclipse".

Desde el hilo "Eclipse auto-completion":

Windows -> Preferences -> Java -> Editor -> Content Assist 
  • Fijar demora a: 0 (en realidad> 0 es mejor: 50, evita picos de CPU debido a la escucha constante)
  • criterios de activación a:
 
    .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV [email protected] 

content assist options

+1

Lo sé, y escribí como parte de la pregunta que no quería hacer esto, ¡ya que es ridículo estúpido agregar todas las clases en Java al filtro! –

+0

@Claus: incluso si puede ingresar paquetes en su lugar? De todos modos, no conozco otros mecanismos de "autocompletado". – VonC

+1

Como escribí, solo quiero mostrar los paquetes importados, no filtrar todo lo que no necesito. –

1

La finalización se activa al presionar ".", Si eso es lo que usted denomina "autocompletado de escritura anticipada". Esto es lo que también hace Visual Studio, a menos que te refieras a otra característica de Visual Studio que desconozco.

Limitar la finalización solo a paquetes importados Creo que es algo poco ortodoxo; está obligado a confiar en las importaciones de comodines para definir el conjunto de tipos para completar. Creo que la mayoría de los usuarios considerarían eso menos que útil. Sin embargo, le invitamos a elaborar su caso de uso para esto. Por ejemplo, ¿por qué querría excluir todas las clases de Java de la finalización?

Por cierto, el uso de "filtros de tipo" (como sugiere VonC) no requiere que agregue todas las clases. Normalmente excluyo (globalmente) java.awt.*, sun.com.*, org.omd.* y algunos otros. Eclipse también clasifica finalización de acuerdo con una heurística (sensible al tipo) que generalmente da como resultado que los tipos más relevantes se muestren en la parte superior. Por ejemplo, la autocompletación dentro de una llamada a método colocará las variables que coincidan con la firma del tipo de método en la parte superior.

+0

No tengo acceso a ningún VS habilitado para .NET en el momento de intentarlo, pero ¿cómo se muestran las terminaciones? Un menú desplegable como el que se activó en "." parece un poco invasivo – JesperE

+0

@Claus, me parece invasivo, porque a veces quiero escribir el nombre de un método que aún no he escrito pero que estoy planeando escribir en unos minutos. Es muy confuso cuando VS "corrige" mi ortografía al sustituir el nombre de una clase del marco. – finnw

+0

Oh, interesante, puedes agregar comodines, eso es * un poco * mejor. – BrainSlugs83

14

Mi respuesta puede llegar demasiado tarde, pero tal vez ayude a otros a buscar esta característica en eclipse. Esta solución funciona para mí (eclipse helios):

Ir a Windows -> Preferences -> Java -> Editor -> Content Assist. Aquí, habilite la activación automática y configure el retardo de activación automática a un valor bajo, digamos 50 ms. Luego viene la solución alternativa: en activadores de activación automática para java, simplemente ponga todos los caracteres: abcdefghijklmnopqrstuvwxyz.

Y listo, solo escriba algo.

0

Sé que Claus habló de Java en la segunda parte de su pregunta, pero la pregunta general es acerca de cualquier lenguaje en Eclipse (no hay etiqueta Java aquí), por lo que lo siguiente podría ser útil para python codificadores de eclipse:

Ve a Windows -> Preferences -> PyDev -> Editor -> Code Completion. Aquí, marque la casilla junto a "Solicitar finalización en todos los caracteres de las letras y '_'?".

(Intencionadamente similar a la respuesta de Cristi.)

Cuestiones relacionadas