为GNU Emacs 23.2.1配置CEDET

12

我最近为 OS X 10.6 构建并安装了 Emacs 23.2.1,它似乎预装了 CEDET 1.0pre7,但我的旧 CEDET 配置失败了(例如 (semantic-load-excessive-code-helpers) 或者甚至 (semantic-load-code-helpers) 未定义),即使我已经在我的 .emacs 文件中添加了以下内容:

(require 'cedet)
(semantic-mode 1)
(require 'semantic)

我错过了什么?

1个回答

17

Emacs集成的CEDET配置是不同的。以下是我如何改编我的旧配置,尽管未经过CEDET插件测试:

(setq integrated-cedet-p (and (>= emacs-major-version 23)
                              (>= emacs-minor-version 2)))

(unless integrated-cedet-p
  (progn
    (setq cedet-lib "/path/foo")
    (setq cedet-info-dir "/path/bar")))

(if (boundp 'cedet-info-dir)
    (add-to-list 'Info-default-directory-list cedet-info-dir))

(if (boundp 'cedet-lib)
    (load-file cedet-lib))

(semantic-mode 1)

(global-ede-mode t)

(if (boundp 'semantic-load-enable-excessive-code-helpers)
    ; Add-on CEDET
    (progn
      (semantic-load-enable-excessive-code-helpers)
      ; TODO: should already be enabled by previous line
      (global-semantic-idle-completions-mode)
      (global-semantic-tag-folding-mode))
   ; Integrated CEDET
  (setq semantic-default-submodes
        '(global-semanticdb-minor-mode
          global-semantic-idle-scheduler-mode
          global-semantic-idle-summary-mode
          global-semantic-idle-completions-mode
          global-semantic-decoration-mode
          global-semantic-highlight-func-mode
          global-semantic-stickyfunc-mode)))

(if (boundp 'semantic-ia) (require 'semantic-ia))
(if (boundp 'semantic-gcc) (require 'semantic-gcc))

我太傻了,对于Emacs 24.1来说,集成测试肯定是错误的。不管怎样,你懂我的意思 :) - Laurynas Biveinis
正是我所需要的,谢谢!你是怎么知道做这个的?有没有我错过的文档记录? - Michael Iatauro
我使用Emacs文档中关于CEDET的章节,并进行了一些源代码浏览,以确保未定义的符号(例如semantic-gcc)被合并到CEDET核心中,因此不需要额外的插件。 - Laurynas Biveinis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接