Проблема с обильными ctags в Mac OS X - PullRequest
3 голосов
/ 17 июня 2010

Я пытаюсь сгенерировать теги для стандартной библиотеки C, используя Exuberant Ctags 5.8, однако кажется, что заголовки не анализируются полностью ... Например, когда я генерирую теги для /usr/include/string.h, Я получаю это:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME  Exuberant Ctags //
!_TAG_PROGRAM_URL   http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.8 //
NULL    /usr/include/string.h   /^#define NULL /;"  d
_SIZE_T /usr/include/string.h   /^#define   _SIZE_T$/;" d
_SSIZE_T    /usr/include/string.h   /^#define _SSIZE_T$/;"  d
_STRING_H_  /usr/include/string.h   /^#define   _STRING_H_$/;"  d
size_t  /usr/include/string.h   /^typedef   __darwin_size_t     size_t;$/;" t
ssize_t /usr/include/string.h   /^typedef __darwin_ssize_t  ssize_t;$/;"    t
strerror    /usr/include/string.h   /^char  *strerror(int) __DARWIN_ALIAS(strerror);$/;"    v

Очевидно, что многие функции отсутствуют (strcpy, strlen, strcmp и т. Д.) Вот ссылка на фактический заголовочный файл: http://pastie.org/private/lvgvtg1lmzaenidg0rvq

Я только что побежал ctags /usr/include/string.h Я делаю что-то не так?Любая помощь будет оценена ...

Ответы [ 2 ]

4 голосов
/ 17 июня 2010

Я полагаю, что ctags по умолчанию не включает прототипы функций, только реализации функций.

Если вы называете это как ctags --c-kinds=+px /usr/include/string.h, это также дает вам объявления?

(Согласно странице руководства здесь , вы можете позвонить ctags −−list−kinds=c, чтобы узнать, что вы можете получить ctags для вывода.)

3 голосов
/ 17 июня 2010

Я нашел соответствующую информацию здесь: http://www.mail-archive.com/debian-bugs-closed@lists.debian.org/msg210327.html

В частности:

ctags по умолчанию не генерирует теги для прототипов функций, только для реальных определений функций.См. Документацию для опции --- видов в ctags (1)

Так что оказывается, что я должен добавить флаг --c-kinds=+p для него, чтобы проанализировать прототипы функций.Я не уверен, почему он не анализирует прототипы по умолчанию?

...