2

SWT StyledText を使用して、複数のソース (私の場合はスペル チェッカー、繰り返し単語、リンク、その他のマークアップなどのスタイル ヒント) から任意のテキスト スタイルをマージできるテキスト エディターを作成する必要があります。私はそれを行う標準的な方法を調べました:

  1. 変更リスナーをインストールして、変更ごとにテキスト全体のスタイルを作成できます。それはかなり遅いですが正確です。

  2. を使用できますLineStyleListener。これは、自分でテキストを再描画する必要があることを意味します (たとえば、単語の一部が現在の編集範囲外になるため、単語が繰り返される場合)、エディターはスタイルをキャッシュしないため、この API はより頻繁に呼び出されます。それから人は期待するでしょう。

  3. IDE と同じように、バックグラウンド調整ツールを使用できます。これは、スタイリングが編集に遅れをとることを意味し、ユーザーの観点からは好ましくありません。

さらに、階層的なスタイルが必要なので、StyleRangeAPI を再実装する必要があります。

より良い解決策を見た人はいますか?誰かがキーワードを強調する以上のことをするいくつかの例を教えてもらえますか?

4

1 に答える 1

2

このを、かなり高度なエディターの出発点として使用しました。複数行のスタイリングを理解し、エディターに正規表現ベースのスタイリング エンジンを実装するのに役立ちました。

StyleRange API は、インデックス 1 からインデックス 20 までのスタイル 1 と 10 から 14 までのスタイル 2 をマージするような交差を行う方法を実際には提供しませ

これが「階層スタイル」の意味である場合、JFace には解決策があります。org.eclipse.jface.text.TextPresentation

すべてのスタイルを で追加しmergeStyleRange(.)、 を使用getAllStyleRangeIterator()して結果を得ることができます。非常に便利。

于 2010-01-16T22:28:30.177 に答える