Вопрос

Несмотря на что кто-то мог бы сказать, Я считаю, что завершение кода (он же Intellisense) - второе лучшее изобретение, когда дело доходит до редакторов кода (первое - это раскраска синтаксиса).Это действительно упрощает кодирование, потому что мне не нужно беспокоиться о том, назвал ли я функцию CalculateReportSums, ReportSumsCalculate или просто GetReportSums.

К сожалению, я еще не нашел редактора кода, который удовлетворительно реализовал бы эту функцию для PHP.И под "удовлетворительным" я подразумеваю "не хуже Visual Studio для C #".

Мой первый выбор текстового редактора - Notepad ++, но в нем есть только список встроенных функций PHP, и он появляется только после нажатия Ctrl + ПРОБЕЛ.Я также пробовал Eclipse + PDT, который лучше, но все еще часто вызывает сбои, иногда вообще выходит из строя без видимой причины (список недоступен) и всегда появляется только тогда, когда я приостанавливаю ввод текста (установка таймаута на некоторое небольшое значение приводит к тому, что список вообще не отображается).

Итак, есть ли там что-нибудь получше?Что-то, что было бы осведомлено обо всех переменных в текущей области видимости, что могло бы следовать include()s, и будет отображать список в режиме реального времени по мере того, как я набираю текст?

Я знаю, что PHP - динамический язык, и идеальное завершение кода в принципе невозможно (потому что вы не знаете, какие переменные будут там до времени выполнения), но все равно должно быть возможно реализовать его в довольно хорошей степени - намного лучше, чем то, что я видел до сих пор.

Добавленный: Чтобы добавить несколько второстепенных моментов - я хочу, чтобы CC был мгновенным, как в Visual Studio.Я ввожу символ, и список отображается в тот же момент.Я ввожу еще один символ, и список становится вдвое меньше, прежде чем я успеваю моргнуть.Почти нулевая загрузка процессора, мгновенные результаты (да здравствуют боги кэширования!).

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

Это было полезно?

Решение

Я обнаружил, что Netbeans имеет лучшее завершение кода, чем Aptana.Когда я работал с codeigniter, Netbeans завершал кодирование для моих статических методов в моделях, где Aptana этого не делала.

С тех пор, как я опубликовал это, JetBrains выпустила PhpStorm и получила ваш rapid fire intellisense, а также еще лучшую подсказку по типу.Имхо, он абсолютно превосходит все остальные.Я использую EAP 2.0 бесплатно уже несколько месяцев.

Другие советы

Вы правы, что intellisense намного сложнее в динамически типизированном языке, таком как php.Рассмотрим, например,

  function get_foo($x) {
       return $x ? new abc() : new xyz();
  }

  get_foo(123)->... can your IDE autocomplete here?

Не знаю насчет PDT, но Netbeans не в состоянии справиться с этим, а phped требует, чтобы 'get_foo' был аннотирован особым образом.

Я еще не пробовал готовящийся веб-сайт от Jetbrains (http://www.jetbrains.com/webide/features/index.html), но выглядит многообещающе в этом отношении (см. скриншот).

Без сомнения, используйте NetBeans, это очень полезно и обладает хорошим интеллектом (ладно, не идеально), но лучше, чем, например, Eclipse.

Я рекомендую вам сетевые приложения . это бесплатно.он доступен для всех платформ, и в основном он хорош для редактирования php, jsp, java, css, html, ...Подходит для SVN, mercurial, плюс вы можете легко интегрировать его с kenai.com...

это помогает с появлением типа IntelliSense.

поверьте мне, я использую его для разработки на php, и это самая подходящая ide, которую я могу найти...

Я использую PhpED (http://www.nusphere.com/), который имеет работоспособную версию этой функции.

примечание:У них есть предложение, указанное на их главной странице. Игнорируй это.Это было заканчивающийся завтра уже, по крайней мере, 4 года.

Я так понимаю, вы работаете на Windows.В Windows я обычно использую phpDesigner (http://www.mpsoftware.dk/phpdesigner.php) который имеет довольно хороший CC.В Linux я использую geany(http://www.geany.org/) или vim, оба из которых имеют CC, в более позднем случае вам нужно будет его настроить.Я обнаружил, что Eclipse слишком раздут, и мне надоело ждать его запуска.:\

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

Я еще не видел ничего, превосходящего Автоматическое завершение, которое было в Zend Studio 5.x.Я пробовал более поздние версии, которые построены на Eclipse, и с таким же успехом мог бы использовать Aptana...

К сожалению, это означает сохранение Windows в виде XP или 2000, поскольку графический интерфейс Java (на котором была построена Zend Studio) не работает в Win7, но для функций, которыми обладает Zend 5, это того стоит.

Мало того, что он автоматически завершит известные функции, он автоматически завершит переменные / функции, которые вы создаете, и не только для вашего текущего файла, но и для любого открытого файла (и я думаю, любого в open project), а также автоматически предложит элементы класса.

Плюс возможность запускать локально внутри самой Zend Studio для тестирования частей кода - это здорово.Если бы только это легко позволяло вам сохранять как в локальной файловой системе, так и загружать на сервер одновременно....(Я просто разрешаю FTP-программе, работающей в фоновом режиме, которая каждые 10 минут загружает любые изменения на сервер).

vim.

http://weierophinney.net/matthew/archives/123-Vim-7-code-completion.html

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

Завершение Word / Кода в VIM

Вы можете попробовать Zend Studio.

http://www.aptana.org/

Помощь в написании кода
Помогает в разработке HTML, CSS, JavaScript, PHP и Ruby.Поддерживает последние спецификации HTML5.Включает информацию об уровне поддержки каждого элемента в основных веб-браузерах

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top