【问题标题】:ctags generator for CORBA IDL?CORBA IDL 的 ctags 生成器?
【发布时间】:2011-01-09 23:31:28
【问题描述】:

我在多语言环境中工作,并使用 Vim + ctags 来导航代码。但是我们也使用 CORBA,并且 exuberant ctags 不解析 IDL 文件。

有人知道用于 IDL 的 ctags 兼容标签生成器吗?

【问题讨论】:

    标签: vim corba idl ctags


    【解决方案1】:

    如果您使用简单的正则表达式解析器,那么扩展 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;
    }
    

    【讨论】:

      【解决方案2】:

      使用一些正则表达式和 ctags 配置文件,add another language 到 ctags 很容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-05
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多