閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

anything-projectでVisual Studioで書いたソースファイルをanythingする

Visual Studioで書いたコードをEmacsで読みたい、またそのときにanything-project.elを使いたい、と思いました。しかし、デフォルトの設定だとプロジェクトを認識してくれないので、以下のように設定してみました。

(require 'anything-project)
(global-set-key (kbd "C-c C-f") 'anything-project)

(ap:add-project
  :name 'visualstudio
  :look-for 'ap:vs-root-detector
  :include-regexp '("\\.cpp$" "\\.h$" "\\.hpp$" "\\.inl$" "\\.cs$")
)
(defun ap:vs-root-detector (files)
  (subsetp '("\\.sln")
           files
           :test 'string-match))

ソリューションファイル(拡張子が.slnのファイル)があれば、その下にあるソースファイルを列挙する、というだけなのですが、ワイルドカードの指定をどうしたらいいのかわからずにかなり悩んでしまいました。Elispももう少し使えると快適なのでしょうが……。もっと良いやり方もありそうですがまぁ、とりあえずそれらしく動いているので良しとします。

適当なディレクトリでC-c C-fすればソースファイルをanythingできて良い感じです。