Вопрос

Я работаю в многоязычной среде и использую 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top