Vinsert、開発を諦めました。

こんにちは、如月翔也(@showya_kiss)です。
 一回完成までこぎつけて公表までしていた「Vinsert」ですが、諸般の事情あって開発を断念、公表したファイルも消しました。

何があった

まず第一段階で完成したVinsertですが、基本的に僕が小説を書くために使うエディタが目的だったわけです。
 よって、5000〜10000行、15万〜30万文字くらいは処理してくれないと困ります。
 しかし、空白文字の表示やタブストップの処理が「見えていない範囲」にも行われているため、空白文字やタブが含まれていなくても1000行を超えた当たりからアプリ動作とIME動作が重くて使い物にならなくなってきたのです。
 そこで、「見えてる範囲だけ処理しようぜ」と考え、バーチャルレンダリングをClaude Proに提案されたのでバーチャルレンダリングで修正する方向性で行きました。
 しかしどれだけ修正しても、バーチャルレンダリングでは行番号・カーソル位置・行ハイライトの位置が一致しないのです。
 2日くらい格闘して、「ははーん?」と思いClaude Proに「バーチャルレンダリングだと正確に合わせるのができないんだろ?」と聞いたら「実は出来ません」と告白してきました。最初から言え。ぶっ殺すぞ。

更に何があった

じゃあどうすればいいんだよ、と相談した所、VS Codeでも採用されているMonaco Editorエンジンを使えばできます、というので今あるコードをMonaco Editorエンジンに載せ替える作業を始めたんですが、終わる気配がないので作り直したほうが早いな、要件定義あるしな、と思い、要件定義を見せてMonaco Editorエンジンでこれはできるね?と確認した結果「できます」というのでイチから作り直しました。
 結果、スペース+Tabを入れるとスペースがTabに飲まれる、Tabの個数がわからない実装になっているので「直せるか?」と聞いたら「直せる」というので、「全部に適用したら10000行300000文字には耐えられないだろう?そしてバーチャルレンダリングではズレが発生するだろう?他奥方法はあるのか?」と聞いたら「対応困難です」と言い出したのです。本気でぶっ殺すぞ。

という訳で既存エディタで行く事にしました。

運の良いことに私はObsidian使いで、Obsidianはいくつか機能拡張を入れれば10000行300000文字に対応しますし、バックアップも取れるので、保管庫を分けて小説専用のエディタとしてテーマを分けて拡張機能も分けて使い勝手を変えればイケるな、と判断したのでそれで行く事にしました。
 Claude Proさんが超絶有能のために物凄い時間を食いましたが、彼ら「できないんだろう?」ってたまに聞かないと言い出せないシャイな子ですし、同じ部分を2回修正したらコンソールログを張ってあげる配慮をしないと「コンソールログ貰えます?」って言い出せないシャイな子なので、やっぱりぶち殺すと思うんですが、これはもう使い方の問題なので仕方がないですよね。

という訳で

今日は疲れ切ったので明日から執筆にかかります>小説
 今日はダフネで刀と苦無を掘るんだ……。
 ラナヴィーユを戦士にしたらめっちゃ可愛い……。

この記事を書いた人 Wrote this article

devildaredevil 男性

 ガジェットとAppleとTRPGが大好きな中年男です。文章をとにかく書くのが好きなので毎日のように色々なブログで文章を打ちまくっています。もし何か心に引っかかるものがあれば私のTwitterをフォローして頂けると更新情報が流れます。