Closed tkf closed 12 years ago
上の問題は親クラスに該当メソッドが無い場合の問題ですが、もうひとつ、親クラスの該当メソッドが e2wm:$pst-class-super
を呼んでいる場合には別の問題が発生すると思います。確かめた訳では無いですが、無限再帰が起こる気がします。
はい。#22を調べていて、 htwoが動かなくなっていた原因がこの問題でしたので修正をしています。 実装が見つかるか、親クラスがいなくなるまで登っていくようなコードに修正しています。 少々お待ちください。
リプライ速い!ありがとうございます!
修正してみました。継承の階層の制限をなくしてみました。 手元では動作確認できていますが、内部用の関数である 'e2wm:$pst-get-prop' と 'e2wm:method-call' の関数のインタフェースを変えたので、これらを使っている場合はもしかしたらみなさんのパースペクティブ定義で問題が出るかもしれません。 よろしければご確認をよろしくお願いします。
修正ありがとうございます!ちゃんと全パースペクティブをチェックしてから base class の pull request 送るべきでした。ご迷惑をおかけしました。
とんでもない。いろいろ拡張してもらって助かっています。 htwoは使っているわけではなくて、extendのテスト用でしたので問題ないです。
70ac168d5941d3cddf8123e98c2107fede0efd2c で修正されたので閉じます。
こんにちは。先日の base class を加えた issue #18 ですが、また別の問題が発生しました。
デフォルトで定義されている perspective class の派生クラスを作ると、プラグインが update されなくなります。これは、
e2wm:method-call
が1段階の継承しかサポートしてないことが原因で、e2wm:dp-base-update
が呼ばれなくなるからです。コメントに明記されているのでバグとは言い難いですが、カスタマイズのためにクラスシステムがあると思うので、できれば何段階でも継承出来るほうが良いと思いますが、どうでしょうか?
現状のコードで拡張しようとすると、↓のようなコードを書く必要があります。
ちなみに、フルのコードは https://github.com/tkf/ne2wm/blob/master/ne2wm-pst-code%2B.el に置いてあります。