質問

重複の可能性:
Cocoa アプリの構文カラーリング

私は興味を持っている 構文の強調表示ココア テキストビュー。

いくつかのリソースを見つけました。

  • フレックスでアプローチする, 、経由 フレックス パターンと一致しました textStorageDidProcessEditingTextView 代表者。このアプローチでは、入力イベントごとに文字列全体が解析されるため、パフォーマンスが低下します。

  • CocoaDev には 構文の強調表示に関する独自のページ:

    1. 使用 NSTextStorageDidProcessEditingNotification, 次に、編集範囲を取得し、そこに色を適用するだけです。範囲は単語の境界でも何でも構いません。これによりパフォーマンスが確実に向上します。

    2. そこで言及されているのは: たとえば、Xcode は現在画面上にあるテキストのみを色付けし、ドキュメントの残りの部分の色付けはスクロールするまで延期します。 これをどのように実装すればよいでしょうか?

    3. 使用 NSLayoutManager - 経由 一時属性は画面上の描画にのみ使用され、決して永続的ではありません... ドキュメントにあるように、しかしそれは 空白文字が入力されるまで、最後に編集された範囲に色は付けられません。

    4. カスタムヘルパーのような 英国構文色付きドキュメント – それはいいですが、言語定義はプロパティ リストによって行われます。追加/既存の言語定義を使用するにはどうすればよいですか?

私にとって、どのアプローチも本当に拡張性や堅牢性があるとは思えません (4 を除く)。多分 ..)。

私は、次のような SH 用の強力な既存ライブラリを認識しています。 顔料;そしての PyObjC.

質問:既存のライブラリを使用するにはどうすればよいでしょうか。のように 顔料 Cocoa で拡張可能でパフォーマンスの高い構文強調表示を実現する TextView?

注記:この質問は非常に広範囲にわたる (そして長すぎる) ことは承知しています。経験や提案、解決策なども歓迎します。ありがとう。


この問題に関する別の同様のスレッドを見つけました。 Cocoa アプリの構文カラーリング

scroll top