2011-04-22 10 views
8

¿Puedo tener autocompletado de texto completo para Java @ Eclipse? Vamos a demostrar:Eclipse: autocompletado de texto completo para Java?

Última pieza del código:

getVariants().add(new Variant(MediaType.TEXT_XML)); 

Cómo hacer yo código de ahora:

GETV [ctrl + espacio] .a [Enter] nueva V [ ctrl + espacio, flecha abajo, Ingrese] M [Ctrl + Espacio, Intro]. text_x

Básicamente, Eclipse completa palabra "TEXT_XML" cuando proporciono letras "TEXT_X".

¿Cómo me gustaría que codificar:

GETV [ctrl + espacio] .a [Enter] nueva V [ctrl + espacio, abajo flecha, Enter] M [Ctrl + Espacio, Entrar]. xml

y Eclipse debe darse cuenta de que quería decir "TEXT_XML" (autocompletado de texto completo).

Respuesta

3

Por lo que sé, no hay forma de habilitar la finalización de un código de texto completo en la vista de preferencias de Eclipse. Esto también me ha estado molestando por un tiempo. Hice un buen trabajo de excavación y estoy bastante seguro de que no hay una manera fácil de lograr esto.

Sin embargo, hay dos formas de implementar el deseado, pero supongo que ambos son mucho trabajo para solucionar este pequeño inconveniente.

  1. Hay un punto de extensión plug-in de Eclipse para el ordenador Propuesta JDT Java Finalización - reference page un proyecto de ejemplo que implementa este punto de extensión se puede encontrar in this repository. Esto es bastante conveniente, pero todavía un montón de repetitivo y tedioso de codificación.

  2. Puede cambiar el método findKeywords en la clase interna org.eclipse.jdt.internal.codeassist.CompletionEngine y compilar su propia horquilla JDT. Pero esto se desalienta por muchas razones. En primer lugar, esta clase es un monstruo de 12000 líneas y es difícil simplemente saltar. Y, por supuesto, si solo piratear un kludge, hay pocas posibilidades de que esto se convierta en una contribución oficial, por lo que tendrías que preocuparte. sobre cada lanzamiento de eclipse.

Además, puede haber una manera muy chillax en el futuro. Aunque esto podría exceder sus requisitos un poco.

Eche un vistazo a Code Recommenders project. Este blog tiene un outline of the project objectives No menciona la autocompletación de texto completo específicamente, pero supongo que sus algoritmos de coincidencia van incluso más allá.

Editar: En el buen SO-espíritu, voy a mantener esta respuesta al día:

Al parecer la característica ahora se implementa en el código recomendadores plug-in. Consulte esto blog post y este forum thread. Estoy bastante sorprendido de que solo tomó 10 locs. Para mí, el punto de extensión parecía más complejo.

+0

Solo quería decir que Code Recommenders es muy útil después de usarlo por un tiempo :) – Xorty

+0

@Xorty: He actualizado mi respuesta con dos enlaces relacionados con esto, solo para justificar la recompensa;) Asumo que eres el OP de ese hilo del foro eclipse de todos modos. ¿Cómo son tus experiencias con el complemento hasta ahora? ¿Es lo suficientemente seguro para la producción? – Jules

+1

Soy yo, sí :-) En realidad, tengo algunos problemas hasta ahora, a veces recomendados carros plugin (no recuerdo que esto ocurra antes de esta función) :-(. Pero mi Eclipse ahora es MONSTEr con un montón de complementos, voy a Usa las instalaciones del eclipse seoncd y pruébalo más. Publicaré algunos comentarios en los foros de Eclipse. – Xorty

2

Si su clase MediaType no contiene un gran número de campos accesibles/métodos simplemente podría utilizar

getv[ctrl+space].a[Enter]new V[ctrl+space, down arrow, Enter]M[Ctrl+Space, Enter].[Ctrl+Space, down arrow, Enter] 

es posible que tenga que pulsar la flecha hacia abajo más de una vez, aunque para seleccionar el campo deseado.

+0

Buen truco, pero no solución de texto completo :) – Xorty

0

Sí, puede usar plantillas. (Ventana -> Preferencias -> Java -> Editor -> Plantillas)

El uso básico es configurar el nombre para lo que desea escribir y establecer el patrón a lo que desea que aparezca.

En mi prueba, establecí el nombre en xml, el contexto en Java, el patrón en TEXT_XML y se activó automáticamente la inserción. Luego, cuando he escrito a cabo tu ejemplo yo era capaz de seguir un patrón como ...

getv[ctrl+space].a[enter]new V[ctrl+space, down arrow, Enter]M[ctrl+Space, Enter].xml[ctrl+space]

y desde insertar automáticamente se enciende puf TEXT_XML se insertó.

Las plantillas tienen mucha más funcionalidad que eso y la única fuente que utilicé para esta respuesta fue Effective Eclipse.

Espero que esto ayude!

+0

Tendría que configurar manualmente el patrón para cada miembro, ¿verdad? ¿Y no podría buscar "ml" y obtener TEST_XML sin configurarlo también? Creo que OP está buscando algo un poco más dinámico. –

+0

@Mark Peters: Cierto, consideré que la pregunta era buscar una solución para reducir las pulsaciones de tecla repetitivas. Todavía las plantillas son buenas de conocer: D – Shaded

+0

Esa es una buena característica gracias por la sugerencia, pero desafortunadamente no es lo que estoy buscando (pregunta s sobre la autocompletación de texto completo). – Xorty

Cuestiones relacionadas