Kozane-clone-tear-merge
2023-02-12
https://gyazo.com/2ba9026b20de2affb680588ef2b4aab5
Kozanebaに線を引く機能が入ってどんどん線を引くようになっか思ったんだけど、この機能が必要では
どうやって実現するんだ?
むしろ、こうか?
まず6つに引き裂く
選択範囲のこざねを一つにまとめる
この時に同じ文字列ならまとめる、そうでないなら空白かスラッシュを挟んでつなげる
二重線は後から描く
update_annotation_after_deletion
"leave from line"の実装
参考にする
一旦保留
2本以上の線が繋がっている時だけメニューを表示
線のつながっている方向に動かす
https://gyazo.com/e4cb4ce2eedafb1dd7e276e740a14fb8
できた
しかし予想通り「完全に重なってるとどれに繋がってるものかわからない」が発生している
2個目のXをAに繋がってると思って動かして、実はCに繋がっていた
線のつながっている方向に動かすできた
https://gyazo.com/07aa6880edfe0b1936bd0a299969057c
次はマージ
同一内容テキストは一つに
異なる内容のテキストはスラッシュ区切り
同じページへのScrapboxこざねは一つに
では、混ざっていたら?
そういうことするのやめろよ…
線の両端をマージしたら?
一旦保留
Scrapboxこざねのマージ
異常系
マージしたこざねを作るところまではできた
左にあるものを先にする
次に必要なこと
線の付け替え
マージ前のこざねの削除
二重のグループの内側をungroupした時に座標がズレるバグ
できた
https://gyazo.com/96efdbee11b617cbc8e99081a782c4d2
Tear 引き裂き
2本以上の線がつながっているこざねを引き裂きます
Merge 併合
選択範囲のこざねを一つにまとめます
Split Kozane機能を削除
まだどういう機能が必要か明確になっていなかった時代に作られた、過度に抽象的な機能でした
Edit Kozane機能とClone機能で十分です
Edit Kozane機能で編集するとこざねが置き換わります
https://gyazo.com/dc88bce8e7d7026200144882cd031f52
この時に複数行にすれば複数枚になります
https://gyazo.com/c4c13c5426c9f11e3ffa3b09ff1e68b9
なので「追加したものを後から複数枚に分割したい」というニーズははEdit Kozane機能で実現できる
Split Kozaneダイアログには「replace」と「add」の二つのボタンがありました
これは「既存のものを残しつつ、それを分割したものを追加したいこともあるよな」という考えでした
Clone機能が追加されて「これは残しておきたいな」と思った時点でcloneするようになったので必要なくなりました
https://gyazo.com/595f87314e6510fb529520abd2b0e69c
現時点での仕様上の注意点
こざねを編集した場合、テキストが一行なら表示テキストの編集と解釈している
なので引かれた線は維持される
テキストが複数行ならこざねの分割と解釈している
この時には「古いこざね」が消滅して「複数行テキストのインポート」が行われる
なので古い付箋に引かれていた線は消える
cloneは「同じ内容のこざねを新しく追加する」と解釈しているので、線は引かれない
解説を書いていて引っかかるかもなと思ったので明記しました。
西尾はこの仕様で今のところ困っていないです
デフォルトで線が増える仕様と、増えない仕様とを選べる場合、増えない方を選んでいると言えます
人間は線が多すぎると混乱するので、増えない方が良いと思っています
use case
https://gyazo.com/564bef46de6c46a37ef89684f6e93d18