テキストプロパティを調べるもっともシンプルな方法は、特定の文字の特定のプロパティの値を尋ねる方法です。これを行うにはget-text-property
を使用します。ある文字のプロパティリスト全体を取得するにはtext-properties-at
を使用します。複数の文字のプロパティを一度に調べる関数についてはテキストプロパティの検索関数を参照してください。
以下の関数は文字列とバッファーの両方を処理します。バッファー内の位置は1から始まりますが、文字列内の位置は0から始まることに留意してください。カレントバッファー以外のバッファーのパースは低速になるかもしれません。
この関数はobject (バッファーか文字列)内の位置posの後にある文字のプロパティpropの値をリターンする。引数objectはオプションでありデフォルトはカレントバッファー。
positionがobjectの終端にあれば値はnil
になるが、バッファーのナローイングは値に影響しないことに注意。つまりobjectがバッファーかnil
の場合には、そのバッファーがナローイングされていて、かつobjectがナローイングされたバッファーの終端にあれば結果は非nil
になるだろう。
厳密な意味でpropプロパティは存在しないが、その文字がシンボルのプロパティカテゴリーをもつなら、get-text-property
はそのシンボルのpropプロパティをリターンする。
この関数はget-text-property
と似ているが、まずオーバーレイをチェックして次にテキストプロパティをチェックする点が異なる。オーバーレイを参照のこと。
引数objectは文字列、バッファー、あるいはウィンドウかもしれない。ウィンドウならそのウィンドウ内に表示されているバッファーのテキストプロパティとオーバーレイが使用されるが、そのウィンドウにたいしてアクティブなオーバーレイだけが考慮される。objectがバッファーなら、そのバッファー内のオーバーレイがまず優先的に考慮されて、その後にテキストプロパティが考慮される。objectが文字列なら文字列がオーバーレイをもつことは決してないのでテキストプロパティだけが考慮される。
この関数はget-char-property
と似ているが、position
(すぐ右)にある文字のプロパティのかわりにプロパティのstickiness(粘着性)とオーバーレイのadvancement(前向的)のセッティングに注意を払う点が異なる。
これはget-char-property
と似ているが、そのプロパティ値が由来するオーバーレイについて追加情報を与える点が異なる。
値はCARがプロパティ値であるようなコンスセルであり、これは同じ引数によりget-char-property
がリターンするであろう値と同じ。CDRはそのプロパティが見つかった箇所のオーバーレイ、テキストプロパティとして見つかった場合や見つからなかった場合にはnil
。
positionがobjectの終端ならCARとCDRの値はどちらもnil
。
この変数はプロパティ名と代替となるプロパティ名リストをマップするalistを保持する。文字があるプロパティにたいして直接値を指定しなければ、順に代替プロパティ名が調べられて最初の非nil
値が使用される。この変数はdefault-text-properties
より優先されて、この変数よりcategory
プロパティが優先される。
この関数は文字列かバッファーobject内の位置positionにある文字のプロパティリスト全体をリターンする。objectがnil
ならデフォルトはカレントバッファー。
positionがobjectの終端にあれば値はnil
になるが、バッファーのナローイングは値に影響しないことに注意。つまりobjectがバッファーかnil
の場合には、そのバッファーがナローイングされていて、かつobjectがナローイングされたバッファーの終端にあれば結果は非nil
になるだろう。
この変数はテキストプロパティにたいしてデフォルト値を与えるプロパティリストを保持する。あるプロパティにたいして文字が直接、あるいはカテゴリーシンボルやchar-property-alias-alist
を通じて値を指定しないときは、常にこのリストに格納された値がかわりに使用される。以下は例:
(setq default-text-properties '(foo 69) char-property-alias-alist nil) ;; 文字1は自身のプロパティをもたない (set-text-properties 1 2 nil) ;; 取得される値はデフォルト値 (get-text-property 1 'foo) ⇒ 69
この関数はobject内のインターバル(テキストプロパティ)をインターバルのリストとしてリターンする。objectは文字列かバッファーでなければならない。このリストの構造を変更しても、オブジェクト内のインターバルは変更されない。
(object-intervals (propertize "foo" 'face 'bold)) ⇒ ((0 3 (face bold)))
リターンされたリストの各要素は1つのインターバルを表す。インターバルはそれぞれ3つのパーツをもつ。1つ目は開始、2つ目は終了、3つ目はそのインターバル自身のテキストプロパティ。