Текстовый редактор со ссылками на вызовы функций

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

Эта функция вызывается из:

  • function1, строка 154, source1.c
  • function3, строка 500, source2.c

Мне понравилась эта функция, и я скучаю по ней. Есть ли какой-нибудь реальный редактор с такой функцией?

Я нахожусь на Windows, но если я могу получить эту функцию, я могу купить Mac:-D (шучу)

Обновление я использую php. Мой пример был с.c файлами, потому что я использовал этот редактор с

3 ответа

Решение

Самые последние версии Kate, расширенного текстового редактора KDE, поставляются с плагином ctags, который делает именно то, что вам нужно. Начиная с KDE 4, вы можете установить некоторые программы KDE в Windows благодаря проекту KDE на Windows. Кейт - одна из тех, кого ты можешь установить.

После того, как вы запустили его, перейдите в " Настройки" -> "Настроить Kate...", выберите " Плагины" на левой панели и включите плагин ctags.

Поскольку ваш пример возвращает результаты вызова функции из нескольких файлов, вам, вероятно, нужен не простой текстовый редактор, а скорее IDE (интегрированная среда разработки) для C. То, что вы описываете, является стандартной функцией, которая, вероятно, присутствует в каждом современном C(++) IDE. Исходя из моего личного опыта, Visual Studio (например, Visual C++ 2008 Express Edition) поддерживает как "Перейти к определению", так и "Найти ссылки".

Как упоминалось ранее, это возможно практически на любом современном редакторе. Назовите несколько альтернатив, если вы все еще ищете:

ctags был упомянут. cscope улучшает ctags, фактически анализируя код, чтобы он мог различать, скажем, строку поиска в комментарии и строку поиска в реальном коде. Не уверен, как он обрабатывает обратные вызовы в PHP, поскольку вы, ребята, просто передаете имя функции в виде строки, верно?

vim интегрируется с ctags и cscope, как и emacs.

Я полагаю, что vim также имеет встроенную возможность переходить от вызова к определению и (реализуется как простой поиск строк) циклически проходить через вызовы функции. Он также имеет удобную функцию запроса документации (по умолчанию, справочных страниц, но настраиваемую для других целей) по имени функции. Это одна команда одним нажатием. vim доступен на Win32 как клиент текстового режима или приложение с графическим интерфейсом (называемое gvim).

Другие вопросы по тегам