helm-gtags.elを書いた
ここの内容は古いのでこちらを参照してください。
はじめに
GNU globalの helm interfaceである helm-gtags.elを書きました。
私が helmに移行できない最大の理由として helm-gtags.elがないと
いうのがあったんですけど、待ってても出ないんで自分で作りました。
なお anything-gtags.elとは互換性はありません。
anything-gtags.elは gtags.elの結果を加工して、anythingインタフェースで
表示するということで、gtags.elの設定をしていれば anything-gtags.elを
requireするだけで、anythingインタフェースで使えるという利点があります。
ただこのような作りのため、処理に時間がかかりカーネル規模のソースで利用
した場合、表示まで若干時間がかかりました。helm-gtags.elでは gtags.elの
機能を一部利用していますが、候補の生成は自前で行なっているので、結果の
表示が早くなっています(カーネル規模でないと変わらないかもしれないですが)。
依存関係
- gtags.el
設定
anything-gtags.elと違い, 独自の設定が必要になります。
(setq gtags-mode-hook '(lambda () (local-set-key (kbd "M-t") 'helm-gtags-find-tag) (local-set-key (kbd "M-r") 'helm-gtags-find-rtag) (local-set-key (kbd "M-s") 'helm-gtags-find-symbol) (local-set-key (kbd "C-t") 'helm-gtags-pop-stack))) ;; customize (setq helm-c-gtags-path-style 'root) ;; root(default) or relative or absolute (setq helm-c-gtags-ignore-case nil) ;; Default is nil ;;; hook for gtags (add-hook 'c-mode-common-hook 'gtags-mode) (add-hook 'c++-mode-hook 'gtags-mode) (add-hook 'java-mode-hook 'gtags-mode) (add-hook 'asm-mode 'gtags-mode)