0

我尝试使用 CEDET 在 Emacs 中自动完成,这对于 C/C++ 来说效果很好。但是我找不到任何关于如何在没有 JDEE 的帮助下将 CEDET 与 Java 一起使用的信息,JDEE 被认为已经过时并且与 CEDET 1.1 不兼容。我使用此处找到的实用程序获得了一个标签文件,但我不知道如何将其集成到 CEDET 系统中。根据 CEDET 的网站,这是可能的。但他们没有解释如何做到这一点。有人愿意回答这个问题吗?

以下是该实用程序生成的标签文件的一些示例:

java.applet.Applet$AccessibleApplet
    protected java.applet.Applet$AccessibleApplet(java.applet.Applet)
    public java.applet.Applet$AccessibleApplet.getAccessibleRole() returns javax.accessibility.AccessibleRole
    public java.applet.Applet$AccessibleApplet.getAccessibleStateSet() returns javax.accessibility.AccessibleStateSet
4

1 回答 1

2

可以让 CEDET 从 .jar 文件中提取标签。它通过使用 javap 以文本形式提取标签,然后解析该数据。

设置起来并不容易,因为在 CEDET 中,查找库文件的位置是 EDE(项目管理系统)的一部分,而不是解析器和智能完成系统的一部分。CEDET 1.1 中唯一支持的基于 Java 的项目是 Android。

基础是首先通过(require 'semanticdb-javap)在 CEDET 1.1 或 CEDET(require 'semantic/db-javap)的 bzr 版本中加载 javap 数据库来启用它。

完成后,您可以通过cedet-java-classpath-extension. 我对接下来会发生什么的细节有点模糊,但人们已经在邮件列表上报告了成功。

如果您使用 bzr 存储库中的 CEDET,则有 ede-java-root 项目,它类似于 ede-cpp-root 项目。该项目类型允许您配置库路径。该文档位于项目类型的 ede/java-root.el 文件中,并向您展示了如何使用它的基础知识。

于 2012-09-01T16:17:53.343 回答