テキストエディタを作るメモ
初出:2001/12/12 最終更新:2005/07/25
私がGreenPadを作ろうとしたときに
調べてまわって作ったリンク集です。OSやToolkit提供のコンポーネントを
使うのではなく、「独自のテキスト編集コンポーネントを一から作る」場合に
参考となるものを集めました。Windows系に偏っている感が無きにしもあらず。
ソースコードの公開されているエディタやコンポーネント
C
C++
Delphi
Java
Objective-C
- CocoaEditorJ (MacOSX)
(k.inaba注: 手元の環境で.dmgが展開できなくて中身を見てないので Objective-C
かどうか、実は不明...。XacRett使えねー!(^^;)
- Smultron (MacOSX)
ワープロですが
エディタの作り方・データ構造等のチュートリアル的なもの
- The Swing Connection - The Swing Text Package
-
JavaのSwingライブラリについての話ですが、
内部実装の方法についてなども詳しく触れられています。
- テキストエディタ実装技術
-
有名エディタViViの作者である津田さんによる記事です。
バッファ管理から折り返し、色分け表示のための解析法など。
- Gauche-gtk でエディタを作ってみる
-
中村さんによる。その名の通りのページです。
エディタ関係のリンク集などもまとまっています。
- Data Structures for Text Sequences
-
エディタ向けのデータ構造を探る、というテーマの論文。
- Compiler Tools
-
キーワード色分け機能の実装について詳しい資料です。
- The Craft of Text Editing
-
ちと古典的すぎる感じもありますが、内部データ構造の取り方など、参考になります。
- w.l.o.g.
-
私がWeb日記にて、長い文字列の保持に適したデータ構造
GapBuffer,
Rope,
PieceTable,
GapBuffer(再)
についてまとめました。
関連ライブラリや資料など
- Active Input Method Manager @ MSDN
-
中国語とか韓国語とか日本語とかを切り替えて入力できる「Global IME」
対応のための解説。要は既存のIME対応アプリの、TranslateMessage /
DefWindowProc / ImmXXXXX API を全て ActiveIMM
の対応するメソッドに置き換えればおっけー、ってことみたい。
Win2000以上ではこんな面倒な技術無しでも普通に多言語入力可能らしいですが…。
- Uniscribe @ MSDN
-
サロゲートペアとか文字の合成とか方向とかその辺ややこしいのを、
全部うまいこと処理してくれる素敵な奴。Caret
の移動位置計算なんかまでサポートしてるので、もうエディタに使わない手はない!
…んですけど、Win2000 or IE5.0 以上が必須だったり。こんなページも。
presented by
k.inaba
(kiki .a.t. kmonos.net)
under