重複の可能性:
Cocoaアプリの構文の色付け
CocoaTextViewでの構文の強調表示に興味があります。
私はいくつかのリソースを見つけました:
デリゲートで照合 されたフレックスパターンを介して、フレックスでアプローチします。このアプローチでは、文字列全体が各入力イベントで解析されるため、パフォーマンスが低下します。
textStorageDidProcessEditing
TextView
CocoaDevには、構文の強調表示に関する独自のページがあります。
を使用
NSTextStorageDidProcessEditingNotification
して、編集した範囲を取得し、そこに色を適用します。範囲はwordboundariesまたは何かである可能性があります。これにより、パフォーマンスが確実に向上します。そこに言及:たとえば、Xcodeは現在画面に表示されているテキストのみを色付けし、スクロールするまでドキュメントの残りの部分の色付けを延期します。これをどのように実装しますか?
使用
NSLayoutManager
–一時属性を介して[これは]画面上の描画にのみ使用され、永続的ではありません...ドキュメントにあるように、空白文字が入力されるまで、最後に編集された範囲は色付けされません。UKSyntaxColoredDocumentのようなカスタムヘルパー–すばらしいですが、言語定義はプロパティリストを介して行われます。追加/既存の言語定義を使用する方法は?
アプローチのどれも私には本当に拡張可能または堅牢に見えません(4.多分..を除いて)。
私は、pygmentsのようなSH用の堅牢な既存のライブラリを知っています。およびPyObjCの。
質問: Cocoaで拡張可能でパフォーマンスの高い構文を強調表示するために、たとえばpygmentsなどの既存のライブラリをどのように使用できますTextView
か?
注:私はこの質問が非常に広い(そして長すぎる)ことを知っています。経験や提案、解決策は大歓迎です。ありがとう。
その問題について別の同様のスレッドを見つけました:Cocoaアプリの構文の色付け