vscode-scbで行の入れ替え
1行とインデント配下の二種類がある
実装どうやるんだこれ?
構文解析的にできてるならノード入れ替えればいいだけだから楽だけど、vscode-scbはそうじゃない あとvscodeで中身どうやって変えるか覚えてない
指定範囲削除、指定範囲を特定文字列で置き換え、指定位置に挿入、が使える
1 分解して考える
2つあるよな
一つ上に
一つ下に
対象も二つ
行1個
インデント配下(n行)
実装としては
1: 動かす対象の内容を取得
2: 1を削除
3: 一つ上、または一つ下に挿入
4: カーソルもそっち(一つ上なら上)に移す
このときx位置は変わらないはず
これでいい?
2:のときに位置ズレたりしね?
ずれる、よなぁ……
ずれも考えてアルゴリズム書かなあかん
あとカーソルがどう動くかが読めんsta.icon*2
tritaskでも(これは外部スクリが内容更新したのがリロードされたとき、だけど)諦めたところ
1: 動かす対象の内容を取得
たぶんここでカーソル位置も覚えておく
2: 挿入先に★でもランダム文字列でもいいので印を書き込む
3: 1:を削除
4: 2:のマークを1:でreplace
カーソル位置も復元する
これならズレないsta.icon*2