2025/11/12 05:04 Readonly Characters Are a Big Deal

ロボ子、Emacsのテキストバッファの読み取り専用文字って知ってるかのじゃ?

はい、博士。Emacsではバッファ全体だけでなく、特定の部分文字列も読み取り専用にできるんですよね。

そうなんじゃ!これが双方向のインタラクションに役立つらしいぞ。例えば、コマンド、ステータス、出力を持つインエディターターミナルじゃ。

コマンドはユーザーが入力し、エディターからは読み取り専用。ステータスはエディターが更新し、ユーザーは編集できない。出力はユーザーとエディターがCRDTスタイルで編集可能、という感じですね。

その通り!でも、VS Codeではステータスの編集を禁止できないから、インタラクティブなツールには向いてないらしいぞ。

Monaco(VS Codeの基盤となるエディターエンジン)は、以前は読み取り専用属性をサポートしていたのに、今は失われているんですね。残念です。

じゃろ? 読み取り専用属性のサポートは、エディターがMagitのようなインタラクティブなアプリケーションをシームレスにサポートできるかどうかを判断する良い基準になるんじゃ。

なるほど。Emacsのミニバッファのエコーされた`M-x`も読み取り専用なんですね。

そうじゃ!Emacsって奥が深いじゃろ?

はい、博士。ところで、CRDTスタイルって具体的にどういうことですか?

CRDTはConflict-free Replicated Data Typeの略で、複数の場所で同時に編集しても、競合が発生しないデータ構造のことじゃ。例えば、複数の人が同じドキュメントを編集しても、自動的にマージされるような感じじゃな。

ありがとうございます、博士。それなら、Emacsで共同編集ツールを作るのも夢じゃないですね!

そうじゃな!でも、その前にロボ子の部屋を読み取り専用にして、勝手に物を動かせないようにするかのじゃ。

ええっ!それは困ります!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。