генератор ctags для CORBA IDL?

Я работаю в многоязычной среде и использую Vim + ctags для навигации по коду. Однако мы также используем CORBA, и exuberant ctags не анализирует файлы IDL.

Кто-нибудь знает о генераторе тегов, совместимом с ctags, для IDL?


person Dave Kirby    schedule 27.01.2010    source источник


Ответы (2)


Если вы используете простой синтаксический анализатор регулярных выражений, то расширение 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;
}
person Blake7    schedule 07.02.2010

добавить другой язык в ctags довольно просто, используя несколько регулярных выражений и конфигурационный файл ctags.

person veight    schedule 29.02.2012