Symbol's value as variable is void: helm-swoop-patternなるerrorを吐くようになったので原因を調べてみた。
順当にhelm-swoopのgithubのpageを見てみる
今年(2018)の1/22に:
cf. [Symbol's value as variable is void: helm-swoop-pattern · Issue #123 · ShingoFukuyama/helm-swoop](https://github.com/ShingoFukuyama/helm-swoop/issues/123)
そのものずばりのtitleのissueがfileされている。この中で触れられているように、helmのcoreの方でhelm-default-display-bufferに修正が入って、それが影響しているとのこと。その後のdiffなどを見ている限り、vanillaのまま使っているなら対応済みのようだ。
原因と対策
個人的には、helm-swoop実行時にfull widthで表示させるために、問題になっているhelm-swoop-split-window-functionを自前で設定していたのが原因でerrorが出ていた。helm-default-display-bufferの変更に合わせて適当にargumentを追加しておく:
*** before ***
- (setq helm-swoop-split-window-function
- '(lambda (buffer)
- (helm-default-display-buffer buffer)))
*** after ***
+ '(lambda (buffer &optional resume)
+ (helm-default-display-buffer buffer)))
もしかしたら&optional resumeじゃなくて&rest resumeにしておいた方が、今後またargumentsに変更があった時に対応しやすいかもしれない。
おまけ1. 原因の特定の仕方
(setq debug-on-error t)
(setq helm-swoop-pattern "")
などとお膳立てした後に徐にhelm-swoopを起動するとbacktraceが見られる。
自前の設定が問題だというのはこれで分かった。
おまけ2. helm-occur
helm-swoopはとても便利に使っているが、そのalternativeとなるものも存在している。その一つがhelm-occurで、helm-occurを実行する他に、isearchからもhelm-occur-from-isearchを使えば呼び出せる。
helm-swoopはメンテの頻度が低いとか (だからと言って本家にも取り込まれなさそうだ)、実行速度に問題があるとしてhelm-occurを勧める向きもある。機能の全てではないにしろ、候補の選択に伴ってcursor positionも移動するような設定も可能みたいなので一応紹介はしておく。
ちなみに設定すればmigemoも使える。
0 件のコメント:
コメントを投稿