Генератор ctags для CORBA IDL?
Вопрос
Я работаю в многоязычной среде и использую Vim + ctags для навигации по коду.Однако мы также используем CORBA, и exuberant ctags не анализирует файлы IDL.
Кто-нибудь знает генератор тегов, совместимый с ctags, для IDL?
Решение
Если вы используете простой парсер регулярных выражений, расширение Exuberant Ctags для поддержки другого языка будет довольно тривиальным.
Например, ниже приведен пример парсера регулярных выражений, взятый из Яркие 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.
Не связан с StackOverflow