*iroi*

mechairoi の Blog

GTAGSのパスを指定したanything-gtagsのsourceを作る.

(バッファが属する)ProjectのTAGSと(global-modeに応じた)LibraryのTAGSとか同時に使いたいです.

anything-gtags.el でプロジェクトのGTAGSは既に使えるので, GTAGSファイルのパスを指定できるsourceを作って, 複数のsourceを扱うのはanythingにおまかせすることにしました. anything便利.

使い方はこんな感じ. ~/perl5に インストールしているperlのモジュールが入っていてGTAGSを作ってあります.

(defvar anything-c-source-gtags-select-with-home-perl-lib
  (anything-c-source-gtags-select-with-root "GTAGS ~/perl5" "~/perl5"))

(defun my-anything-gtags-select ()
  (interactive)
  (anything-other-buffer
     '(anything-c-source-gtags-select
       anything-c-source-gtags-select-with-home-perl-lib)
     "*anything gtags*"))

( perl用のGTAGSの作り方は gtags(GNU global)をperlとかで使う - *iroi* )

gtags.elやanything-gtags.el内部で使われているglobalコマンドは環境変数GTAGSROOTがあるとカレントディレクトリより優先してそっちを見るようなので、環境変数をdynamic-scope内でローカルに書き換えるマクロを作って囲んだだけです.