Я работаю в многоязычной среде и использую Vim + ctags для навигации по коду. Однако мы также используем CORBA, и exuberant ctags не анализирует файлы IDL.
Кто-нибудь знает о генераторе тегов, совместимом с ctags, для IDL?
Я работаю в многоязычной среде и использую Vim + ctags для навигации по коду. Однако мы также используем CORBA, и exuberant ctags не анализирует файлы IDL.
Кто-нибудь знает о генераторе тегов, совместимом с ctags, для IDL?
Если вы используете простой синтаксический анализатор регулярных выражений, то расширение Exuberant Ctags для поддержки другого языка является довольно тривиальным упражнением.
Например, ниже приведен пример анализатора регулярных выражений, взятый со страницы анализатора Exuberant Ctags:
/***************************************************************************
* make.c
* Regex-based parser for makefile macros
**************************************************************************/
/* INCLUDE FILES */
#include "general.h" /* always include first */
#include "parse.h" /* always include */
/* FUNCTION DEFINITIONS */
static void installMakefileRegex (const langType language)
{
addTagRegex (language, "(^|[ \t])([A-Z0-9_]+)[ \t]*:?=", "\\2", "m,macro", "i");
}
/* Create parser definition stucture */
extern parserDefinition* MakefileParser (void)
{
static const char *const patterns [] = { "[Mm]akefile", NULL };
static const char *const extensions [] = { "mak", NULL };
parserDefinition* const def = parserNew ("Makefile");
def->patterns = patterns;
def->extensions = extensions;
def->initialize = installMakefileRegex;
def->regex = TRUE;
return def;
}
добавить другой язык в ctags довольно просто, используя несколько регулярных выражений и конфигурационный файл ctags.