End-with-count(Tritask)
スキップしたいのは大体ルーチンのはずだからrep属性前提だが、別についてなくてもいい
例: ここではカウント文字として 1
を使用
スキップ時、末尾にカウント文字を増やす
実装案1
walk + カウント文字をappend
が、余分な操作を一つつくらないといけないのがだめ
もう余裕ないんだよなー……
実装案2
属性としてサポートする
例: skipcount:1
q: 「スキップした」をどうやって検出するか?できるのか?
Ans: ちょっと煩雑だが、できる
---
helper.pyを起動して当該行を読み込んでも、その行がどう変化したかなんて当たり前だがわからない
なら周辺から判断するしかない
前後のタスクのdateを見るしかない
---
trita 2022/05/19 Thu 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/19 Thu 後のタスクタスク
どう判定しよう?
対象行のタスクをT、TのdateをDとする(上記では5/20)
まず、
スキップされようとしているタスクは today todo と仮定してよい
ソートもされていると仮定してよい
Tの前後のタスクのdateはどうなる?
前: 何もない、inbox、D-1、D
後: D-1、D、D+1、何もない
何もないは初期状態以外滅多にないから無視していい
前: inbox、D-1、D
後: D-1、D、D+1
inboxも使ってないから無視していいや
前: D-1、D
後: D-1、D、D+1
D-1、D-1
trita 2022/05/19 Thu 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/19 Thu 後のタスクタスク
あるある
一番ある
D-1、D
trita 2022/05/19 Thu 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/20 Fri 後のタスクタスク
❌D-1、D+1
trita 2022/05/19 Thu 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/21 Sat 後のタスクタスク
滅多にない
明日のタスクが1個のときだけだ
無視していいだろ
D、D-1
trita 2022/05/20 Fri 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/19 Thu 後のタスクタスク
ありえない
強いて言えば「前のタスクを先に walk day +1」した後、ソートせず続けて当該Tもwalkしたとか
……いや、ありえるだろ
まとめて操作してからソートする、はたまに使う
❌D、D
trita 2022/05/20 Fri 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/20 Fri 後のタスクタスク
これはありえない
強いて言えば「明日のタスク(この場合今日は19日だから20日のタスク)」エリアのタスクをいったん昨日に戻した後、また明日にした、みたいな操作をするくらいか
❌D、D+1
trita 2022/05/20 Fri 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/21 Sat 後のタスクタスク
これもない。
D、Dと同じシチュ(未来のエリアでいじったときしかならない)
3パターンか
D-1、D-1
trita 2022/05/19 Thu 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/19 Thu 後のタスクタスク
if 前のタスクのdate==D-1 and 後のタスクのdate==D-1
D-1、D
trita 2022/05/19 Thu 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/20 Fri 後のタスクタスク
if 前のタスクのdate==D-1 and 後のタスクのdate==D
D、D-1
trita 2022/05/20 Fri 前のタスク
2 2022/05/20 Fri スキップされたかもしれないタスク rep:1
2022/05/19 Thu 後のタスクタスク
if 前のタスクのdate==D and 後のタスクのdate==D-1
さらに絞れるか
pyif 前のタスクのdate==D-1 and 後のタスクのdate==D-1 or
前のタスクのdate==D-1 and 後のタスクのdate==D or
前のタスクのdate==D and 後のタスクのdate==D-1:
ドモルガろうとしたけど忘れたのでいいや
リーダブルコードしたいし、条件全部愚直に並べればいい
加えて、あとは「Tが開始もされていないし終了もしていない」
デザイン
skipcount:(増やす文字)
こうすれば良い
特にこだわりがなければ skipcount:1
でいい
skipcount:o
とか skipcount:*
でもいいし
名前の案
Walcount
walk + countから安直だがw
walkountの方がいい?