Mercurial > vim
annotate runtime/doc/textprop.txt @ 32449:2a17771529af
Update runtime files
Commit: https://github.com/vim/vim/commit/b7398fe41c9e1e731d058105a34158871ee83e3f
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 14 18:50:25 2023 +0100
Update runtime files
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 14 May 2023 20:00:05 +0200 |
parents | a9b5ffbc0428 |
children | 448aef880252 |
rev | line source |
---|---|
32449 | 1 *textprop.txt* For Vim version 9.0. Last change: 2023 Apr 23 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
4 VIM REFERENCE MANUAL by Bram Moolenaar |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
6 |
16610 | 7 Displaying text with properties attached. *textprop* *text-properties* |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
8 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
9 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 1. Introduction |text-prop-intro| |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 2. Functions |text-prop-functions| |
15512 | 12 3. When text changes |text-prop-changes| |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
13 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 {not able to use text properties when the |+textprop| feature was |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 disabled at compile time} |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 ============================================================================== |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 1. Introduction *text-prop-intro* |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
20 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 Text properties can be attached to text in a buffer. They will move with the |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 text: If lines are deleted or inserted the properties move with the text they |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 are attached to. Also when inserting/deleting text in the line before the |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
24 text property. And when inserting/deleting text inside the text property, it |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
25 will increase/decrease in size. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
26 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
27 The main use for text properties is to highlight text. This can be seen as a |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
28 replacement for syntax highlighting. Instead of defining patterns to match |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
29 the text, the highlighting is set by a script, possibly using the output of an |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
30 external parser. This only needs to be done once, not every time when |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
31 redrawing the screen, thus can be much faster, after the initial cost of |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 attaching the text properties. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 Text properties can also be used for other purposes to identify text. For |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 example, add a text property on a function name, so that a search can be |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
36 defined to jump to the next/previous function. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 A text property is attached at a specific line and column, and has a specified |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
39 length. The property can span multiple lines. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
40 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
41 A text property has these fields: |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
42 "id" a number to be used as desired |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
43 "type" the name of a property type |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
44 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
45 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
46 Property Types ~ |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
47 *E971* |
18831 | 48 A text property normally has the name of a property type, which defines |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
49 how to highlight the text. The property type can have these entries: |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
50 "highlight" name of the highlight group to use |
18615 | 51 "combine" when omitted or TRUE the text property highlighting is |
52 combined with any syntax highlighting; when FALSE the | |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
53 text property highlighting replaces the syntax |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
54 highlighting |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
55 "priority" when properties overlap, the one with the highest |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
56 priority will be used. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
57 "start_incl" when TRUE inserts at the start position will be |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
58 included in the text property |
32004 | 59 "end_incl" when TRUE inserts at the end position will be |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
60 included in the text property |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
61 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
62 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
63 Example ~ |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
64 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
65 Suppose line 11 in a buffer has this text (excluding the indent): |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
66 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
67 The number 123 is smaller than 4567. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
68 |
15334 | 69 To highlight the numbers in this text: > |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
70 call prop_type_add('number', {'highlight': 'Constant'}) |
15194 | 71 call prop_add(11, 12, {'length': 3, 'type': 'number'}) |
72 call prop_add(11, 32, {'length': 4, 'type': 'number'}) | |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
73 |
15334 | 74 Try inserting or deleting lines above the text, you will see that the text |
75 properties stick to the text, thus the line number is adjusted as needed. | |
76 | |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
77 Setting "start_incl" and "end_incl" is useful when white space surrounds the |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
78 text, e.g. for a function name. Using false is useful when the text starts |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
79 and/or ends with a specific character, such as the quote surrounding a string. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
80 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
81 func FuncName(arg) ~ |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
82 ^^^^^^^^ property with start_incl and end_incl set |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
83 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
84 var = "text"; ~ |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
85 ^^^^^^ property with start_incl and end_incl not set |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
86 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
87 Nevertheless, when text is inserted or deleted the text may need to be parsed |
15194 | 88 and the text properties updated. But this can be done asynchronously. |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
89 |
18456 | 90 |
91 Internal error *E967* | |
92 | |
93 If you see E967, please report the bug. You can do this at Github: | |
94 https://github.com/vim/vim/issues/new | |
95 | |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
96 ============================================================================== |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
97 2. Functions *text-prop-functions* |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
98 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
99 Manipulating text property types: |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
100 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
101 prop_type_add({name}, {props}) define a new property type |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
102 prop_type_change({name}, {props}) change an existing property type |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
103 prop_type_delete({name} [, {props}]) delete a property type |
22723 | 104 prop_type_get({name} [, {props}]) get property type values |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
105 prop_type_list([{props}]) get list of property types |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
106 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
107 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
108 Manipulating text properties: |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
109 |
32004 | 110 prop_add({lnum}, {col}, {props}) add a text property |
31885 | 111 prop_add_list({props}, [{item}, ...]) |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
112 add a text property at multiple |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
113 positions. |
15281 | 114 prop_clear({lnum} [, {lnum-end} [, {bufnr}]]) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
115 remove all text properties |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
116 prop_find({props} [, {direction}]) search for a text property |
32004 | 117 prop_list({lnum} [, {props}]) text properties in {lnum} |
15281 | 118 prop_remove({props} [, {lnum} [, {lnum-end}]]) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
119 remove a text property |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
120 |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
121 *prop_add()* *E965* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
122 prop_add({lnum}, {col}, {props}) |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
123 Attach a text property at position {lnum}, {col}. {col} is |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
124 counted in bytes, use one for the first column. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
125 If {lnum} is invalid an error is given. *E966* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
126 If {col} is invalid an error is given. *E964* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
127 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
128 {props} is a dictionary with these fields: |
29816
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
129 type name of the text property type |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
130 length length of text in bytes, can only be used |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
131 for a property that does not continue in |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
132 another line; can be zero |
24751 | 133 end_lnum line number for the end of text (inclusive) |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
134 end_col column just after the text; not used when |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
135 "length" is present; when {col} and "end_col" |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
136 are equal, and "end_lnum" is omitted or equal |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
137 to {lnum}, this is a zero-width text property |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
138 bufnr buffer to add the property to; when omitted |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
139 the current buffer is used |
19646 | 140 id user defined ID for the property; must be a |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
141 number, should be positive; when using "text" |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
142 then "id" must not be present and will be set |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
143 automatically to a negative number; otherwise |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
144 zero is used |
30324 | 145 *E1305* |
30547 | 146 text text to be displayed before {col}, or |
147 above/below the line if {col} is zero; prepend | |
148 and/or append spaces for padding with | |
149 highlighting; cannot be used with "length", | |
31200 | 150 "end_lnum" and "end_col" |
151 See |virtual-text| for more information. | |
32004 | 152 *E1294* |
29816
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
153 text_align when "text" is present and {col} is zero; |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
154 specifies where to display the text: |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
155 after after the end of the line |
29756 | 156 right right aligned in the window (unless |
157 the text wraps to the next screen | |
158 line) | |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
159 below in the next screen line |
30205
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
29840
diff
changeset
|
160 above just above the line |
29756 | 161 When omitted "after" is used. Only one |
29816
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
162 "right" property can fit in each line, if |
30324 | 163 there are two or more these will go in a |
29816
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
164 separate line (still right aligned). |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
165 text_padding_left *E1296* |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
166 used when "text" is present and {col} is zero; |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29756
diff
changeset
|
167 padding between the end of the text line |
32449 | 168 (leftmost column for "above" and "below") and |
169 the virtual text, not highlighted | |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
170 text_wrap when "text" is present and {col} is zero, |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
171 specifies what happens if the text doesn't |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
172 fit: |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
173 wrap wrap the text to the next line |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
174 truncate truncate the text to make it fit |
32004 | 175 When omitted "truncate" is used. |
30875 | 176 Note that this applies to the individual text |
177 property, the 'wrap' option sets the overall | |
178 behavior | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
179 All fields except "type" are optional. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
180 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
181 It is an error when both "length" and "end_lnum" or "end_col" |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
182 are given. Either use "length" or "end_col" for a property |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
183 within one line, or use "end_lnum" and "end_col" for a |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
184 property that spans more than one line. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
185 When neither "length" nor "end_col" are given the property |
19523 | 186 will be zero-width. That means it will move with the text, as |
187 a kind of mark. One character will be highlighted, if the | |
188 type specifies highlighting. | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
189 The property can end exactly at the last character of the |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
190 text, or just after it. In the last case, if text is appended |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
191 to the line, the text property size will increase, also when |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
192 the property type does not have "end_incl" set. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
193 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
194 "type" will first be looked up in the buffer the property is |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
195 added to. When not found, the global property types are used. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
196 If not found an error is given. |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
197 *virtual-text* |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
198 When "text" is used and the column is non-zero then this text |
30547 | 199 will be displayed at the specified start location of the text |
200 property. The text of the buffer line will be shifted to make | |
201 room. This is called "virtual text". | |
202 When the column is zero the virtual text will appear above, | |
203 after or below the buffer text. The "text_align" and | |
204 "text_wrap" arguments determine how it is displayed. | |
205 To separate the virtual text from the buffer text prepend | |
206 and/or append spaces to the "text" field or use the | |
207 "text_padding_left" value. | |
208 | |
209 Make sure to use a highlight that makes clear to the user that | |
210 this is virtual text, otherwise it will be very confusing that | |
211 the text cannot be edited. When using "above" you need to | |
212 make clear this text belongs to the text line below it, when | |
213 using "below" you need to make sure it belongs to the text | |
214 line above it. | |
215 | |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
216 The text will be displayed but it is not part of the actual |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
217 buffer line, the cursor cannot be placed on it. A mouse click |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
218 in the text will move the cursor to the first character after |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29533
diff
changeset
|
219 the text, or the last character of the line. |
29756 | 220 Any Tab and other control character in the text will be |
221 changed to a space (Rationale: otherwise the size of the text | |
222 is difficult to compute). | |
31579 | 223 A negative "id" will be chosen and is returned. |
224 | |
225 Before text properties with text were supported it was | |
226 possible to use a negative "id", even though this was very | |
227 rare. Now that negative "id"s are reserved for text | |
228 properties with text an error is given when using a negative | |
229 "id". When a text property with text already exists using a | |
230 negative "id" results in *E1293* . If a negative "id" was | |
231 used and later a text property with text is added results in | |
232 *E1339* . | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
233 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
234 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
235 GetLnum()->prop_add(col, props) |
25822
42723b535ab3
patch 8.2.3446: not enough tests for empty string arguments
Bram Moolenaar <Bram@vim.org>
parents:
25700
diff
changeset
|
236 < |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
237 *prop_add_list()* |
30813
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
238 prop_add_list({props}, [{item}, ...]) |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
239 Similar to prop_add(), but attaches a text property at |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
240 multiple positions in a buffer. |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
241 |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
242 {props} is a dictionary with these fields: |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
243 bufnr buffer to add the property to; when omitted |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
244 the current buffer is used |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
245 id user defined ID for the property; must be a |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
246 number; when omitted zero is used |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
247 type name of the text property type |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
248 All fields except "type" are optional. |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
249 |
30813
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
250 The second argument is a List of items, where each {item} is a |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
251 list that specifies the starting and ending position of the |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
252 text: [{lnum}, {col}, {end-lnum}, {end-col}] |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
253 or: [{lnum}, {col}, {end-lnum}, {end-col}, {id}] |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
254 |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
255 The first two items {lnum} and {col} specify the starting |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
256 position of the text where the property will be attached. |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
257 The next two items {end-lnum} and {end-col} specify the |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
258 position just after the text. |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
259 An optional fifth item {id} can be used to give a different ID |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
260 to a property. When omitted the ID from {props} is used, |
f4956427ee9e
patch 9.0.0741: cannot specify an ID for each item with prop_add_list()
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
261 falling back to zero if none are present. |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
262 |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
263 It is not possible to add a text property with a "text" field |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
264 here. |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
265 |
31885 | 266 Example: > |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
267 call prop_add_list(#{type: 'MyProp', id: 2}, |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
268 \ [[1, 4, 1, 7], |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
269 \ [1, 15, 1, 20], |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
270 \ [2, 30, 3, 30]] |
31885 | 271 < |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
272 Can also be used as a |method|: > |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
273 GetProp()->prop_add_list([[1, 1, 1, 2], [1, 4, 1, 8]]) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
274 |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
275 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
276 prop_clear({lnum} [, {lnum-end} [, {props}]]) *prop_clear()* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
277 Remove all text properties from line {lnum}. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
278 When {lnum-end} is given, remove all text properties from line |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
279 {lnum} to {lnum-end} (inclusive). |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
280 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
281 When {props} contains a "bufnr" item use this buffer, |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
282 otherwise use the current buffer. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
283 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
284 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
285 GetLnum()->prop_clear() |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
286 < |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
287 *prop_find()* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
288 prop_find({props} [, {direction}]) |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
289 Search for a text property as specified with {props}: |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
290 id property with this ID |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
291 type property with this type name |
24252
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
22723
diff
changeset
|
292 both "id" and "type" must both match |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
293 bufnr buffer to search in; when present a |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
294 start position with "lnum" and "col" |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
295 must be given; when omitted the |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
296 current buffer is used |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
297 lnum start in this line (when omitted start |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
298 at the cursor) |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
299 col start at this column (when omitted |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
300 and "lnum" is given: use column 1, |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
301 otherwise start at the cursor) |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
302 skipstart do not look for a match at the start |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
303 position |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
304 |
24252
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
22723
diff
changeset
|
305 A property matches when either "id" or "type" matches. |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
306 {direction} can be "f" for forward and "b" for backward. When |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
307 omitted forward search is performed. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
308 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
309 If a match is found then a Dict is returned with the entries |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
310 as with prop_list(), and additionally an "lnum" entry. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
311 If no match is found then an empty Dict is returned. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
312 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
313 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
314 prop_list({lnum} [, {props}]) *prop_list()* |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
315 Returns a List with all the text properties in line {lnum}. |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
316 |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
317 The following optional items are supported in {props}: |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
318 bufnr use this buffer instead of the current buffer |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
319 end_lnum return text properties in all the lines |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
320 between {lnum} and {end_lnum} (inclusive). |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
321 A negative value is used as an offset from the |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
322 last buffer line; -1 refers to the last buffer |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
323 line. |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
324 types List of property type names. Return only text |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
325 properties that match one of the type names. |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
326 ids List of property identifiers. Return only text |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
327 properties with one of these identifiers. |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
328 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
329 The properties are ordered by starting column and priority. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
330 Each property is a Dict with these entries: |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
331 lnum starting line number. Present only when |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
332 returning text properties between {lnum} and |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
333 {end_lnum}. |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
334 col starting column |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
335 length length in bytes, one more if line break is |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
336 included |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
337 id property ID |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
338 type name of the property type, omitted if |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
339 the type was deleted |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
24751
diff
changeset
|
340 type_bufnr buffer number for which this type was defined; |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
24751
diff
changeset
|
341 0 if the type is global |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
342 start when TRUE property starts in this line |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
343 end when TRUE property ends in this line |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
344 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
345 When "start" is zero the property started in a previous line, |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
346 the current one is a continuation. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
347 When "end" is zero the property continues in the next line. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
348 The line break after this line is included. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
349 |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
350 Returns an empty list on error. |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
351 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
352 Examples: |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
353 " get text properties placed in line 5 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
354 echo prop_list(5) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
355 " get text properties placed in line 20 in buffer 4 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
356 echo prop_list(20, {'bufnr': 4}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
357 " get all the text properties between line 1 and 20 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
358 echo prop_list(1, {'end_lnum': 20}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
359 " get all the text properties of type 'myprop' |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
360 echo prop_list(1, {'types': ['myprop'], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
361 \ 'end_lnum': -1}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
362 " get all the text properties of type 'prop1' or 'prop2' |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
363 echo prop_list(1, {'types': ['prop1', 'prop2'], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
364 \ 'end_lnum': -1}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
365 " get all the text properties with ID 8 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
366 echo prop_list(1, {'ids': [8], 'end_lnum': line('$')}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
367 " get all the text properties with ID 10 and 20 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
368 echo prop_list(1, {'ids': [10, 20], 'end_lnum': -1}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
369 " get text properties with type 'myprop' and ID 100 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
370 " in buffer 4. |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
371 echo prop_list(1, {'bufnr': 4, 'types': ['myprop'], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
372 \ 'ids': [100], 'end_lnum': -1}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25822
diff
changeset
|
373 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
374 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
375 GetLnum()->prop_list() |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
376 < |
21250 | 377 *prop_remove()* *E968* *E860* |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
378 prop_remove({props} [, {lnum} [, {lnum-end}]]) |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
379 Remove a matching text property from line {lnum}. When |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
380 {lnum-end} is given, remove matching text properties from line |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
381 {lnum} to {lnum-end} (inclusive). |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
382 When {lnum} is omitted remove matching text properties from |
24751 | 383 all lines (this requires going over all lines, thus will be a |
384 bit slow for a buffer with many lines). | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
385 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
386 {props} is a dictionary with these fields: |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
387 id remove text properties with this ID |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
388 type remove text properties with this type name |
29840 | 389 types remove text properties with type names in this |
390 List | |
391 both "id" and "type"/"types" must both match | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
392 bufnr use this buffer instead of the current one |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
393 all when TRUE remove all matching text properties, |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
394 not just the first one |
29840 | 395 Only one of "type" and "types" may be supplied. *E1295* |
396 | |
397 A property matches when either "id" or one of the supplied | |
398 types matches. | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
399 If buffer "bufnr" does not exist you get an error message. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
400 If buffer "bufnr" is not loaded then nothing happens. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
401 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
402 Returns the number of properties that were removed. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
403 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
404 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
405 GetProps()->prop_remove() |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
406 |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
407 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
408 prop_type_add({name}, {props}) *prop_type_add()* *E969* *E970* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
409 Add a text property type {name}. If a property type with this |
17909 | 410 name already exists an error is given. Nothing is returned. |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
411 {props} is a dictionary with these optional fields: |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
412 bufnr define the property only for this buffer; this |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
413 avoids name collisions and automatically |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
414 clears the property types when the buffer is |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
415 deleted. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
416 highlight name of highlight group to use |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
417 priority when a character has multiple text |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
418 properties the one with the highest priority |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
419 will be used; negative values can be used, the |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
420 default priority is zero |
24278 | 421 combine when omitted or TRUE combine the highlight |
422 with any syntax highlight; when FALSE syntax | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
423 highlight will not be used |
29607
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
424 override when TRUE the highlight overrides any other, |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
425 including 'cursorline' and Visual |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
426 start_incl when TRUE inserts at the start position will |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
427 be included in the text property |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
428 end_incl when TRUE inserts at the end position will be |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
429 included in the text property |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
430 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
431 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
432 GetPropName()->prop_type_add(props) |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
433 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
434 prop_type_change({name}, {props}) *prop_type_change()* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
435 Change properties of an existing text property type. If a |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
436 property with this name does not exist an error is given. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
437 The {props} argument is just like |prop_type_add()|. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
438 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
439 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
440 GetPropName()->prop_type_change(props) |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
441 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
442 prop_type_delete({name} [, {props}]) *prop_type_delete()* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
443 Remove the text property type {name}. When text properties |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
444 using the type {name} are still in place, they will not have |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
445 an effect and can no longer be removed by name. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
446 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
447 {props} can contain a "bufnr" item. When it is given, delete |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
448 a property type from this buffer instead of from the global |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
449 property types. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
450 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
451 When text property type {name} is not found there is no error. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
452 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
453 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
454 GetPropName()->prop_type_delete() |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
455 |
22723 | 456 prop_type_get({name} [, {props}]) *prop_type_get()* |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
457 Returns the properties of property type {name}. This is a |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
458 dictionary with the same fields as was given to |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
459 prop_type_add(). |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
460 When the property type {name} does not exist, an empty |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
461 dictionary is returned. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
462 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
463 {props} can contain a "bufnr" item. When it is given, use |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
464 this buffer instead of the global property types. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
465 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
466 Can also be used as a |method|: > |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
467 GetPropName()->prop_type_get() |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
468 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
469 prop_type_list([{props}]) *prop_type_list()* |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
470 Returns a list with all property type names. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
471 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
472 {props} can contain a "bufnr" item. When it is given, use |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
473 this buffer instead of the global property types. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
474 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
475 |
15512 | 476 ============================================================================== |
477 3. When text changes *text-prop-changes* | |
478 | |
479 Vim will do its best to keep the text properties on the text where it was | |
480 attached. When inserting or deleting text the properties after the change | |
481 will move accordingly. | |
482 | |
483 When text is deleted and a text property no longer includes any text, it is | |
484 deleted. However, a text property that was defined as zero-width will remain, | |
485 unless the whole line is deleted. | |
18016 | 486 *E275* |
17694
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17456
diff
changeset
|
487 When a buffer is unloaded, all the text properties are gone. There is no way |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17456
diff
changeset
|
488 to store the properties in a file. You can only re-create them. When a |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17456
diff
changeset
|
489 buffer is hidden the text is preserved and so are the text properties. It is |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17456
diff
changeset
|
490 not possible to add text properties to an unloaded buffer. |
15512 | 491 |
492 When using replace mode, the text properties stay on the same character | |
493 positions, even though the characters themselves change. | |
494 | |
16808 | 495 To update text properties after the text was changed, install a callback with |
496 `listener_add()`. E.g, if your plugin does spell checking, you can have the | |
497 callback update spelling mistakes in the changed text. Vim will move the | |
498 properties below the changed text, so that they still highlight the same text, | |
499 thus you don't need to update these. | |
500 | |
15512 | 501 |
19523 | 502 Text property columns are not updated or copied: ~ |
15512 | 503 |
504 - When setting the line with |setline()| or through an interface, such as Lua, | |
16610 | 505 Tcl or Python. Vim does not know what text got inserted or deleted. |
19523 | 506 - With a command like `:move`, which takes a line of text out of context. |
15512 | 507 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
508 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
509 vim:tw=78:ts=8:noet:ft=help:norl: |