helm-ls-gitをhelm-for-filesで一緒に表示する
helm-ls-gitという現在いるgitの管理ファイルを表示するhelmコマンドがあります.
これを私はhelm-for-filesで表示した時に一緒に表示させてrecentfなどと一緒に一括検索させていました.
それを実現するためにはhelm-for-files-preferred-list
にソースを追加すれば良いのですが,
helm-ls-gitのソースはデフォルトではnil
であり,
追加するだけでは動きません.
変数を初期設定するためにhelm-ls-git-ls
を呼び出しておくという暴力的手段を用いていたのですが,
アップデートの影響かその方法ではエラーが起きてしまうことがわかりました.
公式ドキュメントを見るとhelm-ls-git-build-git-status-source
を使えと書いてあるのですが,
呼び出しても設定がされません.
コードを見ると,
helm-ls-git-build-git-status-source
はソースを作るだけで,
変数に代入するのは自前でやるようになっていると気がつきました.
以下のコードでエラーなしに一緒に表示することが出来ます.
(require 'helm-ls-git)
(custom-set-variables
'(helm-source-ls-git (helm-ls-git-build-ls-git-source))
'(helm-source-ls-git-status (helm-ls-git-build-git-status-source))
'(helm-for-files-preferred-list
'(helm-source-buffers-list
helm-source-recentf
helm-source-files-in-current-dir
helm-source-ls-git-status
helm-source-ls-git
helm-source-file-cache
helm-source-locate
))
)
helm-source-ls-git-buffers
はgit外のディレクトリで起動するとエラーになるので取り外しました.
ちなみに似たようなコマンドにhelm-cmd-tというのがあるそうです. これはGit以外のバージョン管理システムにも対応しているので, 移行しようと思ったのですが, ソースを混ぜる方法がわからなかったので没になりました.