首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上设置Emacs23.4、CEDET1.1和SemanticDB以使用Global

在Windows上设置Emacs23.4、CEDET1.1和SemanticDB以使用Global
EN

Stack Overflow用户
提问于 2012-05-16 19:26:01
回答 1查看 2.4K关注 0票数 5

我一直试图让我的Emacs配置用于Java开发。这是相当不错的-我已经让马拉巴尔模式工作,并让GNU全球工作的标签浏览。有一件事我无法做到,那就是让语义数据库正确地使用gnu全局。我的进口品都没找到。

首先,这是一个Maven多模块项目,所有源都从顶级根项目文件夹中签出。所有其他项目都在目录树中的这个项目下面。这个根文件夹中只有一个GTAGS数据库,涵盖了所有内容。

有用的东西:

  • M-x gtags-find-tag RET symbol RET工作正常,所以数据库很好,全局可以找到it.
  • M-x cedet-gnu-global-version-check工作,并报告说我的版本是good.
  • M-x cedet-gnu-global-expand-filename works
  • M-x semanticdb-find-test-translate-path,当在Java
  • 中将JDK源代码文件夹设置为系统包含文件夹时,good.
  • M-x cedet-gnu-global-expand-filenameworks
  • M-x semanticdb-find-test-translate-path显示了一个“global”,因此对核心

导入进行了正确的分析。

我的java配置如下(cedet初始化在文件的前面):

代码语言:javascript
复制
(add-local-load-path "malabar/lisp")

(require 'malabar-mode)
(setq malabar-groovy-lib-dir (concat emacs-local-site-lisp "malabar/lib"))
(add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode))

;; enable semanticdb support for gnu global
(when (cedet-gnu-global-version-check t)
  (semanticdb-enable-gnu-global-databases 'java-mode))

(add-hook 'java-mode-hook
    (lambda ()
    (gtags-mode 1)))

(add-hook 'java-mode-hook 'flymake-mode-on)

(defun my-java-flymake-init ()
  (list "javac" (list (flymake-init-create-temp-buffer-copy
                   'flymake-create-temp-with-folder-structure))))

(add-to-list 'flymake-allowed-file-name-masks
         '("\\.java$" my-java-flymake-init flymake-simple-cleanup))

(add-hook 'java-mode-hook
      '(lambda ()
         (semantic-add-system-include (getenv "JAVA_HOME") 'java-mode)))
EN

回答 1

Stack Overflow用户

发布于 2012-05-24 23:15:34

答案与如何设置项目以及是否使用EDE有关。EDE是Emacs Development (在IDE上播放),也是CEDET跟踪哪些文件属于您的项目的方式。这个限制器与性能(搜索更少的东西)和防止配置从一个项目流到另一个项目有关。

不幸的是,CEDET/EDE尚未支持Maven。但是,您可以标记项目的根,我猜ede(通常用于C++项目)可能就足够了。我们可能应该做一个java版本。

无论如何,EDE可以配置为使用Global快速查找文件(请参阅带有EDE和Semantic的Global支持手册),但是GTAGS文件需要位于项目根。

如果您在项目-1中,并期望跳转到项目-2中的文件,而GTAGS是项目-1的根,那么它将无法工作。您必须将GTAGS文件和EDE项目移至公共父目录。

在当前的设置中,如果所有内容都位于GTAGS的公共目录下,则更有可能只需设置EDE项目就可以挂起GTAGS文件查找功能。

在cedet邮件列表存档中有一些线程,其中有几个人在这方面取得了一些成功。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10625328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档