2009-05-16 29 views
26

Rrecently Empecé a usar NetBeans 6.7 beta para el desarrollo de PHP en lugar de Textmate y MacGDBp. Estoy bastante sorprendido con su conjunto de características y la mayoría de todo funcionó de la caja, o se configuró fácilmente a mi gusto.Finalización del código de NetBeans PHP

Tengo un problema con las funciones de finalización de código; funcionan para funciones integradas, SPL y parte de mi código, pero no todo mi código, específicamente, nunca funciona para ningún método en mis clases, independientemente de los comentarios de PHPDoc.

Parece que no puedo encontrar ninguna pregunta decente, y mucho menos respuestas sobre este tema específico en cualquier lugar. Parece que todos los demás que tienen problemas con la finalización del código simplemente no han habilitado la función emergente automático.

Entonces la gran pregunta es:

¿Hay alguna manera para influir en el código de caché de finalización, o algo que tengo que añadir a mi código para hacer que funcione? Me gustaría tener el código completo para los métodos que escribo.

PS: he probado varias versiones anteriores de netbeans, todas presentan el mismo problema.

edit: He puesto un .zip de mi proyecto de prueba actual. get it here. Es un proyecto muy joven, piensa un día y medio.

edit2: A continuación se muestra una captura de pantalla de lo que estoy viendo. Como puede ver, no completa casi nada, ni tampoco ve la documentación de PHPDoc.

alt text http://develop.theredhead.nl/~kris/stackoverflow/netbeans-code-completion-fail-screenshot.png

+0

¿Puede proporcionar un código completo + muestra de PHPDoc para que podamos probarlo? –

+0

Estoy usando Netbeans 6.5 en Mac y se autocompleta para todos mis códigos y clases, ¿podría ser exclusivamente una cosa de 6.7 Beta? – karim79

+0

Miedo no, 6.1 y 6.5 hicieron exactamente lo mismo, solo luciendo un poco menos atractivo haciéndolo. – Kris

Respuesta

42

He intentado abrir su proyecto, y la terminación parece estar funcionando muy bien para mí.

Lo único que se me ocurre es tratar de eliminar todo el caché de NB, que debe ubicarse en $HOME/.netbeans/$VERSION/var/cache/. Esta es una conjetura salvaje

Crear una copia de seguridad primero, ¡No probé esto!

Si eso falla, tal vez deberías intentar crear un nuevo proyecto, tal vez eso patee a NB en el trasero.

Tenga en cuenta que en NB 7.2 beta, la memoria caché se ha movido a $ HOME/.cache/netbeans/$ VERSION.

+2

Estaba realmente reacio a intentar esto, pero en realidad solucionó el problema. (rm -rf'ing el caché) – Kris

+0

Kewl, ahora sé qué hacer si esto me sucede alguna vez :) Extraño que sucedió en absoluto ... –

+0

¡Trabajó para mí, gracias! –

2

Lo que funcionó para mí fue borrar la memoria caché, y luego incluir explícitamente algunos subdirectorios clave en la ruta Global include. Parece que, por alguna razón, NB 6.7 no estaba repurgando los directorios.

incluso a nivel de proyecto también trabajaron Proyecto-> Propiedades-> ruta de inclusión Netbeans 7,01 + Windows 7

2

Lo que funcionó para mí fue eliminar la carpeta nbproject de edad (que se creó en las ventanas) y volver a crear el PHP proyecto de fuentes existentes. Esto está en NB 7.0.1 Mac OS X. Borrar la memoria caché no funcionó para mí.

+0

No me he encontrado con el mismo problema desde netbeans 7.0 (aunque la finalización del código aún puede ser escamosa de vez en cuando) – Kris

2

Tenga en cuenta la sintaxis @property something.Si el objeto algo ya no existe en su código, NetBeans podría tener problemas para completar el código correctamente. Considere ejemplo:

/** in main file: **/ 

use ABC as _ ; 

/** in file ABC: **/ 

/** 
    * @property \Something $something 
    */ 

Si no se utiliza $something más, NetBeans muy probablemente generará una excepción, dejando así de completar el código.

1

Si, por ejemplo, abre un archivo php con netbeans sin ser parte de un proyecto, la finalización del código no funciona en absoluto. Lo que necesita hacer es crear un proyecto que tenga ese archivo.

Probado esto en NetBeans 7.0.1

Cuestiones relacionadas