top  Index  Search  Changes  RSS  Login

howm wiki - HidePrivateReminder Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[[2ch2:591]] - howmのメニュー画面で、
サマリーに[Private]と入ったメモをデフォルトで表示させないことって出来ますか?

[[2ch2:593]] - C-c,a とか C-c,s でも特定カテゴリを hide できると嬉しいのですが。

[[2ch3:215]] - 予定表(C-c , y)や ToDo リスト(C-c , t)でも非表示にしたい

----

こんな?
(M-x howm-toggle-private でトグル.
まじめに試してないので, 動かなかったら知らせてください)

当然, 「[Private] だけ表示」や「もっといろんなカテゴリを自在に」って
欲求も出てくるけど, 需要がわからんからひとまず最低限で.

※ [Private] という文字列の検出範囲が「サマリ」か「本文含めてどこでも」か
ごっちゃになっているので注意!

;; howm-test050308 でテスト
(defvar howm-private-regexp (regexp-quote "[Private]"))
(defvar howm-hide-private t)
(when (not (fboundp 'howm-item-summary)) ;; for howm-1.2.1
   (defalias 'howm-item-summary #'howm-view-item-summary))
(defadvice howm-menu-general (around hide-private (label formatter item-list)
                                      activate)
   (when howm-hide-private
     (setq item-list
           (remove-if (lambda (item)
                        (string-match howm-private-regexp
                                      (howm-item-summary item)))
                      item-list)))
   ad-do-it)

(defvar howm-toggle-private-hist nil)
;(defvar howm-toggle-private-hist (list howm-private-regexp))

(defun howm-toggle-private (&optional arg)
   "プライベートメモを表示するか否かを切り替える.
C-u を前につけたときの動作は, 変数 `howm-toggle-private-hist' の値に依存.
・nil → プレフィクスが正の値のときオン, 0 か負ならオフ
・nil 以外 → プライベートとみなす正規表現を対話的に入力
後者の場合, `howm-toggle-private-hist' は文字列のリストとすること.
それが対話入力の初期履歴となる."
   (interactive "P")
   (cond ((null arg)
          (setq howm-hide-private (not howm-hide-private)))
         (howm-toggle-private-hist
          (setq howm-private-regexp
                (read-from-minibuffer "Regexp: "
                                      `(,howm-private-regexp . 0)
                                      nil
                                      nil
                                      'howm-toggle-private-hist)))
         (t
          (setq howm-hide-private (> (prefix-numeric-value arg) 0))))
   (howm-menu t)
   (message (if howm-hide-private
                "hide private reminders"
              "show private reminders")))

;; [Private] を含むメモを一覧でも非表示に.
;; ただし, 「一ファイル複数メモ」でも「ファイル丸ごと非表示」になるのでになったりするので注意.
;; 要 howm-test-050320 howm-test090530 以降.
(setq howm-list-normalizerhowm-normalizer
   (lambda ()(item-list)
     (when howm-hide-private
       (howm-view-remove-by-contents howm-private-regexp))(setq item-list
             (howm-filter-items-by-contents item-list howm-private-regexp t)))

     (howm-view-sort-by-mtime)))

(howm-sort-items-by-mtime item-list)))

;; [Private] を含む項目を予定表(C-c , y)や ToDo リスト(C-c , t)でも非表示に
;; howm-test090502 でテスト
(defun howm-filter-private-maybe (postprocess)
    (when howm-hide-private
      ; (if (howm-view-remove-by-contents howm-private-regexp) ;; メモ毎
      (if (howm-view-filter-by-summary t howm-private-regexp) ;; 項目毎
          (funcall postprocess)
          (progn
            (howm-view-kill-buffer)
            (message "No match.")))))
;; 迂遠だが, 公開関数に defadvice する方が安全
(defadvice howm-list-schedule (around hide-private activate)
   ad-do-it
   (howm-filter-private-maybe #'howm-reminder-goto-today))
(defadvice howm-list-todo (around hide-private activate)
   ad-do-it
   (howm-filter-private-maybe #'list)) ;; dummy postprocess

----
*2005-03-14 (月) 22:45:33 ''[[taku]]'' : 神!ありがとうございます、早速試してみます。
*2005-03-14 (月) 22:47:33 ''[[名無しさん]]'' : できれば、 (setq howm-default-category    "!(Private||Secret)") なんてのは駄目でしょうか?
*2005-03-15 (火) 20:59:18 ''[[名無しさん]]'' : こう? (setq howm-private-regexp (regexp-opt '("Private" "Secret")))
*2005-03-19 (土) 00:14:13 ''[[taku]]'' : うわー、とっても便利です。会社で使うのにとっても役立ちます。
*2005-03-20 (日) 22:36:37 ''[[名無しさん]]'' : see also: [[MultipleDirectory]]
*2005-05-10 (火) 19:07:02 ''[[名無しさん]]'' : [[2ch2:678]]をうけてちょい改造
*2006-06-12 (月) 08:51:06 ''[[taku]]'' : (defvar howm-private-regexp (regexp-quote "[Private]" "[Priv]")) みたいな使い方は出来ないでしょうか。うまくいきませんでした。
* (setq howm-private-regexp (regexp-opt '("[Private]" "[Priv]"))) かな?
*2006-06-13 (火) 10:22:09 ''[[taku]]'' : ↑うまく行きました。これくらい、自分で勉強して解決できるようにしたいですが、有難うございました。
* って, よく見たらすぐ上に同じこと書いてあるやん. 気づこうよ > 自分 ^^;
*2006-12-15 (金) 11:07:51 taku : 2006-11-21版で、C-c,aやC-c,sをしても、Privateが隠れなくなっています。
* 再現しません…. 手元ではちゃんと隠れました.
*2007-01-10 (水) 14:47:51 名無しさん : すみません、関数の追加ありがとうございました。しかし、
(setq howm-private-regexp (regexp-opt '("[Private]" "[Priv]")))
だとNGで、
(defvar howm-private-regexp (regexp-quote "[Private]"))
だとOKなのですが、何が問題なのでしょうか。
* 「何をしたら, どうなってほしいのに, どうなった」を具体的に書いてもらわないとどうにも. → BugReportFAQ
*2007-01-11 (木) 10:18:07 taku : 失礼しました。http://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?BugReportPaste に投稿しました。
* thx. 「defadvice howm-list-reminder」のところを直してみました.
*2007-01-12 (金) 11:12:17 taku : 今度は、howm-toggle-private-hist が nil の場合、howm-private-regexp値以外のリマインダーも表示されなくなってしまいました。 make testで確認しました。
* 「何をしたら, どうなってほしいのに, どうなった」を具体的に具体的に具体的にお願いします. (具体的な設定, 具体的なキー操作, 具体的な表示内容, …) → [[BugReportFAQ]]
* …まあたぶんあれ(上の※)のことだと思うので, 変えときました
*2007-01-14 (日) 19:28:42 taku : すみません、うまくいきました。ありがとうございます。
*2007-07-14 (土) 15:27:21 taku : すみません、突然(?)HidePrivateReminderの設定をしていて、todo等が動かなくなってしまいました。BugReportPasteにmake testの結果を貼りました。
* thx. howm-test070715 で直してみました.
*2007-07-16 (月) 01:14:33 taku : うまくいきました、対応ありがとうございます。
* howm-test090502 用に修正しました (defadvice していた関数 howm-list-reminder 自体が廃止というオチ). thx > [[2ch3:709]]
*2009-05-06 (水) 08:55:25 taku : 修正確認できました。いつも、ありがとうございます。
* howm-test090530 用に修正しました. thx > [[2ch3:731]]
{{comment}}
----