blogに引っ越しました。0.2がつかえるようになると思います。これを以てバグ報告の受付を開始します。できてないこともあるけれど、数が減ってきたのである程度つかえるレベルになってきたと思います。̄UリリーススケジュールRedmineのトラッカーが「機能」か「致命的」になっているものが全て完了した時点でRC1を公開(tarball)、致命的な不具合があれば修正して、数日サイクルでRCをリリースしていき、一週間大きな問題が見つからなければ0.2をリリースです。9/30あたりになればいいんだけどな。新機能ちょいちょい言ってますがざっとおさらい。前回のエントリで説明したとおりです。人によっては、拾ってきて入れてるプラグインが対応して無くて起動できなくなると言ったこともあるでしょう。マルチペインマルチペインに正式対応しました。二つ以上タブがあるペインのタブを右クリックすると、「新規ペインを作成」というコマンドが出てきます。これで新しいペインが一番左にできて、そのタブがそこに移動します。今までの怪しい隙間にD&Dで増えるというのはないです。ペインの構造が大幅に変わったので、0.1系のペイン情報は失われています。設定タブを廃止しました。ステータスバーの右にあるネギレンチアイコンをクリックすると、設定ウィンドウがポップアップします。設定はいままでどおり、触ったら即反映されます。決定ボタンなどはないので、設定が終わったらWMの機能を使って設定ウィンドウを閉じてください。プロフィールプラグインプロフィールプラグインを書き直しています。レイアウトが大幅に変わったことと、ふぁぼ・ふぁぼられ数が見れるようになったことが変更点です。フォーカス操作系のコマンド左右のタブに移動する等、キーボード操作をしやすくするmikutterコマンドを大量に追加しました。ショートカットキーの割り当て画面考えないとそろそろきつくなってきましたね。この世の全てをそこに置いてきたいろんなプラグインにどさくさに紛れて隠し機能を追加しました。あと、いい忘れてる機能もありそうです。バグ報告クラッシュしたらレポートを送ってやってください。バックトレースをコピペしてRedmineで適切に報告してくれたら、より早く対応できます。バグ報告はRedmineでお願いします。Twitter上で報告されてもチケット化が追いつかないし、そもそもバグの報告から修正完了までの流れを扱うのに不向きです。流れが早いため他の人との情報の共有がうまく行きません。一応リプライで言われても聞きますが、基本的にTL上にいる時は休憩中なので、その場で聞いてるだけですぐに忘れる、ということがしばしばあります。質問はTwitterで結構です。アカウントを持ってる人には最終的なチケットの作成はお願いすると思います。mikutterのRedmineアカウントを持っていない人で、報告するのに登録してやってもいいという方は、登録フォームから登録してください。アクティベートは手動で行うので、登録したらリプとかで知らせてください。チケット作成の流れはこちらの文書を参照してください。Redmineで残作業を確認するにはこちらから。コンソールのように、実装してあるのにまだチケットが残っているものは、現在作業中ということです。系と互換性が失われた部分がいくつかあり、プラグインを開発している人にはお手数ですが自分のプラグインに手を入れてもらわなけばいけなくなりました。それもこれもクーラーが壊れたのが悪いんです。みなさんのプラグインをどうやって移行していけばいいかを簡単に説明します。今回は、あくまで0.1用のプラグインが「動く」ようになることを主眼に説明します。最小ステップで動くようにする方法を紹介します。したがって、0.2対応のプラグインを書くためのドキュメントとしてはあまり使えません。目玉の変更はGUI関連に大幅に手が入ったことです。これにより、複雑なGUIをもったプラグインが動作しない場合があります。基本的には必ず書き替えなければならないと考えてください。イベントでそれをGUIに渡して、適切な場所に配置されていました。これからはGtkは基本的には使いません。いうスタイルをとっています。いう目論見があります。インターフェイスを定義することには向いていません。(そして、いくつかのmikutterプラグインは未だにこの古い方法でタブを構築しています)。Gtk::TimeLineもそのままでいい。(Gtk::TimeLineは昨日あたりまでバグで動作してませんでしたが、今はもう大丈夫です)あとどうでもいいんですけど、registっていう英単語はないんですってね。なんであると思い込んでたんだろう。イベント名なので単純に変えられないし。早くこんな黒歴史イベント消し去りたいです。このイベントを使わずにもっとクールに書く方法はあるんですが、今回の範囲外なのでカット。使って設定を挿入することに変わりはありません。これについても、内部のAPIは完全に互換性があります。廃止されたイベント内部でしかほとんど使っていなかったような、Gtk関係のフィルタを削除しました。変わっていませんが、mikutterのUIの構造は大幅に変わっているので、安直に代替できるものはほとんどの場合ありません。Gtkウィジェットのツリー構造を直接操作するようなプラグインも(多分見たことないけど)動かなくなります。コマンドおそらく一番多くの人にとって問題になるのはmikutterコマンドです。これは今回どうしても変更せざるを得ませんでした。メソッドを使用します。従来の書き方をおさらいしてみましょう。中に入れるハッシュの中にもスラッグを書いておかなければいけません。好ましいAPIではありませんでした。フィルタなので、最後に引数を配列で返す必要があります。ミスをする原因にしかなりません。0.2では以上の点を改善しています。commandメソッドが追加されました。従来渡していたHashと同じ物を渡します。設定されている値が流用されます。使うようになりました。Hashが加工されているとお考えください。いうかそうなってます。これは単純に、よくある条件を定数にまとめたもので、あえて使う必要はありません。mikutterの「core/plugin/command/conditions.rb」にまとめられています。実は引数に渡される構造体にも若干の変化があるのですが、それは次の実行部分の話にまとめます。ロールどのウィジェット上でコマンドを実行するかを指定する部分で、条件や実行時に渡ってくる引数が変わります。