2008-10-07 10 views
24

Tengo Eclipse 3.3.2 con PDT haciendo desarrollo de PHP. Todos los proyectos que creo, incluso los proyectos SVN tienen código de finalización. Ahora acabo de abrir otro proyecto SVN y no tiene finalización de código ni plantillas PHP (el espacio CTRL no hace nada en ese proyecto). Sin embargo, puedo abrir los otros proyectos y completar el código de todo el trabajo en ellos.¿Por qué la finalización del código Eclipse no funciona en algunos proyectos?

¿Por qué la finalización del código y las plantillas estarían "desactivadas" en un solo proyecto y cómo puedo volver a activarlo?

Respuesta

42

Quizás Eclipse no entiende que el proyecto tiene una "naturaleza de PHP". Intente comparar el archivo .project en ambos proyectos para buscar diferencias. Debe contener algo como:

<natures> 
    <nature>org.eclipse.php.core.PHPNature</nature> 
</natures> 

El archivo .project estará en su espacio de trabajo debajo de los directorios del proyecto.

+1

Como el repositorio tenía un archivo .project, no me dio la oportunidad de abrirlo con el asistente de proyectos PHP, borramos el archivo .project, lo volvimos a comprobar y todo está bien ahora, ¡gracias! –

+1

Esto todavía no muestra la función autocompletar para las funciones integradas de PHP. –

+0

¡Muchas gracias! Eso solo hizo mi día. –

1

Asegúrese de que el archivo se abra con el "editor de PHP". Haga clic con el botón derecho en el archivo y seleccione abierto con para seleccionar el editor adecuado.

Si resulta que usted ha estado usando el editor equivocado, puede cambiar la asociación bajo Preferencias »General» Tipos de contenido

3

tengo el mismo problema a veces. Para mí, funciona para reconstruir el proyecto PHP con "Proyecto" -> "Limpiar".

-1

Una solución podría ser incluir un archivo ficticio php que requiera todas sus clases de PHP. Para que el analizador de PHP también reconozca estas clases. Ejemplo archivo ficticio:

if(false) { 
    require_once 'class/one.php'; 
    require_once 'class/two.php'; 
    require_once 'class/three.php'; 
} 
0

he notado a veces, cuando checkout de un proyecto de SVN en Eclipse (subversivo o subsclipe "checkout de un proyecto como") y aunque se echa un vistazo como un proyecto PHP lo hará borre el archivo .project o sería un proyecto genérico. He encontrado simplemente ir a ese directorio y eliminar el .project .settings/y .cach/

A continuación, cree un nuevo proyecto de php y señale el directorio donde ha extraído los archivos. Y debe tener el código completado y svn debe ser un enlace a su repositorio.

5

¡Gracias! Pasé todo el día para descubrir por qué no tenía código de finalización ...

El problema es que si crea un proyecto SVN el .project es un archivo básico sin referencia de compilación de código. Tienes que crear un proyecto PHP básico y comparar los dos archivos y reemplazar la parte faltante en el proyecto SVN.

Ahora tengo la finalización de código para cada archivo en el proyecto, incluso para la biblioteca Zend Framework

0

que tenía un problema que se acumulan camino estaba vacío, por lo que no finalización de código para cualquiera de los archivos traté de editar. Asegúrese de configurar correctamente su ruta de compilación, especialmente si está vinculando la fuente desde otra ubicación que no sea el área de trabajo.

Como la carpeta apache htdocs por ejemplo.

1

Haga clic derecho en la pantalla de edición, vaya a Java -> Editor -> Content Assist -> Avanzado ...seleccionará las propuestas en consecuencia

6

Cuidado con el .buildpath archivo en el proyecto ... poner esta línea entre la etiqueta:

<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

Guardar y reiniciar eclipse. Ahora todo debería estar bien ... Esto funcionó para mí. :)

+0

Esto, con el cambio de .project, es la parte que falta para hacer que Eclipse muestre correctamente la funcionalidad de autocompletar de las funciones integradas y del proyecto. –

+0

esto también hizo el truco para mí –

0

He resuelto esto habilitando el indexador de C/C++ completo (Windows-> propiedades -> C/C++ -> Indizador), y también presiono el botón de radio "Usar configuración de botón activo". Después de eso, limpia y compila todo.

que trabajó en Eclipse CDT 3.4

5

es sólo una línea para añadir en el archivo .project y luego reiniciar Eclipse para obtener codecompletion: Donde dice

--- 
<natures> 
</natures> 
--- 

después de que el cambio tiene que ser

--- 
<natures> 
    <nature>org.eclipse.php.core.PHPNature</nature> 
</natures> 
--- 

Eso debería hacer.

+0

Sí, funciona. Las naturalezas se pueden cambiar desde el menú contextual -> Propiedades -> Propiedades del proyecto -> seleccionar PHP y hacer clic en OK –

0

Si vino aquí buscando la finalización del código en php eclipse no funciona, asegúrese de que su proyecto sea compatible como un proyecto de php. Haga clic derecho en el proyecto y luego vaya a configurar -> Agregar soporte php. Si tiene la configuración correcta para la asistencia del código, debería funcionar instantáneamente. A veces los novatos a medida que retoco con los proyectos o comienzo proyectos tan limpios y no como php, eclipse no sabe cómo tratar el proyecto.

1

ATENCIÓN

Además de las soluciones ya mencionadas para obtener toda la ayuda de autocompletar para trabajar, hay otra peculiaridad: puede que no esté habilitado.

Vaya a Ventana> Propiedades y luego a PHP> Editor> Code Assist (JAVA tiene una opción similar) y configure "Enable auto activation", preferiblemente con un retraso que se vea cómodo (0 ms). Si le molesta que el programa decida repentinamente hacer las cosas por usted sin aviso (y lo hace incorrectamente), deseleccione "Insertar propuestas individuales automáticamente" y debería estar bien.

2

Si usted tiene este problema, siga estos pasos:

  • Seleccione "include path PHP" en su árbol de proyectos
  • Haga clic derecho sobre él y luego haga clic en "Build Path> Configurar Vía de construcción"
  • En la ventana de apertura, agregue la carpeta que desea construir, para que pueda ayudar con el código.

Eso es todo :) espero que resuelve su problema, he resuelto mi una :)

+0

funciona para el proyecto Eclipse, pero cuando abro archivos php individuales de uso de eclipse, la finalización del código no funciona, cómo hacerlo – n92

0

que tenía que hacer clic derecho del proyecto en el Explorador de PHP, vaya a "Ruta PHP construir". Esto estaba vacío. Hice clic en "Agregar carpeta", seleccioné la casilla de verificación al lado de la carpeta raíz de mi proyecto y hice clic en "Aceptar", luego en "Aceptar" nuevamente.

Después de que la finalización del código parecía funcionar. Debería funcionar de la caja si me preguntas, pero lo que sea.

4

@Guido PHPNature no soluciona esto.

@Edward Tanguay Sí, eso es porque cuando se crea nuevo proyecto PHP, eclipse añade .buildpath presentar ante

<?xml version="1.0" encoding="UTF-8"?><buildpath> 
<buildpathentry kind="src" path=""/> 
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/></buildpath> 

al importar existente eclipse proyecto que no genera .buildpath archivo, pero puede agregarlo a mano o cree un nuevo proyecto PHP con una fuente existente (puede elegir en el asistente).

+0

He estado lidiando con este problema (completé el código para mis clases pero no para el núcleo de PHP) durante casi un año, y finalmente me colapsé y lo solucioné, gracias a su consejo sobre .buildpath - ¡gracias! – SteveK

+0

Solo una nota ya que estoy usando una versión más nueva de Eclipse: yendo por debajo de las propiedades del proyecto y revisando el cuadro de naturaleza de PHP lo solucioné por mí. Se configuró en Web (primario) y js natures por defecto. Estoy usando el plugin Aptana Studio y la versión de Eclipse: 4.0.0.201206120848 – Logan

0

Compruebe la lib de su proyecto. Puede ser que haya incluido dos de estos archivos jar en los que esté disponible la misma clase o digamos que una clase en el código puede ser refrendado en dos archivos jar. En tal caso, también el eclipse deja de ayudar al código ya que está totalmente confundido.

Mejor manera de verificar esto es ir al archivo donde la asistencia no está funcionando y comentar todas las importaciones allí, que agregar las importaciones una por una y verificar en cada importación si la asistencia de código está funcionando o no. Puede encontrar fácilmente la clase con refrences duplicados.

Cuestiones relacionadas