cedet導入挫折記

以前言っていた cedet を WindowsXP + Cygwin + Meadow3 な環境に
導入しようといて,挫折したでござるの巻き。


2日間,合わせて,十数時間弄ばれたよ。。。
英語のページはもちろんのこと,中国語のページを参考にして
やってみたけど,うまくいかず。
cygwinとは,仲が悪いのか?
_EXFUNなるマクロを設定に追加したりしてみたが,うまくいかず。
参考にしたページによると,STLについても,補完できているんだけどなぁ。
くっそー。
願わくば,誰かが実現してくれたらと,以下に参考ページをあげときます。
特に最後の2つのページが参考になります。


http://cedet.sourceforge.net/intellisense.shtml
http://72.14.235.132/search?q=cache:kikod7SdF1QJ:osdir.com/ml/emacs.cedet/2007-05/msg00018.html+%22semantic-dependency-system-include-path%22&cd=3&hl=en&ct=clnk&gl=jp&client=firefox
http://osdir.com/ml/emacs.cedet/2007-05/msg00018.html
http://72.14.235.132/search?q=cache:fXAYGDR2qVcJ:jamsa.javaeye.com/blog/277956+%22semantic-add-system-include%22+cygwin&cd=1&hl=en&ct=clnk&gl=jp&client=firefox
http://jamsa.javaeye.com/blog/277956
http://www.opensource-archive.org/showthread.php?t=120961
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=vim&Number=687565&page=0&view=collapsed&sb=5&o=0&fpart=


以下の2つのページに,実現できている画像があります。
http://freelet.blogspot.com/2008/12/semanticc.html
http://www.fengyj.net/wordpress/?p=97



んで,今はコメントアウトすることになった,.emacs の中身をさらしておきます。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; cedet
;; (require 'cedet)
;; (require 'semantic-ia)
;; (require 'semantic-gcc)
;; ;; Enable some semantic features that provide basic coding assistance.
;; (semantic-load-enable-code-helpers)
;; (setq semantic-load-turn-useful-things-on t)

;; for c-common-mode
;; (eval-after-load "semantic-c"
;;   '(dolist (d (list
;;               "c:/cygwin/usr/lib/gcc/i686-pc-cygwin/4.3.2/include"
;;               "c:/cygwin/usr/lib/gcc/i686-pc-cygwin/4.3.2/include-fixed"
;;               "c:/cygwin/usr/include"
;;               "c:/cygwin/usr/lib/gcc/i686-pc-cygwin/4.3.2/../../../../include/w32api"))
;;              (semantic-add-system-include d)))

;; (eval-after-load "semantic-c"
;;   '(setq semantic-lex-c-preprocessor-symbol-map
;;         (cons '("_EXPARM(name, proto)" . "(* name) proto")
;;               (cons '("_EXFUN(name, proto)" . "__cdecl name proto")
;;                     semantic-lex-c-preprocessor-symbol-map))))
;; (add-to-list 'semantic-lex-c-preprocessor-symbol-file "/usr/include/_ansi.h")
;; (add-to-list 'semantic-lex-c-preprocessor-symbol-file "/usr/include/sys/config.h")
;; (add-to-list 'semantic-lex-c-preprocessor-symbol-file "/usr/include/cygwin/config.h")


;; (require 'semanticdb)
;; (setq-default semanticdb-default-save-directory
;;               (expand-file-name "~/.emacs.d/semanticdb"))


それから,gccシンボリックリンクになっているから,そこにも注意。
つまり,cedet/semantic/bovine/semantic-gcc.el の中身のgccgcc-4とかにしたり,
cppをcpp-4にしたり。バイトコンパイルするのも忘れずに。
けど,cedet/semantic/bovine/semantic-c.el の91行目で,

;;; Compile Options
;;
;; Compiler options need to show up after path setup, but before
;; the preprocessor section.

(when (member system-type '(gnu gnu/linux darwin cygwin))
  (semantic-gcc-setup))

されているから,semantic-gcc-setup が動かないと思ったです。
そこで,リストを,'(gnu gnu/linux darwin cygwin windows-nt) にして,
バイトコンパイルしてみたけど,だめぽ。

感想

Cに関しては,そこそこ補完できた。たとえば,

struct stat stbuf;
stbuf.

で,補完すると,st_ が,ほいでもっかいいくと,メンバが表示されると。
結局,VSのインテリセンスには勝てないということかな?
というか,補完なんか使わずに全部記憶せよ!!という意見もあったり。


・・・ただただ,疲れた。。。