top  Index  Search  Changes  RSS  Login

重要順ソート

ひとまずためしに…

;; 優先度順でソートされる. 同じ優先度なら日付順.
;; [2005-01-16]&3 ほげ  → 優先度 3
;; (howm-test050109 でテスト)
(defun my-explicit-priority (late lazy item)
  (let ((r (or lazy 0)))
    (+ r (* late 0.00001))))
(defface explicit-priority-face '((t (:foreground "cyan"))) "my face")
(setq explicit-priority-face 'explicit-priority-face)
(howm-define-reminder "&" #'my-explicit-priority 'explicit-priority-face nil t t)

;; 優先度 30 未満はメニューに表示しない. (他のタイプ(!+-~)との兼ね合いは未考慮)
(let ((limit-priority 30))
  (setq howm-menu-todo-priority
        ;; 日付に応じた微差を吸収するため, 中点を境界にする
        (let ((f (lambda (d)
                   (my-explicit-priority 0 (- limit-priority d) 'dummy))))
          (* 0.5 (apply #'+ (mapcar f '(0 1)))))))

実装済 (2005-01-01 02:52:07)

  • 2004-11-15 (月) 20:05:23 taku : 「同じ日のは重要度順でソート」っていうのはhowm-test041105で実装済みなんでしょうか?
  • 2004-11-16 (火) 21:49:55 名無しさん : 「同じ日の予定は文字列順でソート」が実装済みです. これを使って工夫すれば, 「重要度順」もできるんじゃないですか? …ということ. 具体的には, 各項目の先頭に「重要度を示す文字(列)」をつけることにして云々. これで通じます?
  • 2004-11-17 (水) 09:54:55 taku : いえ、どういうフォーマットの文字列を付ければいいのかが分からないんです。
  • 2004-11-17 (水) 19:39:43 名無しさん : 個人的には, めんどうでやってられなそうに思いますが…
 例1
     [2004-11-17]@ !0 絶対最強優先
     [2004-11-17]@ !1 最優先
     …
     [2004-11-17]@ !9 ごくごく微妙にやや優先ぎみ
     [2004-11-17]@ ふつう
 例2
     [2004-11-17]@ ! 最優先
     [2004-11-17]@ !' それよりちょっと弱く
     [2004-11-17]@ !'' さらにもうちょっと弱く
     …
     [2004-11-17]@ ふつう
  • 2004-11-18 (木) 14:57:07 taku : うーん、C-, tで一発で日付&重要度ソートが出来るといいんですけどねぇ。出来ないでしょうか?
  • 2004-11-20 (土) 02:31:02 名無しさん : もうちょっと書いてもらわないと理解しづらいです. C-c , t の結果がどうなってほしいんでしょう?
  • 2004-11-21 (日) 21:34:38 taku : 見出しの部分を正規表現でソートできたらいいですね。^\[\d+] とかで数字で重要度を表すような感じで
  • 2004-11-22 (月) 00:11:47 名無しさん : 重要度・日付・旬度と 3 つ指標があるわけですが, どういう順序でソートしたいのでしょう?
  • 2004-11-22 (月) 12:56:19 taku : うーん、それも順番をカスタマイズ出来るといいんですが、それこそアンチテーゼですよねぇ。やっぱり需要のない機能ですかね。
  • 2004-12-04 (土) 11:23:16 taku : てか、やっぱり重要度のソートは欲しいです。
  • 2004-12-04 (土) 17:42:17 名無しさん : 上のとんち(例1, 例2)は, 何が希望に合わなかったんでしょうか?
  • 2004-12-06 (月) 10:43:53 taku : @の場合は例1は効くのですが、+の場合は効かないようです。これが問題です。
  • 2004-12-07 (火) 22:37:42 名無しさん : 優先処理したい + は, [2004-12-07]+2 hoge みたいに猶予日数を短かくしてすばやく上昇させるのが本来の想定です. これじゃだめでしょうか?
  • 2004-12-08 (水) 12:50:34 taku : なるほど、そうやって制御するんですね。知りませんでした。暫く+nで対応してみます。

  • 2009-12-30 (水) 20:33:17 taku : すみません。今頃気がついたのですが、「優先度 30 未満はメニューに表示しない〜」で、let式以下が、~/.emacsに書いても起動時に読まれず、C-x C-eすると有効になるのですが。。

まず, 希望どおりに動作しないとき・動作するときそれぞれで, *scratch* バッファに「howm-menu-todo-priority」と書いて C-j した結果を教えてください. それから, 以下をお願いします.

  • .emacs の先頭に次のように書く
(setq my-hoge-count 0)
(defun my-hoge ()
  (setq my-hoge-count (1+ my-hoge-count))
  (message "my-check %s --- %s" my-hoge-count howm-menu-todo-priority))
  • .emacs の途中(「優先度 30 未満は〜」のコードより後)のあちこちに次の行を挿入
(my-hoge)
(setq howm-menu-todo-priority (- howm-huge++))

から、

49.5
99999

と値が変化しました。

  • このページのコードを .emacs の後方へ移せばよいという話?
  • 2010-01-13 (水) 20:24:12 taku : そうですね、失礼致しましたm(_ _ )m。
(Please LogIn to post comments.)

Last modified:2010/01/13 20:24:12
Keyword(s):
References:[ToDoボード] [SwitchMemoDirectory] [アイデア] [実装済]