2010-01-27 63 views
3

我在多語言環境下工作和使用Vim + ctags的用於導航的代碼。但是我們也使用CORBA,並且exuberant ctags不解析IDL文件。用於CORBA IDL的ctags生成器?

有誰知道一個ctags的兼容標籤發生器IDL的?

回答

5

如果你使用一個簡單的正則表達式解析器那麼它是一個相當簡單的練習,以延長旺盛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; 
}