exctags5.6 && taglist && vim && php

wDevil

Новичок
exctags5.6 && taglist && vim && php

Совсем недавно начал использовать vim как IDE. Использую больше для php. По
одной из статей в инете ставил плугины, о которых народ говорит must have. И
сразу возник вопрос насчет taglist. Патчи чтобы понимал
private|public|protected применил, вообщем поставилось все без проблем.
Может я не совсем понял назначение этого плугина, но вот как понял я:
служит для навигации по коду. После установки и выставления пары переменных в
.vimrc выглядит оно примерно так
Код:
class
 MyClass
 MyBig

functions
...
...
1. Может я чего-то не понимаю, но ведь совсем неудобно, функции идут одни
список и становится совершенно непонятно какая из них к какому классу
относится, не говоря уже о том, что это методы классов и они успешно путаются с
просто функциями.
2. Не понимает интерфейсы
3. Переменные, которые задаются без инициализации игнорит
Например
Код:
class MyClass {
 private $doc;
...
}
Ведь гораздо удобней было бы что-то а ля:
Код:
Classes
 MyClass
  +testing
  ...
 MyBig
  -method

functions
...
Ну, ясен пень, чтобы раскрывался каждый класс по пробелу и вываливались его
методы. Посмотрел код плугина и параметры, которые можно передавать ctags в
консоли. Вроде в параметрах, там что-то есть подходящее, но ничего толкового
выдавить у меня не получилось, кроме того вимовский скрипт, как я понял, жестко
привязан к формату вывода команды и поменять там что-нибудь будет непросто(2к с
копейками строк кода вимовского скрипта править особого желания нет).

Может я что-то упустил и вышеописанное правится настройкой и параметрами? Буду
рад, если ткнете носом.
Пока что я немного подправил php.c в исходниках, чтоб он понимал интерфейсы,
принимал переменные без инициализации, сделал еще пару изменений и теперь в
виме горит что-то а ля:
Код:
class
 MyClass
...

functions
 +MyClass::function
 -MyClass::func
interfaces
 MyInterface
Если есть нормальное решение? :) Или может я просто не умею "его готовить".. в смысле не так taglist юзаю...
 

tony2001

TeaM PHPClub
никогда не понимал необходимость подобных плугинов.
поставь себе ctags (http://ctags.sourceforge.net/), он позволяет с имени функции/класса/метода/т.п. перемещаться на его определение, т.е. всё, что реально нужно.
 

wDevil

Новичок
Ну так я про него и говорю :) exuberant ctags. все вышеописанное про него...
Патч поставил на ctags5.6. А taglist ет плугин к виму, который вызывает ctags, парсит его вывод и кажит все это добро в виме для навигации...
 

wDevil

Новичок
Всмысле. Для "он позволяет с имени функции/класса/метода/т.п. перемещаться на его определение,". А ты как используешь ctags? Без taglist'a? сам по себе ctags просто генерит tags фаил. а с интерфейсами как? У меня он их не понимал, пока сам не поправил... Я и спрашиваю как кто использует теги...
 

tony2001

TeaM PHPClub
я себе слабо представляю зачем мне может понадобиться список функций, который генерится taglist, именно это я называю навигацией.
а вот возможность перейти с имени функции на её определение - это именно то, чем занимаются ctags & cscope.
 

wDevil

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

tony2001

TeaM PHPClub
>как я понял вим по-умолчанию имеет команды для навигации и поиска по тегам.

нет, индекс тэгов и поиск по ним делают ctags/cscope, vim просто умеет их использовать.
 
Сверху