kiwanami / emacs-window-manager

Customizable window manager for emacs
230 stars 28 forks source link

svn/magitパースペクティブにdiff専用の窓があった方が良い気がします #73

Closed aki2o closed 9 years ago

aki2o commented 10 years ago

デフォルトだと、diff結果はsubに表示されると思うんですけど、 sub窓って大きくないので、大抵の人は使いづらいんじゃないかと思うんですが、 kiwanamiさんはどのようなrecipeで使ってらっしゃいますか?

僕は、他にもfilesやhistoryは、このパースペクティブでは要らないし、 logも、もっと幅があれば良いのになぁと思ってました。 なので、導入当初は使いづらい印象で使ってなかったんですが、 以下のように設定変更したら、現在はコミット作業がすこぶる快適になっています。

;; svn
(setq e2wm:c-svn-recipe
      '(| (:left-size-ratio 0.3)
          status
          (| (:left-size-ratio 0.2)
             (- (:upper-size-ratio 0.5)
                logs
                (- (:upper-size-ratio 0.5)
                   main sub))
             diff)))

(setq e2wm:c-svn-winfo
      '((:name status :plugin svn-status)
        (:name logs   :plugin svn-logs)
        (:name diff   :buffer "*svn output*" :default-hide t)
        (:name main)
        (:name sub    :buffer nil :default-hide t)))

(setf (e2wm:$pst-class-main (e2wm:pst-class-get 'svn)) 'status)

(defadvice e2wm:dp-svn-popup (around ~e2wm:mng-diff activate)
  (if (string= (buffer-name (ad-get-arg 0)) "*svn output*")
      (e2wm:with-advice
       (e2wm:pst-buffer-set 'diff (ad-get-arg 0) t t))
    ad-do-it))

;; git
(setq e2wm:c-magit-recipe
      '(| (:left-size-ratio 0.3)
          (- (:upper-size-ratio 0.6)
             status branches)
          (| (:left-size-ratio 0.2)
             (- (:upper-size-ratio 0.5)
                logs
                (- (:upper-size-ratio 0.5)
                   main sub))
             diff)))

(setq e2wm:c-magit-winfo
      '((:name status   :plugin magit-status)
        (:name branches :plugin magit-branches)
        (:name logs     :plugin magit-logs)
        (:name diff     :buffer "*magit-diff*" :default-hide t)
        (:name main)
        (:name sub      :buffer nil :default-hide t)))

(setf (e2wm:$pst-class-main (e2wm:pst-class-get 'magit)) 'status)

(defadvice e2wm:dp-magit-popup (around ~e2wm:mng-diff activate)
  (if (string= (buffer-name (ad-get-arg 0)) "*magit-diff*")
      (e2wm:with-advice
       (e2wm:pst-buffer-set 'diff (ad-get-arg 0) t t))
    ad-do-it))

デフォルトだと、便利さが半減してしまうんではないかと。 それだと勿体無いなぁと思いまして。 使いやすさは人それぞれだと思うんですが、 diffを見やすく表示する窓は、デフォルトで入れた方が良い気がします。

kiwanami commented 10 years ago

ありがとうございます。ちょっと試してみます。defadviceなしで取り込みたいところですね。

はてなで書いたとおり、magitパースペクティブはやっつけなのですが、個人的にある程度ワークフローを満たしていたので放ったらかしになっていました。sub窓は確かに小さいですが、あんまり使ってなかったです。。。 http://d.hatena.ne.jp/kiwanami/20110702/1309592243

kiwanami commented 9 years ago

大変遅くなりましたが、これを試してみたのですが、なかなか良いですね。 こっちを標準に取り替えてしまってもいいのかも知れません。 PRいただいてもいいですか?

aki2o commented 9 years ago

了解です。少し時間下さい

kiwanami commented 9 years ago

ありがとうございます。 今更ながらですみません。よろしくおねがいします。

aki2o commented 9 years ago

continue into #80, #81

kiwanami commented 9 years ago

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