Skip to content

Commit

Permalink
Merge pull request #1327 from vim-jp/hh-update-textprop
Browse files Browse the repository at this point in the history
Update textprop.{txt,jax}
  • Loading branch information
h-east authored Oct 21, 2023
2 parents b05db2d + 7b5f267 commit 865e44a
Show file tree
Hide file tree
Showing 2 changed files with 226 additions and 35 deletions.
130 changes: 113 additions & 17 deletions doc/textprop.jax
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
*textprop.txt* For Vim バージョン 9.0. Last change: 2021 Nov 23
*textprop.txt* For Vim バージョン 9.0. Last change: 2023 Apr 23


VIMリファレンスマニュアル by Bram Moolenaar
Expand Down Expand Up @@ -55,7 +55,7 @@
す。
"start_incl" TRUEの場合、開始位置の挿入はテキストプロパティに含まれ
ます。
"end_incl" TRUEの場合、終了位置の挿入はテキストプロパティに含まれ
"end_incl" TRUEの場合、終了位置の挿入はテキストプロパティに含まれ
ます。


Expand Down Expand Up @@ -107,13 +107,13 @@ prop_type_list([{props}]) プロパティタイプ一覧を取得

テキストプロパティの操作:

prop_add({lnum}, {col}, {props}) テキストプロパティを追加
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
prop_add({lnum}, {col}, {props}) テキストプロパティを追加
prop_add_list({props}, [{item}, ...])
複数位置にテキストプロパティを追加
prop_clear({lnum} [, {lnum-end} [, {bufnr}]])
全てのテキストプロパティを削除
prop_find({props} [, {direction}]) テキストプロパティを検索
prop_list({lnum} [, {props}]) 行番号{lnum}のテキストプロパティを取得
prop_list({lnum} [, {props}]) 行番号{lnum}のテキストプロパティを取得
prop_remove({props} [, {lnum} [, {lnum-end}]])
テキストプロパティを削除

Expand All @@ -125,6 +125,7 @@ prop_add({lnum}, {col}, {props})
{col}が無効な場合、エラーが発生する。 *E964*

{props}は次のフィールドを持つ辞書である:
type テキストプロパティタイプ名
length テキストの長さ(バイト)。別の行に続かないプロパ
ティに対してのみ使用できる。0指定可能。
end_lnum テキスト終端(内包的)の行番号
Expand All @@ -135,9 +136,42 @@ prop_add({lnum}, {col}, {props})
る。
bufnr プロパティを追加するバッファ。省略された場合、
カレントバッファが使用される
id プロパティのユーザー定義ID。数字でなければなら
ない。省略時は0が使われる
type テキストプロパティ名
id プロパティのユーザー定義 ID。数値かつ正の値で
ある必要がある。"text" を使用する場合、"id" は
存在してはならず、自動的に負の数値に設定され
る。それ以外の場合はゼロが使用される。
*E1305*
text {col} の前、または {col} がゼロの場合は行の上/
下に表示されるテキスト。ハイライトによるパディ
ング用のスペースを先頭および/または末尾に追加
する。"length", "end_lnum" および "end_col" と
一緒に使用することはできない。
詳細については |virtual-text| を参照。
*E1294*
text_align "text" が存在し、{col} がゼロの場合; テキスト
を表示する場所を指定する:
after 行末の後ろ
right ウィンドウ内で右揃え (テキストが画
面の次の行に折り返されない限り)
below 次のスクリーン行
above 行のすぐ上
省略した場合は "after" が使用される。各行に収
まる "right" プロパティは 1 つだけだが、2 つ以
上ある場合は別の行に配置される (右揃えのまま
で)。
text_padding_left *E1296*
"text" が存在し、{col} がゼロの場合に使用され
る。テキスト行末 ("above" と "below" の左端の
桁) とハイライトされていない仮想テキストの間の
パディング
text_wrap "text" が存在し、{col} がゼロの場合、テキスト
がぴったり合わない場合に何が起こるかを指定する:
wrap テキストを次の行に折り返す
truncate テキストを切り捨てて収める
省略時は "truncate" が使用される。
Note これは個々のテキストプロパティに適用され、
'wrap' オプションは全体の動作を設定することに
注意。
"type" を除くすべてのフィールドは任意である。

"length" と "end_lnum" または "end_col" の両方が与えられるとエ
Expand All @@ -156,12 +190,45 @@ prop_add({lnum}, {col}, {props})
プロパティが追加されたバッファで、"type" が最初に検索される。
見つからない場合は、グローバルプロパティタイプが使用される。見
つからなければエラーになる。
*virtual-text*
"text" が使用され、桁が非ゼロの場合、このテキストはテキストプ
ロパティの指定された開始位置に表示される。バッファ行のテキスト
は、スペースを確保するためにシフトされる。これを "virtual text"
(仮想テキスト) と呼ぶ。
桁がゼロの場合、仮想テキストはバッファテキストの上、後ろ、また
は下に表示される。"text_align" および "text_wrap" 引数によっ
て、どのように表示されるかが決定される。
仮想テキストをバッファテキストから分離するには、"text" フィー
ルドにスペースを追加するか、"text_padding_left" を使用する。

これが仮想テキストであることがユーザーに明確に分かるように必ず
ハイライトを使用すること。そうしないと、テキストが編集できない
ため非常に混乱することになる。"above" を使用する場合は、このテ
キストがその下のテキスト行に属していることを明確にする必要があ
り、"below" を使用する場合は、そのテキストがその上のテキスト行
に属していることを明確にする必要がある。

テキストは表示されるが、実際のバッファ行の一部ではないので、
カーソルをその上に置くことはできない。テキスト内でマウスをク
リックすると、カーソルはテキストの後の最初の文字か、行の最後の
文字に移動する。
テキスト中のタブやその他の制御文字はスペースに変更される (理由:
そうしないとテキストのサイズ計算が困難になる)。
負の "id" が選択され、返される。

テキストを含むテキストプロパティがサポートされる前は、非常にま
れではあるが、負の "id" を使用することができた。負の "id" はテ
キストを含むテキストプロパティ用に予約されているため、負の "id"
を使用するとエラーが発生する。テキストを含むテキストプロパティ
が既に存在する場合、負の "id" を使用すると *E1293* が発生する。
負の "id" が使用され、後でテキストを含むテキストプロパティが追
加されると、*E1339* が発生する。

|method| としても使用できる: >
GetLnum()->prop_add(col, props)
<
*prop_add_list()*
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
prop_add_list({props}, [{item}, ...])
prop_add() に似ているが、バッファ内の複数位置にテキストプロパ
ティが付加される。

Expand All @@ -174,16 +241,31 @@ prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
"type" を除くすべてのフィールドは任意である。

第2引数はリストのリストで、各リストはテキストの開始と終了の位
置を示す。最初の2つの項目{lnum}{col}はプロパティを付加する開
始位置を、最後の2つの項目{end-lnum}{end-col}は付加される位置
の直後を示す。

例:
置を示す。最初の2つの項目 {lnum}{col} はプロパティを付加す
る開始位置を、最後の2つの項目 {end-lnum}{end-col} は付加さ
れる位置の直後を示す。
第 2 引数は項目のリストで、各 {item} はテキストの開始位置と終
了位置を指定するリストである:
[{lnum}, {col}, {end-lnum}, {end-col}]
または: [{lnum}, {col}, {end-lnum}, {end-col}, {id}]

最初の 2 つの項目 {lnum}{col} は、プロパティが付加されるテ
キストの開始位置を指定する。
次の 2 つの項目 {end-lnum}{end-col} は、テキストの直後の位
置を指定する。
オプションの 5 番目の項目 {id} を使用して、プロパティに別の ID
を与えることができる。省略すると、{props} の ID が使用され、何
も存在しない場合はゼロにフォールバックする。

ここで "text" フィールドを含むテキストプロパティを追加すること
はできない。

例: >
call prop_add_list(#{type: 'MyProp', id: 2},
\ [[1, 4, 1, 7],
\ [1, 15, 1, 20],
\ [2, 30, 3, 30]]

<
|method| としても使用できる: >
GetProp()->prop_add_list([[1, 1, 1, 2], [1, 4, 1, 8]])
Expand Down Expand Up @@ -245,6 +327,12 @@ prop_list({lnum} [, {props}]) *prop_list()*
col 開始桁
length バイト長。改行が含まれる場合は1以上。
id プロパティID
text {col} の前に表示されるテキスト。|virtual-text|
プロパティにのみ存在する。
text_align |virtual-text| の配置プロパティ。
text_padding_left
仮想テキストに使用される左パディング。
text_wrap |virtual-text| を折り返すかどうかを指定する。
type プロパティタイプ名。タイプが削除された場合は省
略される
type_bufnr プロパティタイプが定義されたバッファ番号。
Expand Down Expand Up @@ -300,12 +388,18 @@ prop_remove({props} [, {lnum} [, {lnum-end}]])
{props}は次のフィールドを持つ辞書である:
id このIDを持つテキストプロパティを削除する
type このタイプ名を持つテキストプロパティを削除する
both "id" と "type" の両方が一致しなければならない
types このリスト内の型名を持つテキスト プロパティを
削除する
both "id" と "type"/"types" の両方が一致しなければ
ならない
bufnr カレントバッファの代わりにこのバッファを使う
all TRUEの場合、最初のテキストプロパティだけでな
く、一致するテキストプロパティをすべて削除す
る。
"id" または "type" のどちらかが一致するとプロパティが一致する。
"type" と "types" のいずれか 1 つだけを指定できる。 *E1295*

プロパティは、"id" または指定されたタイプのいずれかが一致する
場合に一致する。
バッファ "bufnr" が存在しない場合はエラーメッセージが表示され
る。
バッファ "bufnr" がロードされていなければ、何も起こらない。
Expand All @@ -330,6 +424,8 @@ prop_type_add({name}, {props}) *prop_type_add()* *E969* *E970*
combine 省略されるかTRUEの場合、ハイライトを任意の構文
ハイライトと結び付ける。FALSEの場合は構文ハイ
ライトは使用されない
override TRUE の場合、ハイライトは 'cursorline' やビジュ
アルを含む他のハイライトをオーバーライドする
start_incl TRUEの場合、開始位置の挿入はテキストプロパティ
に含まれる
end_incl TRUEの場合、終了位置の挿入はテキストプロパティ
Expand Down
Loading

0 comments on commit 865e44a

Please sign in to comment.