Завершение PHP-кода NetBeans - PullRequest
26 голосов
/ 17 мая 2009

Недавно я начал использовать NetBeans 6.7 beta для разработки PHP вместо Textmate и MacGDBp . Я довольно удивлен его набором функций, и большинство из них работали из коробки или были легко настроены по моему вкусу.

У меня проблема с функциями завершения кода; они работают для встроенных функций, SPL и некоторого моего кода, но не для всего моего кода, в частности, он никогда не работает ни для каких методов в моих классах, независимо от комментариев PHPDoc.

Кажется, я нигде не могу найти достойных вопросов, не говоря уже об ответах на эту конкретную тему. Похоже, что все остальные, у кого есть проблемы с завершением кода, просто не включили функцию автоматического всплывающего окна.

Итак, большой вопрос:

Есть ли какой-либо способ повлиять на кеш завершения кода или что-то, что я должен добавить в свой код, чтобы он работал? Мне бы очень хотелось иметь завершение кода для методов, которые я пишу.

PS : я пробовал несколько более старых версий netbeans, все они имеют одну и ту же проблему.

edit : Я положил ZIP-архив моего текущего тестового проекта. получите это здесь . Это очень молодой проект, думаю, полтора дня.

edit2 : Ниже приведен скриншот того, на что я смотрю. Как вы можете видеть, он не может выполнить почти ничего, равно как и документацию по PHPDoc.

альтернативный текст http://develop.theredhead.nl/~kris/stackoverflow/netbeans-code-completion-fail-screenshot.png

Ответы [ 5 ]

42 голосов
/ 17 мая 2009

Я пытался открыть ваш проект, и завершение, кажется, работает нормально для меня.

Единственное, о чем я могу думать, это попытаться удалить весь кэш NB, который должен находиться в $HOME/.netbeans/$VERSION/var/cache/. Это дикая догадка

Сначала создайте резервную копию , я не пробовал!

Если это не удастся, возможно, вам следует попытаться создать новый проект, возможно, это пойдет NB в задницу.

Обратите внимание, что в бета-версии NB 7.2 кэш был перемещен в $ HOME / .cache / netbeans / $ VERSION.

2 голосов
/ 24 ноября 2011

Помните о синтаксисе @property something. Если объект что-то больше не существует в вашем коде, у NetBeans могут возникнуть проблемы с правильным завершением кода. Рассмотрим пример:

/** in main file: **/

use ABC as _ ;

/** in file ABC: **/

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

Если вы больше не используете $something, NetBeans, скорее всего, сгенерирует исключение, поэтому не сможет завершить код.

2 голосов
/ 31 августа 2011

Для меня сработало удаление старой папки nbproject (которая была создана в windows) и воссоздание проекта PHP из существующих источников. Это на NB 7.0.1 Mac OS X. Очистка кеша у меня не сработала.

2 голосов
/ 27 августа 2009

Для меня сработало очищение кеша, а затем явное включение некоторых ключевых подкаталогов в глобальный путь включения. Похоже, что по какой-то причине NB 6.7 не рекурсировал каталоги.

В том числе на уровне проекта тоже работал Проект-> Свойства-> Включить путь Netbeans 7.01 + Windows 7

1 голос
/ 24 ноября 2011

Если, например, вы открываете php-файл с NetBeans, не будучи частью проекта, завершение кода вообще не работает. Что вам нужно сделать, это создать проект, содержащий этот файл.

Протестировано на NetBeans 7.0.1

...