勉強会が中止になったときに僕がLTをしようと言って以来、手嶋屋では中止→LT大会という慣例ができました。喜ばしい限りです。
ただ、最近中止が多すぎてLTネタも尽きてきました。
「今日は何の話をしようかとネタを探したんですが、見つからず。かと言って僕がPHPのことを話すわけがありません」 「ですよねー」
えっと、redmine.elっていうEmacsライブラリを作ってみました。
これは何?
EmacsからRedmine見たいなーと思って検索してみると以下のような記事を書いてらっしゃる方を見つけました。
emacs から BTS のチケット番号を指定してブラウザでチケットページを開く2 - ポロポロ
おぉ!よさそう。と思ってanything-show-ticket.elをインストールしてみたのですが、チケット番号を指定してブラウザでアクセスするだけ…。チケット番号を覚えてなきゃいけない?
その他にこれといったものも見つけられなかったので、自分で作ることにしました。
と言っても現状では大したことをするわけじゃなくて、最近のチケットなどをanything.elで表示するだけです。
スクリーンショット

設定
anything.elと redmine.elをダウンロードしてload-pathのどこかに置いてください。anything.elのインストール方法はrubikitchさんのブログ記事が参考になります。
その後、以下のコードを.emacs.elに追記します。
(require 'redmine) (setq redmine-issues-uri "http://redmine.openpne.jp/projects/op3/issues.atom") (setq redmine-activity-uri "http://redmine.openpne.jp/projects/op3/activity.atom") (setq redmine-revisions-uri "http://redmine.openpne.jp/projects/op3/repository/revisions.atom");; (追記 3/6 9:34) ;; version 0.02から複数のプロジェクトURLを連想リストで指定するようになりました ;; (追記 3/6 13:40) ;; version 0.2.1から連想リストの形式が変わりました。ドットはなくなり、要素は3つです。3番要素はプロジェクトのAPIキーです(省略可) (require 'redmine) (setq redmine-project-alist '(("OpenPNE3" "http://redmine.openpne.jp/projects/op3/" "Redmine API Key (optional)") ("Redmine" "http://www.redmine.org/projects/redmine/")))
使い方
以下のコマンドを実行すると動作します。チケット、活動、リポジトリの最新情報をanything.elで開き、Returnするとそのページをブラウザで開きます。
M-x redmine-show-issues-all
最近のチケット一覧を表示します。
M-x redmine-show-activity
最近のプロジェクトの活動一覧を表示します。
M-x redmine-show-revisions
最近のコミット一覧を表示します。
M-x redmine-select-project (ver 0.02から)
見るRedmineを変更します。
TODO
- 複数のRedmineを設定できるようにしたいなー → しました (追記 3/6 9:34)
- 自分のチケットだけを表示とかしたかったけどうまくいかなかった
- チケットの検索とかしたかったけど、これはPerlでスクリプト書いたほうがいいかなぁ
- cURLのパスがベタ打ちだから直した方がよい
開発URL
githubに上がっています。Emacs Lispを書くのは初めてなのでつっこみやアドバイスをくれるとうれしいです。folkしてpull requestとかしてもらえるとさらにうれしいです。




emacs使ってると、ブラウザに切り替えてredmineを触って、ログインからプロジェクトいってチケット探して、とか苦痛でしかなかったので、スゴク助かります。
emacsからredmineに新しいチケット作成とかできたらいいなぁ…。
難しいかもしれないけどorg-mode+org-rememberとかと連携したり…。やりすぎか。
現状でもかなり便利に使えています!ありがとうございます。