社内ツールで GUI パーツとして使用するクロスプラットフォーム エディター コントロールが必要です。コントロールは商業的かもしれませんが、妥当な価格です。
必要な機能:
- プラットフォーム: Win32、OS X、Linux
- UTF-8 のサポート
- テキスト スタイル (または少なくとも色) に対するきめ細かいランタイム コントロール
- 通常のひどい肥大化のない素敵な低レベルのプレーンな C API
- これらの機能を使用することを妨げてはなりません (自分で実装する必要があるとしても):
- 元に戻す/やり直し
- コピーペースト
- テキスト内のクリック位置に応じたコンテキスト メニュー
- テキスト内のカーソル位置に応じたツールバー
- テキスト内のカーソル位置に応じたサイドバー パネル
実際には、単純な制御ではなく、クロスプラットフォームの GUI ライブラリ全体が必要です。
破棄されたオプション:
- シンティラと子孫
- FLTK
- Foxツールキット
- gtkソースビュー
アップデート:
注: 私はここでいくつかの書きかけの破棄理由を書き込んでしまいました。申し訳ありません。Scintilla は確かに OS X で動作します。ただし、正しく理解できれば、Scintilla の API は C++ で記述されています。
使用事例:
私の使用例は、ユーザーが自由にコピーして貼り付けたり、必要に応じてテキストを直接入力したりできるカスタムの「半固定」ロジック エディターを作成することです。しかし、テキスト構造は論理ツリーの厳格な自然言語表現です (本質的に AST に似ています)。私は、メインのオーサリング ツールとして使用する (手動でロジックを入力する代わりに) インテリセンスのようなもの (またはコード テンプレートのようなもの) を作成する予定です。
ところで、ストレージ形式はプレーンテキストではなく、言及された論理ツリーの内部表現 (コメントや空白などのメタ情報を含む) になります。
したがって、テキストを必要な色でレンダリングするために必要なすべての情報を自分で持っています。外部レクサーなどは必要ありません。