[devel] prepared tags in *-devel and similar packages

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_immo=2Eru?=
Пн Фев 28 17:37:39 MSK 2005


* Gleb Stiblo <g.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.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050228/e8653af1/attachment-0001.bin>


Подробная информация о списке рассылки Devel