【问题标题】:don't emacs completion and cedet semantic completion use same tag file不要 emacs 完成和 cedet 语义完成使用相同的标记文件
【发布时间】:2012-12-08 20:48:35
【问题描述】:

我认为两个 emacs 默认完成和语义完成都基于相同的标记文件完成它们的工作,但现在我看到了其他东西:

这是 emacs 默认通过 ESC + TAB 完成的结果:

这是语义完成的结果:

这是怎么回事?!他们不使用相同的标签文件吗?如何找到它们正在使用的标签文件?

【问题讨论】:

    标签: emacs23 cedet tab-completion


    【解决方案1】:

    标签表有多个,扫描标签表的方式有多种。

    我做了:C-h k M-TAB 它说:

    Perform tags completion on the text around point.
    If a tags table is loaded, call `complete-tag'.
    Otherwise, if Semantic is active, call `semantic-ia-complete-symbol'.
    

    Complete-tag 使用来自 etags 的标签表。它是一个可能名为TAGS 的文件,如果您之前使用M-. 跳转到一个标签,它将使用它。

    然后它会尝试使用列出的语义功能。首先尝试使用“智能完成”。这基本上意味着它将分析本地上下文,并尝试找出一个简短的智能选项列表,按数据类型等过滤。如果失败,它将访问限制在当前文件中的语义标签表的其余部分,以防止符号过载。 Semantic 的标签在 ~/.semanticdb 中,通过目录命名的文件保存。这些表也用于智能补全,其中包含比TAGS 更多的信息,包括可用于提高智能补全过滤质量的数据类型和参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-11
      • 2011-05-03
      • 2014-08-08
      • 2012-10-09
      • 2011-04-28
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多