Scintilla/Indicators

Last-modified: 2008-03-02 (日) 09:25:21

インジケーター

インディケータは、スタイリングの先端に追加情報を表示するのに使用される。
目立たせるために使うことができる、たとえば、文法エラー、テキストの下のアンダーラインかテキストの周りのボックスを描画することによる推奨しない名前と悪いインデントである。
元々、Scintillaはスタイルバイトにおける格納されたインジケータ情報にもかかわらず、これが制限を立証したので、現在、最大32の別々に格納されたインジケータが使用されるかもしれない。
スタイルバイトインジケータが現在まだ動作している間、解析状態にそれぞれのスタイルバイトにおけるすべてのビットを使用できるようにそれらを取り除くだろう。


インジケータは簡単な下線、殴り書きの下線、小文字の'T'型の線、対角線のハッチング、強調、長方形を表示できる。


SCI_インドの*メッセージは、インジケータの視覚外観を取得および設定する。
彼らは皆、スタイルにインジケータを設定するのに範囲0からINDIC_MAX(31)にindicatorNumber引数を使用する。
干渉を防ぐために、インジケータのセットはコンテナによってlexers(0..7)による使用のために範囲と使用のための範囲に分割される(8=INDIC_CONTAINER .. 31=INDIC__MA)。

  • SCI_INDICSETSTYLE(int indicatorNumber, int indicatorStyle)
  • SCI_INDICGETSTYLE(int indicatorNumber)
  • SCI_INDICSETFORE(int indicatorNumber, int colour)
  • SCI_INDICGETFORE(int indicatorNumber)

SCI_INDICSETSTYLE(int indicatorNumber, int indicatorStyle)

SCI_INDICGETSTYLE(int indicatorNumber)

これら2個のメッセージは特定のインジケータのためのスタイルをセットおよび取得する。
現在利用可能なインジケータは以下のとおりである:

 

[heart] 表: インジケーター

シンボル視覚効果
INDIC_PLAIN0単一直線の下線
INDIC_SQUIGGLE1なぐり書きの下線
INDIC_TT2小さいT型の線
INDIC_DIAGONAL3対角線のハッチング
INDIC_STRIKE4削除
INDIC_HIDDEN5視覚効果のないインジケーター
INDIC_BOX6テキストの周りを囲む
INDIC_ROUNDBOX7内部が境界より透明な状態でテキストの周りの丸角が半透明の長方形
 

デフォルトのインジケーターは以下と同等である:

SCI_INDICSETSTYLE(0, INDIC_SQUIGGLE);
SCI_INDICSETSTYLE(1, INDIC_TT);
SCI_INDICSETSTYLE(2, INDIC_PLAIN);

SCI_INDICSETFORE(int indicatorNumber, int colour)

SCI_INDICGETFORE(int indicatorNumber)

これら2個のメッセージはインジケータを描画するために使う色をセットおよび取得する。
デフォルトインジケータの色は以下と同等である:

SCI_INDICSETFORE(0, 0x007f00); (dark green)
SCI_INDICSETFORE(1, 0xff0000); (light blue)
SCI_INDICSETFORE(2, 0x0000ff); (light red)

SCI_INDICSETUNDER(int indicatorNumber, bool under)

SCI_INDICGETUNDER(int indicatorNumber)

これら2個のメッセージは、インジケータをテキストの下か上(デフォルト)に描画するかをセットおよび取得する。
テキスト下への描画は、二層描画が有効なときモダンインジケータのために働く。

モダンインジケータ

モダンインジケータはまばらな情報のための速度とストレージの両方で効率的なランレングスコード化と同様の形式で保存される。


インジケータは各範囲に異価を格納するかもしれないが、現在すべての値が同じように描かれる。
将来、異なったスタイルで異価を描くのは、可能であるかもしれない。

SCI_SETINDICATORCURRENT(int indicator)

SCI_GETINDICATORCURRENT

これら2個のメッセージは、SCI_INDICATORFILLRANGEとSCI_INDICATORCLEARRANGEを呼ぶことによって影響を受けるインジケータをセットおよび取得する。

SCI_SETINDICATORVALUE(int value)

SCI_GETINDICATORVALUE

これら2個のメッセージは、SCI_INDICATORFILLRANGEを呼ぶことによってセットされる値をセットおよび取得する。

SCI_INDICATORFILLRANGE(int position, int fillLength)

SCI_INDICATORCLEARRANGE(int position, int clearLength)

これら2個のメッセージは、現在のインディケータの範囲を埋める、またはクリアする。
SCI_INDICATORFILLRANGEは現在の値で埋める。

SCI_INDICATORALLONFOR(int position)

インジケータがゼロでない位置を表すビットマップ値を取得する。

SCI_INDICATORVALUEAT(int indicator, int position)

positionの特定のインジケータの値を取得する。

SCI_INDICATORSTART(int indicator, int position)

SCI_INDICATOREND(int indicator, int position)

1つの値で範囲の中の位置から開始または終了の範囲の見つける。
すべてのインジケータ位置を発見するためにドキュメントを通して繰り返すのにおいて使用されている場合がある。

スタイルバイトインジケータ (非推奨)

By default, Scintilla organizes the style byte associated with each text byte as 5 bits of style information (for 32 styles) and 3 bits of indicator information for 3 independent indicators so that, for example, syntax errors, deprecated names and bad indentation could all be displayed at once.

The indicators are set using SCI_STARTSTYLING with a INDICS_MASK mask and SCI_SETSTYLING with the values INDIC0_MASK, INDIC1_MASK and INDIC2_MASK.

If you are using indicators in a buffer that has a lexer active (see SCI_SETLEXER), you must save lexing state information before setting any indicators and restore it afterwards. Use SCI_GETENDSTYLED to retrieve the current "styled to" position and SCI_STARTSTYLING to reset the styling position and mask (0x1f in the default layout of 5 style bits and 3 indicator bits) when you are done.

The number of bits used for styles can be altered with SCI_SETSTYLEBITS from 0 to 7 bits. The remaining bits can be used for indicators, so there can be from 1 to 8 indicators. However, the INDIC*_MASK constants defined in Scintilla.h all assume 5 bits of styling information and 3 indicators. If you use a different arrangement, you must define your own constants.