* Gleb Stiblo [050228 11:38]: > Кстати, кто из редакторов/IDE и какие типы тэгов поддерживает(emacs vs > normal): > kdevelop, > anjuta, > vim, > emacs, > кто больше? man ctags: Vi(1) and its derivatives (e.g. Elvis, Vim, Vile, Lemmy), CRiSP, Emacs, FTE (Folding Text Editor), JED, jEdit, Mined, NEdit (Nirvana Edit), TSE (The SemWare Editor), UltraEdit, WorkSpace, X2, Zeus > Это я к тому, что, если делать тэги общесистемными, так надо, что бы их > пользовали все IDE. Предлагаю proposal: Теги разбиваются по языкам програмирования. Rationale: В разных язвках програмирования могут быть функции (переменные, константы) с одинаковыми именами. Для vim это реализуется на уровне ftplugin'ов, я даже такой нарисую. В пределах одного языка теги из всех пакетов складываются в один каталог. Один пакет - один файл тегов на язык: /usr/share/tags/$language/%name Поддерживаемые языки, поумлочательные каталоги (опционально - shell-pattern имени файла), где эти теги ищутся, типы тегов (ctags --list-kinds): + C/C++ (теоретически можно сказать что это один язык) /usr/include c,d,e,g,m,n,p,s,t,u,x (не используются f,l,v) + Lisp /usr/share/{emacs,xemacs} (*.el) f + Perl /usr/lib/perl5 (*.p[lmh]) c,s (не используется s) + PHP /usr/lib/php/pear (*.php) c,d,f,v + Python /usr/lib/python* (*.py, наверно кроме __init__.py) c,f,m + Ruby /usr/share/ruby (*.rb) c,f,F,m + Scheme /usr/share/guile (*.scm) f,s + Sh /etc (на самом деле нас интересуют только файлы functions: find /etc /usr -type f -name functions /etc/chroot.d/functions /etc/sisyphus/functions /etc/rc.d/init.d/functions /etc/net/scripts/functions /etc/control.d/functions /usr/share/separator/functions /usr/share/cook/functions -- (этот попал сюда по ошибке ;-) /usr/share/alternatives/functions /usr/share/hasher/functions /usr/lib/rpm/functions плюс ко всему ctags для этих файлов не определяет автоматически язык, приходится использовать --language-force) + Tcl /usr/share/tcl (*.tcl, кроме pkgIndex.tcl) c,m,p + Vim /usr/share/vim a,f,v Ну это в принципе всё, что может встретится в дистрибутиве в установленной из пакетов системе. По поводу find-tags - получается один вызов ctags на язык (потому как мы хотим держать теги для разных языков в разных файлах). Список файлов либо генерится самим скриптом find-tags, при этом идёт автоматический поиск по всем поддерживаемым языкам, либо передаётся в виде аргумент(а,ов) командной строки, при этом появляется обязательный параметр - язык. Критикуйте, но учтите, что я это всё пишу в ни разу не выспавшемся состоянии. -- Regards, Sir Raorn.