GithubHelp home page GithubHelp logo

Comments (15)

kiwanami avatar kiwanami commented on July 30, 2024

確かに、 :update はほとんど使ってないので、提案していただいた内容でも悪くないかもと思いました。

そもそも、この「各ウインドウへの更新通知」のメカニズムはシンプルすぎて、「更新の理由が分からないため各プラグインが更新すべきかしないべきかを判断することが出来ずに、毎回描画し直すことしかできない」ことが問題かなと思っています。最初に作った時からここは改善したいと思っていて、concurrent.elのcc:channelが完成したら、このあたりの通知を非同期イベントにしてしまおうと思っていました。

そうすると、更新イベントをパースペクティブ自体がsubscribeして各プラグインバッファをまとめて更新し、各プラグインは更新通知が来てもバッファを表示するだけ、ということが出来るかなと思っています。

ただ、この非同期イベント修正はちょっと時間がかかりそうなので、もしtkfさんの方でこちらの修正がすぐ出来て pull request いただけたら取り込みたいと思いますが、お願いしてもよろしいでしょうか?

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

時間あるときにやってみます。パースペクティブのprefixは e2wm:dp-base- で良いですか?

非同期イベント化は楽しみです! monky みたいにプロセスをひとつしか持てないようなやつが各 plugin をバラバラに更新した時にどうなるかがちょっと怖いですが。

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

変数名とか直したほうがよければ、またpull request入れます。

最後のコミット(0fa0549ceaadc046502f3d86f4e61b97decaa132)はもし要らなければ外しても機能は変わらないはずです。

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

最後のコミット修正しました: a9bf7f0

from emacs-window-manager.

kiwanami avatar kiwanami commented on July 30, 2024

すごい!早い!
ありがとうございます!
すぐ確認して取り込みます。

from emacs-window-manager.

kiwanami avatar kiwanami commented on July 30, 2024

問題ないようでしたので取り込みました。
ウインドウ4列とか自分よりもかなり使いこなしてらっしゃるようで、有難い限りです。

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

pull ありがとうございます!意外と単純な変更で済んだので何か見落としてないか心配でした。

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

そういえば e2wm:dp-doc-update 内で super の関数よんでないですが、 doc perspective では plugin 使ってないので今のところ問題無いはずです。ただ、将来的に base perspective を拡張するかもしれないことを考えると super よんだほうが良いかもです。

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

#20 ですが、後方互換性のない変更になっているので、自分でパースペクティブ定義しているユーザーが不便に思うかもしれません。 最近 @myuhe さんがリリースした e2wm-R.el が被害にあいそうです。

解決法として #22 を書いてみました。ただ、この解決法を適用すると base に依存しないクラスをかきたい時に自分で抽象クラスを作ってそれを継承するとうまどろっこしいことをすることになります。個人的にはこのパッチ適用しないほうが良いんじゃないかと思うんですが、互換性を守る重要性が高ければpullしてください。ご迷惑をおかけします。。。

あと、意外と複雑な関数になってしまったので、精査お願いします。

from emacs-window-manager.

tkf avatar tkf commented on July 30, 2024

#23 は2つ前のコメントの e2wm:dp-doc-update に関する fix などで、後方互換性に関するやつとは無関係です。

from emacs-window-manager.

kiwanami avatar kiwanami commented on July 30, 2024

ちょっと調べてみます

from emacs-window-manager.

myuhe avatar myuhe commented on July 30, 2024

なんだか、気を使わせてしまってすみません。。。
後方互換性はなくなりますが、僕もtkfさんが言うように現在のままで良いんじゃないかと思います
現在のバージョンに合わせた変更もそこまで大変なものでもなさそうですし。

from emacs-window-manager.

kiwanami avatar kiwanami commented on July 30, 2024

#23を取り込まない方針で考えています。
その際、問題になる継承の階層の制限をなくしてみました。
70ac168

手元では動作確認できていますが、内部用の関数である 'e2wm:$pst-get-prop' と 'e2wm:method-call' の関数のインタフェースを変えたので、これらを使っている場合はもしかしたらみなさんのパースペクティブ定義で問題が出るかもしれません。
よろしければご確認をよろしくお願いします。

from emacs-window-manager.

myuhe avatar myuhe commented on July 30, 2024

'e2wm:$pst-get-prop' と 'e2wm:method-call' を含んだものではありませんが自作のパースペクティブに新しいbase class定義に関連する修正を加えたところ、問題なく動作しているようです。
いちお報告まで

from emacs-window-manager.

kiwanami avatar kiwanami commented on July 30, 2024

ご確認ありがとうございます!

from emacs-window-manager.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.