[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:00292] Re: mhc-insert-schedule, per-week support, and view by category
すみません、長くなってしまいました。m(__)m
nom> スケジュールの無い日は詰めて表示するモードも欲しいぞ、
nom> との声が上がっています。実装は簡単です。全ては操作体系の問題です。
nom> いい操作体系を募集です。
nom> # one key でぱちぱち切り替えられないのが辛い。minor mode の悲し
nom> # さでしょうか。いっそ derived major mode にしたほうがいい?
あぁ、なるほど、minor mode だと確かに辛いですね。derived major mode に
するとしたら、どの mode から derive すればいいのでしょう。 mew と
wl で別々になるのでしょうか?
sen_ml> # C-uC-cs のアイディアは気に入りました。
nom> 液晶プロジェクタ対策 (デモ モード) と読んでいます。:-)
paranoid 系の人には SECRET と表示すると、「秘密があるぞ」と宣伝して
いる様なので、完全に隠せるオプションもあると幸せかもしれません。(笑)
# でも、C-cc を使用すれば実現できますね。「あるけど詳細は表示しない」
というのは案件を見落とさない観点から考えると重要ですね。
nom> 特定のカテゴリを表示して、それ以外は表示しない (伏せ字すら出ない)
nom> というのはあります。C-cc で category を指定できるので、
nom> !Private としておけば、Private は表示に出ません。
やってみました。最初はうまくいかなかったと思っていましたが、scan しなおしたら
ちゃんと表示されました :-)
# C-cc で category を指定してから再 scan しない事ってありますか?
nom> Private Holiday … Private と Holiday
nom> !Private Holiday … Private と Holiday 以外
うーん。できればここでも補完機能が使用できると幸せなんだけど、うまい
やり方が思い浮びません :-(
# separator をスペース以外のものにして、今朝投稿した補完関係のコードの
正規表現をいじればなんとかなるかな...それがうまくいったら、
「Private と Holiday 以外」等をあらわすための文法を
「!Private,!Holiday」か「!(Private,Holiday)」等にすれば
うまくいくかも...あ、すみません、独り言です (^^;
nom> 実際の使い方例と操作体系を決めていただければ、実装は割と簡単だと
nom> 思います。
以下の様なものはどうでしょうか?
(("Private" nil) ; t means show, nil means hide
("Work" t) ; better to use symbols?
("Holiday" nil))
みたいな alist をユーザに定義させてあげて (入力方法はおいて^2)
それに名前をつけさせてあげるというのはどうでしょうか? つまり名前がついた
テンプレートみたいなものです。
で、`mhc-scan-by-template' (?) というコマンド経由でテンプレートの
名前を指定するという形というのはどうでしょう?
# 指定しなかったものを表示するかしないかはユーザが設定する?
; name too long :-(
(defvar mhc-template-category-visibility-default nil)
; meaning of each template depends on the value of
; `mhc-template-category-visibility-default'
(defvar mhc-scan-templates
'(
; for demos
("Demo"
(("Private" nil)
("Work" t)
("Holiday" t)))
; just show holidays
("Holidays"
(("Holiday" t)))
; holidays don't mean anything for some unfortunate people
("Overworked"
(("Private" t)
("Work" t)))
; fun
("Fun"
(("Friends" t)
("Hobbies" t)))
; family
("Family"
(("Mother" t)
("Father" t)
("Sister" t)
("Brother" t)))
; siblings
("Siblings"
(("Sister" t)
("Brother" t)))
))
# こんな使い方は誰もしないかな? 人や役割をカテゴリにしてしまうと
アドレス帳等とリンクしたくなっちゃう?
nom> さっきのにフォローするのを忘れていました。
nom> 今欲しいもの:
nom> ちゃんとしたマニュアル (info)
nom> Menu 関係。
nom> Interactive な config
「また?」といわれる覚悟で、C-c e してからいくつかのフィールドの値を
minibuffer から入力しますが、各フィールド毎に history を用意すると (確か、
`read-from-minibuffer' に五番目の引数として指定する) M-n, M-p で
前に入力した値を探しやすくなりませんか?
こんな感じで:
(defun mhc-input-month (prompt)
(let ((ret nil) (month-str (ddate-yymm-s1 (ddate-now) "/")))
(while (null ret)
(setq month-str
(read-from-minibuffer
(concat prompt "(yyyy/mm) : ") month-str nil nil mhc-month-hist))
(if (string-match "\\([0-9]+\\)/\\([0-9]+\\)" month-str)
(setq ret(ddate-new (ddate-substring-to-int month-str 1)
(ddate-substring-to-int month-str 2) 1 t))))
ret))
# 最近書いたコードで複数の history を使ってみましたが、ユーザとして使って
みて便利だと思っています。
これで最後です:
ユーザが定義した Category に関する色関係の設定って TODO に
入ってましたっけ?