新しい consel-gtags.el を試してみたらパッチが必要だった
こまった
counsel-gtags--select-file-ivy-parameters でコールしている string-empty-p という関数がないようで動かない。
Symbol’s function definition is void: string-empty-p
とエラー終了。
対応
『やさしい Emacs-Lisp講座』を参考に scratch バッファで
- (setq debug-on-error t) <C-j> として、その後
- counsel-gtags-dwim を実行(タグジャンプしてみただけ)
- バックトレースが表示される。みると counsel-gtags--select-file-ivy-parameters でエラー発生。
- クリックしてエラー発生関数に飛び M-x edebug-defun する
- もう一度実行させて関数内をステップ実行。
として確認した。
(if (string-empty-p tagname) ...)
という記述を変更する。↓
(if (= (length tagname) 0) ...)
長さが 0 の判定にした。
修正後
emacs-lisp-byte-compile-and-load
でバイトコンパイルして再ロード。
最後に edebug-defun の効果を消すために対象関数の中で
C-M-x (eval-defun)
を実行。これでデバッグ機能なしのふつうの関数が再定義されるらしい。
参考資料
おわりに
以前も file-truename を呼ぶためにシンボリックリンクのファイルが開けない・・・という動きになってしまい file-truename を使わないようにしたことがあった。今回はそれは大丈夫なのかな??