gtags.el でライブラリも検索
global-5.7.6 + gtags.el-2.5で動作確認済み。
init-gtags.el
(require 'gtags) (defvar gtags-libpath nil "Library directory of language.") (make-variable-buffer-local 'gtags-libpath) (defadvice gtags-goto-tag (before gtags-goto-tag-gtagslibpath activate) (setenv "GTAGSLIBPATH" gtags-libpath)) ;; php-completion.el を使っている場合 (defadvice phpcmp-global-execute-command (before phpcmp-global-execute-command-gtagslibpath activate) (setenv "GTAGSLIBPATH" gtags-libpath))
.emacs.mine
(add-hook 'php-mode-hook (lambda () (let ((file (buffer-file-name))) (cond ((string-match "/askeet/" file) (setq gtags-libpath (expand-file-name "~/local/lib/php/symfony-10/lib"))) ((string-match "/jobeet/" file) (setq gtags-libpath (concat (expand-file-name "~/local/lib/php/zend/library") ":" (expand-file-name "~/local/lib/php/symfony-13/lib") ))) (t nil)))))
global (~/.emacs.d/bin 等の優先的にパスを通してある場所に置く)
#!/bin/sh PATH=/opt/local/bin:/usr/local/bin:/usr/bin if [ "$1" != '-c' -a "$1" != '-cs' ]; then global -a "$@" exit $? fi _GTAGSPATHS=$(global -pr) r=$? [ $r -ne 0 ] && exit $r [ -n "$GTAGSLIBPATH" ] && _GTAGSPATHS=$_GTAGSPATHS:$GTAGSLIBPATH { IFS_SAV="$IFS" IFS=: for dir in `echo "$_GTAGSPATHS" | sed -e 's/^:/.:/' \ -e 's/::/:.:/g' \ -e 's/:$/:./'` do GTAGSROOT=$dir global "$@" done IFS="$IFS_SAV" } | LC_ALL=C sort -u