Mercurial > vim
annotate src/testdir/test_textprop.vim @ 30304:f1fe59179180 v9.0.0488
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Commit: https://github.com/vim/vim/commit/4c7fd4d68f69b4e420a5448f144f4d57eda22f8c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 17 17:15:33 2022 +0100
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Problem: Cursor in wrong position with virtual text "above" and
'showbreak'.
Solution: Take the first character column into account. (closes #11149)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 17 Sep 2022 18:30:04 +0200 |
parents | 914b3c64ab92 |
children | 43d942ff32ce |
rev | line source |
---|---|
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1 " Tests for defining text property types and adding text properties to the |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 " buffer. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 |
17089
8e9e9124c7a2
patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents:
17049
diff
changeset
|
4 source check.vim |
8e9e9124c7a2
patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents:
17049
diff
changeset
|
5 CheckFeature textprop |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
6 |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
7 source screendump.vim |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
8 import './vim9.vim' as v9 |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
9 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 func Test_proptype_global() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 call prop_type_add('comment', {'highlight': 'Directory', 'priority': 123, 'start_incl': 1, 'end_incl': 1}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
12 let proptypes = prop_type_list() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
13 call assert_equal(1, len(proptypes)) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 call assert_equal('comment', proptypes[0]) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 let proptype = prop_type_get('comment') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 call assert_equal('Directory', proptype['highlight']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 call assert_equal(123, proptype['priority']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 call assert_equal(1, proptype['start_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
20 call assert_equal(1, proptype['end_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 call prop_type_delete('comment') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 call assert_equal(0, len(prop_type_list())) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
24 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
25 call prop_type_add('one', {}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
26 call assert_equal(1, len(prop_type_list())) |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
27 let proptype = 'one'->prop_type_get() |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
28 call assert_false(has_key(proptype, 'highlight')) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
29 call assert_equal(0, proptype['priority']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
30 call assert_equal(0, proptype['start_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
31 call assert_equal(0, proptype['end_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 call prop_type_add('two', {}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 call assert_equal(2, len(prop_type_list())) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 call prop_type_delete('one') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
36 call assert_equal(1, len(prop_type_list())) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 call prop_type_delete('two') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 call assert_equal(0, len(prop_type_list())) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
39 endfunc |
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 func Test_proptype_buf() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
42 let bufnr = bufnr('') |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
43 call prop_type_add('comment', #{bufnr: bufnr, highlight: 'Directory', priority: 123, start_incl: 1, end_incl: 1}) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
44 let proptypes = prop_type_list({'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
45 call assert_equal(1, len(proptypes)) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
46 call assert_equal('comment', proptypes[0]) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
47 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
48 let proptype = prop_type_get('comment', {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
49 call assert_equal('Directory', proptype['highlight']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
50 call assert_equal(123, proptype['priority']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
51 call assert_equal(1, proptype['start_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
52 call assert_equal(1, proptype['end_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
53 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
54 call prop_type_delete('comment', {'bufnr': bufnr}) |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
55 call assert_equal(0, len({'bufnr': bufnr}->prop_type_list())) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
56 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
57 call prop_type_add('one', {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
58 let proptype = prop_type_get('one', {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
59 call assert_false(has_key(proptype, 'highlight')) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
60 call assert_equal(0, proptype['priority']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
61 call assert_equal(0, proptype['start_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
62 call assert_equal(0, proptype['end_incl']) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
63 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
64 call prop_type_add('two', {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
65 call assert_equal(2, len(prop_type_list({'bufnr': bufnr}))) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
66 call prop_type_delete('one', {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
67 call assert_equal(1, len(prop_type_list({'bufnr': bufnr}))) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
68 call prop_type_delete('two', {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
69 call assert_equal(0, len(prop_type_list({'bufnr': bufnr}))) |
16772
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
70 |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
71 call assert_fails("call prop_type_add('one', {'bufnr': 98764})", "E158:") |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
72 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
73 |
29664
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
74 def Test_proptype_add_remove() |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
75 # add and remove a prop type so that the array is empty |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
76 prop_type_add('local', {bufnr: bufnr('%')}) |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
77 prop_type_delete('local', {bufnr: bufnr('%')}) |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
78 prop_type_add('global', {highlight: 'ErrorMsg'}) |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
79 prop_add(1, 1, {length: 1, type: 'global'}) |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
80 redraw |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
81 |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
82 prop_clear(1) |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
83 prop_type_delete('global') |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
84 enddef |
6569c71c5ca5
patch 9.0.0172: trying to allocate zero bytes
Bram Moolenaar <Bram@vim.org>
parents:
29657
diff
changeset
|
85 |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
86 def Test_proptype_buf_list() |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
87 new |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
88 var bufnr = bufnr('') |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
89 try |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
90 prop_type_add('global', {}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
91 prop_type_add('local', {bufnr: bufnr}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
92 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
93 prop_add(1, 1, {type: 'global'}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
94 prop_add(1, 1, {type: 'local'}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
95 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
96 assert_equal([ |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
97 {type: 'local', type_bufnr: bufnr, id: 0, col: 1, end: 1, length: 0, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
98 {type: 'global', type_bufnr: 0, id: 0, col: 1, end: 1, length: 0, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
99 ], prop_list(1)) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
100 assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
101 {lnum: 1, id: 0, col: 1, type_bufnr: bufnr, end: 1, type: 'local', length: 0, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
102 prop_find({lnum: 1, type: 'local'})) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
103 assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
104 {lnum: 1, id: 0, col: 1, type_bufnr: 0, end: 1, type: 'global', length: 0, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
105 prop_find({lnum: 1, type: 'global'})) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
106 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
107 prop_remove({type: 'global'}, 1) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
108 prop_remove({type: 'local'}, 1) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
109 finally |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
110 prop_type_delete('global') |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
111 prop_type_delete('local', {bufnr: bufnr}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
112 bwipe! |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
113 endtry |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
114 enddef |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
115 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
116 func AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
117 call prop_type_add('one', {}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
118 call prop_type_add('two', {}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
119 call prop_type_add('three', {}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
120 call prop_type_add('whole', {}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
121 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
122 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
123 func DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
124 call prop_type_delete('one') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
125 call prop_type_delete('two') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
126 call prop_type_delete('three') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
127 call prop_type_delete('whole') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
128 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
129 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
130 func SetupPropsInFirstLine() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
131 call setline(1, 'one two three') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
132 call prop_add(1, 1, {'length': 3, 'id': 11, 'type': 'one'}) |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
133 eval 1->prop_add(5, {'length': 3, 'id': 12, 'type': 'two'}) |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
134 call prop_add(1, 9, {'length': 5, 'id': 13, 'type': 'three'}) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
135 call prop_add(1, 1, {'length': 13, 'id': 14, 'type': 'whole'}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
136 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
137 |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
138 func Get_expected_props() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
139 return [ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
140 \ #{type_bufnr: 0, col: 1, length: 13, id: 14, type: 'whole', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
141 \ #{type_bufnr: 0, col: 1, length: 3, id: 11, type: 'one', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
142 \ #{type_bufnr: 0, col: 5, length: 3, id: 12, type: 'two', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
143 \ #{type_bufnr: 0, col: 9, length: 5, id: 13, type: 'three', start: 1, end: 1}, |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
144 \ ] |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
145 endfunc |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
146 |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
147 func Test_prop_find() |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
148 new |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
149 call setline(1, ['one one one', 'twotwo', 'three', 'fourfour', 'five', 'sixsix']) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
150 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
151 " Add two text props on lines 1 and 5, and one spanning lines 2 to 4. |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
152 call prop_type_add('prop_name', {'highlight': 'Directory'}) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
153 call prop_add(1, 5, {'type': 'prop_name', 'id': 10, 'length': 3}) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
154 call prop_add(2, 4, {'type': 'prop_name', 'id': 11, 'end_lnum': 4, 'end_col': 9}) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
155 call prop_add(5, 4, {'type': 'prop_name', 'id': 12, 'length': 1}) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
156 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
157 let expected = [ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
158 \ #{type_bufnr: 0, lnum: 1, col: 5, length: 3, id: 10, type: 'prop_name', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
159 \ #{type_bufnr: 0, lnum: 2, col: 4, id: 11, type: 'prop_name', start: 1, end: 0}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
160 \ #{type_bufnr: 0, lnum: 5, col: 4, length: 1, id: 12, type: 'prop_name', start: 1, end: 1} |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
161 \ ] |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
162 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
163 " Starting at line 5 col 1 this should find the prop at line 5 col 4. |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
164 call cursor(5, 1) |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
165 let result = prop_find({'type': 'prop_name'}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
166 call assert_equal(expected[2], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
167 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
168 " With skipstart left at false (default), this should find the prop at line |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
169 " 5 col 4. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
170 let result = prop_find({'type': 'prop_name', 'lnum': 5, 'col': 4}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
171 call assert_equal(expected[2], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
172 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
173 " With skipstart set to true, this should skip the prop at line 5 col 4. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
174 let result = prop_find({'type': 'prop_name', 'lnum': 5, 'col': 4, 'skipstart': 1}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
175 unlet result.length |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
176 call assert_equal(expected[1], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
177 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
178 " Search backwards from line 1 col 10 to find the prop on the same line. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
179 let result = prop_find({'type': 'prop_name', 'lnum': 1, 'col': 10}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
180 call assert_equal(expected[0], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
181 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
182 " with skipstart set to false, if the start position is anywhere between the |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
183 " start and end lines of a text prop (searching forward or backward), the |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
184 " result should be the prop on the first line (the line with 'start' set to 1). |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
185 call cursor(3, 1) |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
186 let result = prop_find({'type': 'prop_name'}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
187 unlet result.length |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
188 call assert_equal(expected[1], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
189 let result = prop_find({'type': 'prop_name'}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
190 unlet result.length |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
191 call assert_equal(expected[1], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
192 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
193 " with skipstart set to true, if the start position is anywhere between the |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
194 " start and end lines of a text prop (searching forward or backward), all lines |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
195 " of the prop will be skipped. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
196 let result = prop_find({'type': 'prop_name', 'skipstart': 1}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
197 call assert_equal(expected[0], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
198 let result = prop_find({'type': 'prop_name', 'skipstart': 1}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
199 call assert_equal(expected[2], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
200 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
201 " Use skipstart to search through all props with type name 'prop_name'. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
202 " First forward... |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
203 let lnum = 1 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
204 let col = 1 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
205 let i = 0 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
206 for exp in expected |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
207 let result = prop_find({'type': 'prop_name', 'lnum': lnum, 'col': col, 'skipstart': 1}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
208 if !has_key(exp, "length") |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
209 unlet result.length |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
210 endif |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
211 call assert_equal(exp, result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
212 let lnum = result.lnum |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
213 let col = result.col |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
214 let i = i + 1 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
215 endfor |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
216 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
217 " ...then backwards. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
218 let lnum = 6 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
219 let col = 4 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
220 let i = 2 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
221 while i >= 0 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
222 let result = prop_find({'type': 'prop_name', 'lnum': lnum, 'col': col, 'skipstart': 1}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
223 if !has_key(expected[i], "length") |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
224 unlet result.length |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
225 endif |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
226 call assert_equal(expected[i], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
227 let lnum = result.lnum |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
228 let col = result.col |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
229 let i = i - 1 |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
230 endwhile |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
231 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
232 " Starting from line 6 col 1 search backwards for prop with id 10. |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
233 call cursor(6, 1) |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
234 let result = prop_find({'id': 10, 'skipstart': 1}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
235 call assert_equal(expected[0], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
236 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
237 " Starting from line 1 col 1 search forwards for prop with id 12. |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
238 call cursor(1, 1) |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
239 let result = prop_find({'id': 12}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
240 call assert_equal(expected[2], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
241 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
242 " Search for a prop with an unknown id. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
243 let result = prop_find({'id': 999}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
244 call assert_equal({}, result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
245 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
246 " Search backwards from the proceeding position of the prop with id 11 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
247 " (at line num 2 col 4). This should return an empty dict. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
248 let result = prop_find({'id': 11, 'lnum': 2, 'col': 3}, 'b') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
249 call assert_equal({}, result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
250 |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
251 " When lnum is given and col is omitted, use column 1. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
252 let result = prop_find({'type': 'prop_name', 'lnum': 1}, 'f') |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
253 call assert_equal(expected[0], result) |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
254 |
25471
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
255 " Negative ID is possible, just like prop is not found. |
25441
e06540cc3371
patch 8.2.3257: calling prop_find() with -1 for ID gives errornous error
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
256 call assert_equal({}, prop_find({'id': -1})) |
25471
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
257 call assert_equal({}, prop_find({'id': -2})) |
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
258 |
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
259 call prop_clear(1, 6) |
25441
e06540cc3371
patch 8.2.3257: calling prop_find() with -1 for ID gives errornous error
Bram Moolenaar <Bram@vim.org>
parents:
25392
diff
changeset
|
260 |
25471
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
261 " Default ID is zero |
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
262 call prop_add(5, 4, {'type': 'prop_name', 'length': 1}) |
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
263 call assert_equal(#{lnum: 5, id: 0, col: 4, type_bufnr: 0, end: 1, type: 'prop_name', length: 1, start: 1}, prop_find({'id': 0})) |
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
264 |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
265 call prop_type_delete('prop_name') |
25471
3678a11e71fa
patch 8.2.3272: cannot use id zero with prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
25441
diff
changeset
|
266 call prop_clear(1, 6) |
22069
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
267 bwipe! |
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
268 endfunc |
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
269 |
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
270 def Test_prop_find2() |
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
271 # Multiple props per line, start on the first, should find the second. |
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
272 new |
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
273 ['the quikc bronw fox jumsp over the layz dog']->repeat(2)->setline(1) |
23072
4b398a229b0b
patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents:
22435
diff
changeset
|
274 prop_type_add('misspell', {highlight: 'ErrorMsg'}) |
22037
35c8996a798e
patch 8.2.1568: prop_find() skips properties in the same line
Bram Moolenaar <Bram@vim.org>
parents:
21552
diff
changeset
|
275 for lnum in [1, 2] |
35c8996a798e
patch 8.2.1568: prop_find() skips properties in the same line
Bram Moolenaar <Bram@vim.org>
parents:
21552
diff
changeset
|
276 for col in [8, 14, 24, 38] |
23072
4b398a229b0b
patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents:
22435
diff
changeset
|
277 prop_add(lnum, col, {type: 'misspell', length: 2}) |
22037
35c8996a798e
patch 8.2.1568: prop_find() skips properties in the same line
Bram Moolenaar <Bram@vim.org>
parents:
21552
diff
changeset
|
278 endfor |
35c8996a798e
patch 8.2.1568: prop_find() skips properties in the same line
Bram Moolenaar <Bram@vim.org>
parents:
21552
diff
changeset
|
279 endfor |
22069
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
280 cursor(1, 8) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
281 var expected = {type_bufnr: 0, lnum: 1, id: 0, col: 14, end: 1, type: 'misspell', length: 2, start: 1} |
23072
4b398a229b0b
patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents:
22435
diff
changeset
|
282 var result = prop_find({type: 'misspell', skipstart: true}, 'f') |
22069
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
283 assert_equal(expected, result) |
22037
35c8996a798e
patch 8.2.1568: prop_find() skips properties in the same line
Bram Moolenaar <Bram@vim.org>
parents:
21552
diff
changeset
|
284 |
22069
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
285 prop_type_delete('misspell') |
22037
35c8996a798e
patch 8.2.1568: prop_find() skips properties in the same line
Bram Moolenaar <Bram@vim.org>
parents:
21552
diff
changeset
|
286 bwipe! |
22069
87502e318c19
patch 8.2.1584: Vim9: cannot use "true" for "skipstart" in prop_find()
Bram Moolenaar <Bram@vim.org>
parents:
22037
diff
changeset
|
287 enddef |
19100
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
288 |
19642
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
289 func Test_prop_find_smaller_len_than_match_col() |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
290 new |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
291 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
292 call setline(1, ['xxxx', 'x']) |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
293 call prop_add(1, 4, {'type': 'test'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
294 call assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
295 \ #{type_bufnr: 0, id: 0, lnum: 1, col: 4, type: 'test', length: 0, start: 1, end: 1}, |
19642
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
296 \ prop_find({'type': 'test', 'lnum': 2, 'col': 1}, 'b')) |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
297 bwipe! |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
298 call prop_type_delete('test') |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
299 endfunc |
647ef636a11e
patch 8.2.0378: prop_find() does not find all props
Bram Moolenaar <Bram@vim.org>
parents:
19631
diff
changeset
|
300 |
24252
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
301 func Test_prop_find_with_both_option_enabled() |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
302 " Initialize |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
303 new |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
304 call AddPropTypes() |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
305 call SetupPropsInFirstLine() |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
306 let props = Get_expected_props()->map({_, v -> extend(v, {'lnum': 1})}) |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
307 " Test |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
308 call assert_fails("call prop_find({'both': 1})", 'E968:') |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
309 call assert_fails("call prop_find({'id': 11, 'both': 1})", 'E860:') |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
310 call assert_fails("call prop_find({'type': 'three', 'both': 1})", 'E860:') |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
311 call assert_equal({}, prop_find({'id': 11, 'type': 'three', 'both': 1})) |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
312 call assert_equal({}, prop_find({'id': 130000, 'type': 'one', 'both': 1})) |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
313 call assert_equal(props[2], prop_find({'id': 12, 'type': 'two', 'both': 1})) |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
314 call assert_equal(props[0], prop_find({'id': 14, 'type': 'whole', 'both': 1})) |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
315 " Clean up |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
316 call DeletePropTypes() |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
317 bwipe! |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
318 endfunc |
7422f2f719a3
patch 8.2.2667: prop_find() cannot find item matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
24039
diff
changeset
|
319 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
320 func Test_prop_add() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
321 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
322 call AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
323 call SetupPropsInFirstLine() |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
324 let expected_props = Get_expected_props() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
325 call assert_equal(expected_props, prop_list(1)) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
326 call assert_fails("call prop_add(10, 1, {'length': 1, 'id': 14, 'type': 'whole'})", 'E966:') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
327 call assert_fails("call prop_add(1, 22, {'length': 1, 'id': 14, 'type': 'whole'})", 'E964:') |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
328 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
329 " Insert a line above, text props must still be there. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
330 call append(0, 'empty') |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
331 call assert_equal(expected_props, prop_list(2)) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
332 " Delete a line above, text props must still be there. |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
333 1del |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
334 call assert_equal(expected_props, prop_list(1)) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
335 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
336 " Prop without length or end column is zero length |
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
337 call prop_clear(1) |
19534
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
338 call prop_type_add('included', {'start_incl': 1, 'end_incl': 1}) |
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
339 call prop_add(1, 5, #{type: 'included'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
340 let expected = [#{type_bufnr: 0, col: 5, length: 0, type: 'included', id: 0, start: 1, end: 1}] |
19534
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
341 call assert_equal(expected, prop_list(1)) |
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
342 |
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
343 " Inserting text makes the prop bigger. |
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
344 exe "normal 5|ixx\<Esc>" |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
345 let expected = [#{type_bufnr: 0, col: 5, length: 2, type: 'included', id: 0, start: 1, end: 1}] |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
346 call assert_equal(expected, prop_list(1)) |
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
347 |
16772
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
348 call assert_fails("call prop_add(1, 5, {'type': 'two', 'bufnr': 234343})", 'E158:') |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
349 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
350 call DeletePropTypes() |
19534
36ec10251b2b
patch 8.2.0324: text property not updated correctly when inserting/deleting
Bram Moolenaar <Bram@vim.org>
parents:
19110
diff
changeset
|
351 call prop_type_delete('included') |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
352 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
353 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
354 |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
355 " Test for the prop_add_list() function |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
356 func Test_prop_add_list() |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
357 new |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
358 call AddPropTypes() |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
359 call setline(1, ['one one one', 'two two two', 'six six six', 'ten ten ten']) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
360 call prop_add_list(#{type: 'one', id: 2}, |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
361 \ [[1, 1, 1, 3], [2, 5, 2, 7], [3, 6, 4, 6]]) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
362 call assert_equal([#{id: 2, col: 1, type_bufnr: 0, end: 1, type: 'one', |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
363 \ length: 2, start: 1}], prop_list(1)) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
364 call assert_equal([#{id: 2, col: 5, type_bufnr: 0, end: 1, type: 'one', |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
365 \ length: 2, start: 1}], prop_list(2)) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
366 call assert_equal([#{id: 2, col: 6, type_bufnr: 0, end: 0, type: 'one', |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
367 \ length: 7, start: 1}], prop_list(3)) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
368 call assert_equal([#{id: 2, col: 1, type_bufnr: 0, end: 1, type: 'one', |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
369 \ length: 5, start: 0}], prop_list(4)) |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
370 call assert_fails('call prop_add_list([1, 2], [[1, 1, 3]])', 'E1206:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
371 call assert_fails('call prop_add_list({}, {})', 'E1211:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
372 call assert_fails('call prop_add_list({}, [[1, 1, 3]])', 'E965:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
373 call assert_fails('call prop_add_list(#{type: "abc"}, [[1, 1, 1, 3]])', 'E971:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
374 call assert_fails('call prop_add_list(#{type: "one"}, [[]])', 'E474:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
375 call assert_fails('call prop_add_list(#{type: "one"}, [[1, 1, 1, 1], {}])', 'E714:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
376 call assert_fails('call prop_add_list(#{type: "one"}, [[1, 1, "a"]])', 'E474:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
377 call assert_fails('call prop_add_list(#{type: "one"}, [[2, 2]])', 'E474:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
378 call assert_fails('call prop_add_list(#{type: "one"}, [[1, 1, 2], [2, 2]])', 'E474:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
379 call assert_fails('call prop_add_list(#{type: "one"}, [[1, 1, 1, 2], [4, 1, 5, 2]])', 'E966:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
380 call assert_fails('call prop_add_list(#{type: "one"}, [[3, 1, 1, 2]])', 'E966:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
381 call assert_fails('call prop_add_list(#{type: "one"}, [[2, 2, 2, 2], [3, 20, 3, 22]])', 'E964:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
382 call assert_fails('eval #{type: "one"}->prop_add_list([[2, 2, 2, 2], [3, 20, 3, 22]])', 'E964:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
383 call assert_fails('call prop_add_list(test_null_dict(), [[2, 2, 2]])', 'E965:') |
30015
adb0de8be4ce
patch 9.0.0345: error message for list argument could be clearer
Bram Moolenaar <Bram@vim.org>
parents:
29994
diff
changeset
|
384 call assert_fails('call prop_add_list(#{type: "one"}, test_null_list())', 'E1298:') |
25640
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
385 call assert_fails('call prop_add_list(#{type: "one"}, [test_null_list()])', 'E714:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
386 call DeletePropTypes() |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
387 bw! |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
388 endfunc |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
389 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
390 func Test_prop_remove() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
391 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
392 call AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
393 call SetupPropsInFirstLine() |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
394 let props = Get_expected_props() |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
395 call assert_equal(props, prop_list(1)) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
396 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
397 " remove by id |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
398 call assert_equal(1, {'id': 12}->prop_remove(1)) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
399 unlet props[2] |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
400 call assert_equal(props, prop_list(1)) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
401 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
402 " remove by type |
16772
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
403 call assert_equal(1, prop_remove({'type': 'one'}, 1)) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
404 unlet props[1] |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
405 call assert_equal(props, prop_list(1)) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
406 |
16772
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
407 " remove from unknown buffer |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
408 call assert_fails("call prop_remove({'type': 'one', 'bufnr': 123456}, 1)", 'E158:') |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
409 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
410 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
411 bwipe! |
19601
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
412 |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
413 new |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
414 call AddPropTypes() |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
415 call SetupPropsInFirstLine() |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
416 call prop_add(1, 6, {'length': 2, 'id': 11, 'type': 'three'}) |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
417 let props = Get_expected_props() |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
418 call insert(props, #{type_bufnr: 0, col: 6, length: 2, id: 11, type: 'three', start: 1, end: 1}, 3) |
19601
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
419 call assert_equal(props, prop_list(1)) |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
420 call assert_equal(1, prop_remove({'type': 'three', 'id': 11, 'both': 1, 'all': 1}, 1)) |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
421 unlet props[3] |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
422 call assert_equal(props, prop_list(1)) |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
423 |
22087
ff21e2962490
patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents:
22069
diff
changeset
|
424 call assert_fails("call prop_remove({'id': 11, 'both': 1})", 'E860:') |
ff21e2962490
patch 8.2.1593: tests do not check the error number properly
Bram Moolenaar <Bram@vim.org>
parents:
22069
diff
changeset
|
425 call assert_fails("call prop_remove({'type': 'three', 'both': 1})", 'E860:') |
19601
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
426 |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
427 call DeletePropTypes() |
67f39cb0a49c
patch 8.2.0357: cannot delete a text property matching both id and type
Bram Moolenaar <Bram@vim.org>
parents:
19534
diff
changeset
|
428 bwipe! |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
429 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
430 new |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
431 call AddPropTypes() |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
432 call SetupPropsInFirstLine() |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
433 let props = Get_expected_props() " [whole, one, two, three] |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
434 call assert_equal(props, prop_list(1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
435 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
436 " remove one by types |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
437 call assert_equal(1, prop_remove({'types': ['one', 'two', 'three']}, 1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
438 unlet props[1] " [whole, two, three] |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
439 call assert_equal(props, prop_list(1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
440 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
441 " remove 'all' by types |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
442 call assert_equal(2, prop_remove({'types': ['three', 'whole'], 'all': 1}, 1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
443 unlet props[0] " [two, three] |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
444 unlet props[1] " [three] |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
445 call assert_equal(props, prop_list(1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
446 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
447 " remove none by types |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
448 call assert_equal(0, prop_remove({'types': ['three', 'whole'], 'all': 1}, 1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
449 call assert_equal(props, prop_list(1)) |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
450 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
451 " no types |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
452 call assert_fails("call prop_remove({'types': []}, 1)", 'E968:') |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
453 call assert_fails("call prop_remove({'types': ['not_a_real_type']}, 1)", 'E971:') |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
454 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
455 " only one of types and type can be supplied |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
456 call assert_fails("call prop_remove({'type': 'one', 'types': ['three'], 'all': 1}, 1)", 'E1295:') |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
457 |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
458 call DeletePropTypes() |
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
459 bwipe! |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
460 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
461 |
22127
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
462 def Test_prop_add_vim9() |
23072
4b398a229b0b
patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents:
22435
diff
changeset
|
463 prop_type_add('comment', { |
22127
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
464 highlight: 'Directory', |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
465 priority: 123, |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
466 start_incl: true, |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
467 end_incl: true, |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
468 combine: false, |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
469 }) |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
470 prop_type_delete('comment') |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
471 enddef |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
472 |
22125
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
473 def Test_prop_remove_vim9() |
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
474 new |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
475 g:AddPropTypes() |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
476 g:SetupPropsInFirstLine() |
23072
4b398a229b0b
patch 8.2.2082: Vim9: can still use the depricated #{} dict syntax
Bram Moolenaar <Bram@vim.org>
parents:
22435
diff
changeset
|
477 assert_equal(1, prop_remove({type: 'three', id: 13, both: true, all: true})) |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
478 g:DeletePropTypes() |
22125
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
479 bwipe! |
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
480 enddef |
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
481 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
482 func SetupOneLine() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
483 call setline(1, 'xonex xtwoxx') |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
484 normal gg0 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
485 call AddPropTypes() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
486 call prop_add(1, 2, {'length': 3, 'id': 11, 'type': 'one'}) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
487 call prop_add(1, 8, {'length': 3, 'id': 12, 'type': 'two'}) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
488 let expected = [ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
489 \ #{type_bufnr: 0, col: 2, length: 3, id: 11, type: 'one', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
490 \ #{type_bufnr: 0, col: 8, length: 3, id: 12, type: 'two', start: 1, end: 1}, |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
491 \] |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
492 call assert_equal(expected, prop_list(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
493 return expected |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
494 endfunc |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
495 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
496 func Test_prop_add_remove_buf() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
497 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
498 let bufnr = bufnr('') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
499 call AddPropTypes() |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
500 for lnum in range(1, 4) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
501 call setline(lnum, 'one two three') |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
502 endfor |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
503 wincmd w |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
504 for lnum in range(1, 4) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
505 call prop_add(lnum, 1, {'length': 3, 'id': 11, 'type': 'one', 'bufnr': bufnr}) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
506 call prop_add(lnum, 5, {'length': 3, 'id': 12, 'type': 'two', 'bufnr': bufnr}) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
507 call prop_add(lnum, 11, {'length': 3, 'id': 13, 'type': 'three', 'bufnr': bufnr}) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
508 endfor |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
509 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
510 let props = [ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
511 \ #{type_bufnr: 0, col: 1, length: 3, id: 11, type: 'one', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
512 \ #{type_bufnr: 0, col: 5, length: 3, id: 12, type: 'two', start: 1, end: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
513 \ #{type_bufnr: 0, col: 11, length: 3, id: 13, type: 'three', start: 1, end: 1}, |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
514 \] |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
515 call assert_equal(props, prop_list(1, {'bufnr': bufnr})) |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
516 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
517 " remove by id |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
518 let before_props = deepcopy(props) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
519 unlet props[1] |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
520 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
521 call prop_remove({'id': 12, 'bufnr': bufnr}, 1) |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
522 call assert_equal(props, prop_list(1, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
523 call assert_equal(before_props, prop_list(2, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
524 call assert_equal(before_props, prop_list(3, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
525 call assert_equal(before_props, prop_list(4, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
526 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
527 call prop_remove({'id': 12, 'bufnr': bufnr}, 3, 4) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
528 call assert_equal(props, prop_list(1, {'bufnr': bufnr})) |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
529 call assert_equal(before_props, prop_list(2, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
530 call assert_equal(props, prop_list(3, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
531 call assert_equal(props, prop_list(4, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
532 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
533 call prop_remove({'id': 12, 'bufnr': bufnr}) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
534 for lnum in range(1, 4) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
535 call assert_equal(props, prop_list(lnum, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
536 endfor |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
537 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
538 " remove by type |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
539 let before_props = deepcopy(props) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
540 unlet props[0] |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
541 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
542 call prop_remove({'type': 'one', 'bufnr': bufnr}, 1) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
543 call assert_equal(props, prop_list(1, {'bufnr': bufnr})) |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
544 call assert_equal(before_props, prop_list(2, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
545 call assert_equal(before_props, prop_list(3, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
546 call assert_equal(before_props, prop_list(4, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
547 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
548 call prop_remove({'type': 'one', 'bufnr': bufnr}, 3, 4) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
549 call assert_equal(props, prop_list(1, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
550 call assert_equal(before_props, prop_list(2, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
551 call assert_equal(props, prop_list(3, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
552 call assert_equal(props, prop_list(4, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
553 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
554 call prop_remove({'type': 'one', 'bufnr': bufnr}) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
555 for lnum in range(1, 4) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
556 call assert_equal(props, prop_list(lnum, {'bufnr': bufnr})) |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
557 endfor |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
558 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
559 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
560 wincmd w |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
561 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
562 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
563 |
15347
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
564 func Test_prop_backspace() |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
565 new |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
566 set bs=2 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
567 let expected = SetupOneLine() " 'xonex xtwoxx' |
15347
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
568 |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
569 exe "normal 0li\<BS>\<Esc>fxli\<BS>\<Esc>" |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
570 call assert_equal('one xtwoxx', getline(1)) |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
571 let expected[0].col = 1 |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
572 let expected[1].col = 6 |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
573 call assert_equal(expected, prop_list(1)) |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
574 |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
575 call DeletePropTypes() |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
576 bwipe! |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
577 set bs& |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
578 endfunc |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
579 |
28841
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
580 func Test_prop_change() |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
581 new |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
582 let expected = SetupOneLine() " 'xonex xtwoxx' |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
583 |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
584 " Characterwise. |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
585 exe "normal 7|c$\<Esc>" |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
586 call assert_equal('xonex ', getline(1)) |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
587 call assert_equal(expected[:0], prop_list(1)) |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
588 " Linewise. |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
589 exe "normal cc\<Esc>" |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
590 call assert_equal('', getline(1)) |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
591 call assert_equal([], prop_list(1)) |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
592 |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
593 call DeletePropTypes() |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
594 bwipe! |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
595 set bs& |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
596 endfunc |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
597 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
598 func Test_prop_replace() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
599 new |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
600 set bs=2 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
601 let expected = SetupOneLine() " 'xonex xtwoxx' |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
602 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
603 exe "normal 0Ryyy\<Esc>" |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
604 call assert_equal('yyyex xtwoxx', getline(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
605 call assert_equal(expected, prop_list(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
606 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
607 exe "normal ftRyy\<BS>" |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
608 call assert_equal('yyyex xywoxx', getline(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
609 call assert_equal(expected, prop_list(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
610 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
611 exe "normal 0fwRyy\<BS>" |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
612 call assert_equal('yyyex xyyoxx', getline(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
613 call assert_equal(expected, prop_list(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
614 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
615 exe "normal 0foRyy\<BS>\<BS>" |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
616 call assert_equal('yyyex xyyoxx', getline(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
617 call assert_equal(expected, prop_list(1)) |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
618 |
28931
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
619 " Replace three 1-byte chars with three 2-byte ones. |
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
620 exe "normal 0l3rø" |
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
621 call assert_equal('yøøøx xyyoxx', getline(1)) |
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
622 let expected[0].length += 3 |
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
623 let expected[1].col += 3 |
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
624 call assert_equal(expected, prop_list(1)) |
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
625 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
626 call DeletePropTypes() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
627 bwipe! |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
628 set bs& |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
629 endfunc |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
630 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
631 func Test_prop_open_line() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
632 new |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
633 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
634 " open new line, props stay in top line |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
635 let expected = SetupOneLine() " 'xonex xtwoxx' |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
636 exe "normal o\<Esc>" |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
637 call assert_equal('xonex xtwoxx', getline(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
638 call assert_equal('', getline(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
639 call assert_equal(expected, prop_list(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
640 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
641 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
642 " move all props to next line |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
643 let expected = SetupOneLine() " 'xonex xtwoxx' |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
644 exe "normal 0i\<CR>\<Esc>" |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
645 call assert_equal('', getline(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
646 call assert_equal('xonex xtwoxx', getline(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
647 call assert_equal(expected, prop_list(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
648 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
649 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
650 " split just before prop, move all props to next line |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
651 let expected = SetupOneLine() " 'xonex xtwoxx' |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
652 exe "normal 0li\<CR>\<Esc>" |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
653 call assert_equal('x', getline(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
654 call assert_equal('onex xtwoxx', getline(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
655 let expected[0].col -= 1 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
656 let expected[1].col -= 1 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
657 call assert_equal(expected, prop_list(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
658 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
659 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
660 " split inside prop, split first prop |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
661 let expected = SetupOneLine() " 'xonex xtwoxx' |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
662 exe "normal 0lli\<CR>\<Esc>" |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
663 call assert_equal('xo', getline(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
664 call assert_equal('nex xtwoxx', getline(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
665 let exp_first = [deepcopy(expected[0])] |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
666 let exp_first[0].length = 1 |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
667 let exp_first[0].end = 0 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
668 call assert_equal(exp_first, prop_list(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
669 let expected[0].col = 1 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
670 let expected[0].length = 2 |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
671 let expected[0].start = 0 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
672 let expected[1].col -= 2 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
673 call assert_equal(expected, prop_list(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
674 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
675 |
16670
5733d8e33bce
patch 8.1.1337: get empty text prop when splitting line just after text prop
Bram Moolenaar <Bram@vim.org>
parents:
16662
diff
changeset
|
676 " split just after first prop, second prop move to next line |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
677 let expected = SetupOneLine() " 'xonex xtwoxx' |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
678 exe "normal 0fea\<CR>\<Esc>" |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
679 call assert_equal('xone', getline(1)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
680 call assert_equal('x xtwoxx', getline(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
681 let exp_first = expected[0:0] |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
682 call assert_equal(exp_first, prop_list(1)) |
16670
5733d8e33bce
patch 8.1.1337: get empty text prop when splitting line just after text prop
Bram Moolenaar <Bram@vim.org>
parents:
16662
diff
changeset
|
683 let expected = expected[1:1] |
5733d8e33bce
patch 8.1.1337: get empty text prop when splitting line just after text prop
Bram Moolenaar <Bram@vim.org>
parents:
16662
diff
changeset
|
684 let expected[0].col -= 4 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
685 call assert_equal(expected, prop_list(2)) |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
686 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
687 |
28865
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
688 " split at the space character with 'ai' active, the leading space is removed |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
689 " in the second line and the prop is shifted accordingly. |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
690 let expected = SetupOneLine() " 'xonex xtwoxx' |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
691 set ai |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
692 exe "normal 6|i\<CR>\<Esc>" |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
693 call assert_equal('xonex', getline(1)) |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
694 call assert_equal('xtwoxx', getline(2)) |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
695 let expected[1].col -= 6 |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
696 call assert_equal(expected, prop_list(1) + prop_list(2)) |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
697 set ai& |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
698 call DeletePropTypes() |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
699 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
700 bwipe! |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
701 set bs& |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
702 endfunc |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
703 |
29645
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
704 func Test_prop_put() |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
705 new |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
706 let expected = SetupOneLine() " 'xonex xtwoxx' |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
707 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
708 let @a = 'new' |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
709 " insert just after the prop |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
710 normal 03l"ap |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
711 " insert inside the prop |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
712 normal 02l"ap |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
713 " insert just before the prop |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
714 normal 0"ap |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
715 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
716 call assert_equal('xnewonnewenewx xtwoxx', getline(1)) |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
717 let expected[0].col += 3 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
718 let expected[0].length += 3 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
719 let expected[1].col += 9 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
720 call assert_equal(expected, prop_list(1)) |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
721 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
722 " Visually select 4 chars in the prop and put "AB" to replace them |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
723 let @a = 'AB' |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
724 normal 05lv3l"ap |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
725 call assert_equal('xnewoABenewx xtwoxx', getline(1)) |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
726 let expected[0].length -= 2 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
727 let expected[1].col -= 2 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
728 call assert_equal(expected, prop_list(1)) |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
729 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
730 call DeletePropTypes() |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
731 bwipe! |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
732 endfunc |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
733 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
734 func Test_prop_clear() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
735 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
736 call AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
737 call SetupPropsInFirstLine() |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
738 call assert_equal(Get_expected_props(), prop_list(1)) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
739 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
740 eval 1->prop_clear() |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
741 call assert_equal([], 1->prop_list()) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
742 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
743 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
744 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
745 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
746 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
747 func Test_prop_clear_buf() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
748 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
749 call AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
750 call SetupPropsInFirstLine() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
751 let bufnr = bufnr('') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
752 wincmd w |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
753 call assert_equal(Get_expected_props(), prop_list(1, {'bufnr': bufnr})) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
754 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
755 call prop_clear(1, 1, {'bufnr': bufnr}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
756 call assert_equal([], prop_list(1, {'bufnr': bufnr})) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
757 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
758 wincmd w |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
759 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
760 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
761 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
762 |
15365
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
763 func Test_prop_setline() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
764 new |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
765 call AddPropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
766 call SetupPropsInFirstLine() |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
767 call assert_equal(Get_expected_props(), prop_list(1)) |
15365
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
768 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
769 call setline(1, 'foobar') |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
770 call assert_equal([], prop_list(1)) |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
771 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
772 call DeletePropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
773 bwipe! |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
774 endfunc |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
775 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
776 func Test_prop_setbufline() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
777 new |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
778 call AddPropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
779 call SetupPropsInFirstLine() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
780 let bufnr = bufnr('') |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
781 wincmd w |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
782 call assert_equal(Get_expected_props(), prop_list(1, {'bufnr': bufnr})) |
15365
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
783 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
784 call setbufline(bufnr, 1, 'foobar') |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
785 call assert_equal([], prop_list(1, {'bufnr': bufnr})) |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
786 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
787 wincmd w |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
788 call DeletePropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
789 bwipe! |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
790 endfunc |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
791 |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
792 func Test_prop_substitute() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
793 new |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
794 " Set first line to 'one two three' |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
795 call AddPropTypes() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
796 call SetupPropsInFirstLine() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
797 let expected_props = Get_expected_props() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
798 call assert_equal(expected_props, prop_list(1)) |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
799 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
800 " Change "n" in "one" to XX: 'oXXe two three' |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
801 s/n/XX/ |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
802 let expected_props[0].length += 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
803 let expected_props[1].length += 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
804 let expected_props[2].col += 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
805 let expected_props[3].col += 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
806 call assert_equal(expected_props, prop_list(1)) |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
807 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
808 " Delete "t" in "two" and "three" to XX: 'oXXe wo hree' |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
809 s/t//g |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
810 let expected_props[0].length -= 2 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
811 let expected_props[2].length -= 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
812 let expected_props[3].length -= 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
813 let expected_props[3].col -= 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
814 call assert_equal(expected_props, prop_list(1)) |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
815 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
816 " Split the line by changing w to line break: 'oXXe ', 'o hree' |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
817 " The long prop is split and spans both lines. |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
818 " The props on "two" and "three" move to the next line. |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
819 s/w/\r/ |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
820 let new_props = [ |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
821 \ copy(expected_props[0]), |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
822 \ copy(expected_props[2]), |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
823 \ copy(expected_props[3]), |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
824 \ ] |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
825 let expected_props[0].length = 5 |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
826 let expected_props[0].end = 0 |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
827 unlet expected_props[3] |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
828 unlet expected_props[2] |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
829 call assert_equal(expected_props, prop_list(1)) |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
830 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
831 let new_props[0].length = 6 |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
832 let new_props[0].start = 0 |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
833 let new_props[1].col = 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
834 let new_props[1].length = 1 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
835 let new_props[2].col = 3 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
836 call assert_equal(new_props, prop_list(2)) |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
837 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
838 call DeletePropTypes() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
839 bwipe! |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
840 endfunc |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
841 |
15398
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
842 func Test_prop_change_indent() |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
843 call prop_type_add('comment', {'highlight': 'Directory'}) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
844 new |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
845 call setline(1, [' xxx', 'yyyyy']) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
846 call prop_add(2, 2, {'length': 2, 'type': 'comment'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
847 let expect = #{type_bufnr: 0, col: 2, length: 2, type: 'comment', start: 1, end: 1, id: 0} |
15398
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
848 call assert_equal([expect], prop_list(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
849 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
850 set shiftwidth=3 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
851 normal 2G>> |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
852 call assert_equal(' yyyyy', getline(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
853 let expect.col += 3 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
854 call assert_equal([expect], prop_list(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
855 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
856 normal 2G== |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
857 call assert_equal(' yyyyy', getline(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
858 let expect.col = 6 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
859 call assert_equal([expect], prop_list(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
860 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
861 call prop_clear(2) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
862 call prop_add(2, 2, {'length': 5, 'type': 'comment'}) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
863 let expect.col = 2 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
864 let expect.length = 5 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
865 call assert_equal([expect], prop_list(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
866 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
867 normal 2G<< |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
868 call assert_equal(' yyyyy', getline(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
869 let expect.length = 2 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
870 call assert_equal([expect], prop_list(2)) |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
871 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
872 set shiftwidth& |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
873 call prop_type_delete('comment') |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
874 endfunc |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
875 |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
876 " Setup a three line prop in lines 2 - 4. |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
877 " Add short props in line 1 and 5. |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
878 func Setup_three_line_prop() |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
879 new |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
880 call setline(1, ['one', 'twotwo', 'three', 'fourfour', 'five']) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
881 call prop_add(1, 2, {'length': 1, 'type': 'comment'}) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
882 call prop_add(2, 4, {'end_lnum': 4, 'end_col': 5, 'type': 'comment'}) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
883 call prop_add(5, 2, {'length': 1, 'type': 'comment'}) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
884 endfunc |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
885 |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
886 func Test_prop_multiline() |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
887 eval 'comment'->prop_type_add({'highlight': 'Directory'}) |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
888 new |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
889 call setline(1, ['xxxxxxx', 'yyyyyyyyy', 'zzzzzzzz']) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
890 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
891 " start halfway line 1, end halfway line 3 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
892 call prop_add(1, 3, {'end_lnum': 3, 'end_col': 5, 'type': 'comment'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
893 let expect1 = #{type_bufnr: 0, col: 3, length: 6, type: 'comment', start: 1, end: 0, id: 0} |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
894 call assert_equal([expect1], prop_list(1)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
895 let expect2 = #{type_bufnr: 0, col: 1, length: 10, type: 'comment', start: 0, end: 0, id: 0} |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
896 call assert_equal([expect2], prop_list(2)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
897 let expect3 = #{type_bufnr: 0, col: 1, length: 4, type: 'comment', start: 0, end: 1, id: 0} |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
898 call assert_equal([expect3], prop_list(3)) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
899 call prop_clear(1, 3) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
900 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
901 " include all three lines |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
902 call prop_add(1, 1, {'end_lnum': 3, 'end_col': 999, 'type': 'comment'}) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
903 let expect1.col = 1 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
904 let expect1.length = 8 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
905 call assert_equal([expect1], prop_list(1)) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
906 call assert_equal([expect2], prop_list(2)) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
907 let expect3.length = 9 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
908 call assert_equal([expect3], prop_list(3)) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
909 call prop_clear(1, 3) |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
910 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
911 bwipe! |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
912 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
913 " Test deleting the first line of a multi-line prop. |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
914 call Setup_three_line_prop() |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
915 let expect_short = #{type_bufnr: 0, col: 2, length: 1, type: 'comment', start: 1, end: 1, id: 0} |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
916 call assert_equal([expect_short], prop_list(1)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
917 let expect2 = #{type_bufnr: 0, col: 4, length: 4, type: 'comment', start: 1, end: 0, id: 0} |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
918 call assert_equal([expect2], prop_list(2)) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
919 2del |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
920 call assert_equal([expect_short], prop_list(1)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
921 let expect2 = #{type_bufnr: 0, col: 1, length: 6, type: 'comment', start: 1, end: 0, id: 0} |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
922 call assert_equal([expect2], prop_list(2)) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
923 bwipe! |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
924 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
925 " Test deleting the last line of a multi-line prop. |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
926 call Setup_three_line_prop() |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
927 let expect3 = #{type_bufnr: 0, col: 1, length: 6, type: 'comment', start: 0, end: 0, id: 0} |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
928 call assert_equal([expect3], prop_list(3)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
929 let expect4 = #{type_bufnr: 0, col: 1, length: 4, type: 'comment', start: 0, end: 1, id: 0} |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
930 call assert_equal([expect4], prop_list(4)) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
931 4del |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
932 let expect3.end = 1 |
15292
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
933 call assert_equal([expect3], prop_list(3)) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
934 call assert_equal([expect_short], prop_list(4)) |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
935 bwipe! |
ba6f0f1bb9d0
patch 8.1.0654: when deleting a line text property flags are not adjusted
Bram Moolenaar <Bram@vim.org>
parents:
15269
diff
changeset
|
936 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
937 " Test appending a line below the multi-line text prop start. |
15294
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
938 call Setup_three_line_prop() |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
939 let expect2 = #{type_bufnr: 0, col: 4, length: 4, type: 'comment', start: 1, end: 0, id: 0} |
15294
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
940 call assert_equal([expect2], prop_list(2)) |
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
941 call append(2, "new line") |
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
942 call assert_equal([expect2], prop_list(2)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
943 let expect3 = #{type_bufnr: 0, col: 1, length: 9, type: 'comment', start: 0, end: 0, id: 0} |
15294
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
944 call assert_equal([expect3], prop_list(3)) |
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
945 bwipe! |
2d8225cc1315
patch 8.1.0655: when appending a line text property flags are not added
Bram Moolenaar <Bram@vim.org>
parents:
15292
diff
changeset
|
946 |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
947 call prop_type_delete('comment') |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
948 endfunc |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
949 |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
950 func Run_test_with_line2byte(add_props) |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
951 new |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
952 setlocal ff=unix |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
953 if a:add_props |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
954 call prop_type_add('textprop', #{highlight: 'Search'}) |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
955 endif |
29682
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
956 " Add a text prop to every fourth line and then change every fifth line so |
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
957 " that it causes a data block split a few times. |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
958 for nr in range(1, 1000) |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
959 call setline(nr, 'some longer text here') |
29682
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
960 if a:add_props && nr % 4 == 0 |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
961 call prop_add(nr, 13, #{type: 'textprop', length: 4}) |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
962 endif |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
963 endfor |
29682
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
964 let expected = 22 * 997 + 1 |
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
965 call assert_equal(expected, line2byte(998)) |
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
966 |
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
967 for nr in range(1, 1000, 5) |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
968 exe nr .. "s/longer/much more/" |
29682
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
969 let expected += 3 |
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
970 call assert_equal(expected, line2byte(998), 'line ' .. nr) |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
971 endfor |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
972 |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
973 if a:add_props |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
974 call prop_type_delete('textprop') |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
975 endif |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
976 bwipe! |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
977 endfunc |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
978 |
19110
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
979 func Test_prop_line2byte() |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
980 call prop_type_add('comment', {'highlight': 'Directory'}) |
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
981 new |
15269
27783a6f430b
patch 8.1.0643: computing byte offset wrong
Bram Moolenaar <Bram@vim.org>
parents:
15261
diff
changeset
|
982 call setline(1, ['line1', 'second line', '']) |
15261
c5cb5151940d
patch 8.1.0639: text properties test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
15255
diff
changeset
|
983 set ff=unix |
15269
27783a6f430b
patch 8.1.0643: computing byte offset wrong
Bram Moolenaar <Bram@vim.org>
parents:
15261
diff
changeset
|
984 call assert_equal(19, line2byte(3)) |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
985 call prop_add(1, 1, {'end_col': 3, 'type': 'comment'}) |
15269
27783a6f430b
patch 8.1.0643: computing byte offset wrong
Bram Moolenaar <Bram@vim.org>
parents:
15261
diff
changeset
|
986 call assert_equal(19, line2byte(3)) |
25624
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
987 bwipe! |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
988 |
25624
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
989 new |
25628
0407a3db3ef6
patch 8.2.3350: text properties test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
25624
diff
changeset
|
990 setlocal ff=unix |
25624
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
991 call setline(1, range(500)) |
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
992 call assert_equal(1491, line2byte(401)) |
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
993 call prop_add(2, 1, {'type': 'comment'}) |
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
994 call prop_add(222, 1, {'type': 'comment'}) |
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
995 call assert_equal(1491, line2byte(401)) |
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
996 call prop_remove({'type': 'comment'}) |
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
997 call assert_equal(1491, line2byte(401)) |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
998 bwipe! |
25624
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
999 |
25672
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1000 new |
25674
1d14b5d3de17
patch 8.2.3373: text property test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
25672
diff
changeset
|
1001 setlocal ff=unix |
25672
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1002 call setline(1, range(520)) |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1003 call assert_equal(1491, line2byte(401)) |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1004 call prop_add(2, 1, {'type': 'comment'}) |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1005 call assert_equal(1491, line2byte(401)) |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1006 2delete |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1007 call assert_equal(1489, line2byte(400)) |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1008 bwipe! |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
1009 |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
1010 " Add many lines so that the data block is split. |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
1011 " With and without props should give the same result. |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
1012 call Run_test_with_line2byte(0) |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
1013 call Run_test_with_line2byte(1) |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
1014 |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
1015 call prop_type_delete('comment') |
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
1016 endfunc |
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
1017 |
19110
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1018 func Test_prop_byte2line() |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1019 new |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1020 set ff=unix |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1021 call setline(1, ['one one', 'two two', 'three three', 'four four', 'five']) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1022 call assert_equal(4, byte2line(line2byte(4))) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1023 call assert_equal(5, byte2line(line2byte(5))) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1024 |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1025 call prop_type_add('prop', {'highlight': 'Directory'}) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1026 call prop_add(3, 1, {'length': 5, 'type': 'prop'}) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1027 call assert_equal(4, byte2line(line2byte(4))) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1028 call assert_equal(5, byte2line(line2byte(5))) |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1029 |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1030 bwipe! |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1031 call prop_type_delete('prop') |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1032 endfunc |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1033 |
23776
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1034 func Test_prop_goto_byte() |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1035 new |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1036 call setline(1, '') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1037 call setline(2, 'two three') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1038 call setline(3, '') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1039 call setline(4, 'four five') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1040 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1041 call prop_type_add('testprop', {'highlight': 'Directory'}) |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1042 call search('^two') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1043 call prop_add(line('.'), col('.'), { |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1044 \ 'length': len('two'), |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1045 \ 'type': 'testprop' |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1046 \ }) |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1047 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1048 call search('two \zsthree') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1049 let expected_pos = line2byte(line('.')) + col('.') - 1 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1050 exe expected_pos .. 'goto' |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1051 let actual_pos = line2byte(line('.')) + col('.') - 1 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1052 eval actual_pos->assert_equal(expected_pos) |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1053 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1054 call search('four \zsfive') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1055 let expected_pos = line2byte(line('.')) + col('.') - 1 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1056 exe expected_pos .. 'goto' |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1057 let actual_pos = line2byte(line('.')) + col('.') - 1 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1058 eval actual_pos->assert_equal(expected_pos) |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1059 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1060 call prop_type_delete('testprop') |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1061 bwipe! |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1062 endfunc |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1063 |
15363
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1064 func Test_prop_undo() |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1065 new |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1066 call prop_type_add('comment', {'highlight': 'Directory'}) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1067 call setline(1, ['oneone', 'twotwo', 'three']) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1068 " Set 'undolevels' to break changes into undo-able pieces. |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1069 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1070 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1071 call prop_add(1, 3, {'end_col': 5, 'type': 'comment'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1072 let expected = [#{type_bufnr: 0, col: 3, length: 2, id: 0, type: 'comment', start: 1, end: 1}] |
15363
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1073 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1074 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1075 " Insert a character, then undo. |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1076 exe "normal 0lllix\<Esc>" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1077 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1078 let expected[0].length = 3 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1079 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1080 undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1081 let expected[0].length = 2 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1082 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1083 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1084 " Delete a character, then undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1085 exe "normal 0lllx" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1086 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1087 let expected[0].length = 1 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1088 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1089 undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1090 let expected[0].length = 2 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1091 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1092 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1093 " Delete the line, then undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1094 1d |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1095 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1096 call assert_equal([], prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1097 undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1098 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1099 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1100 " Insert a character, delete two characters, then undo with "U" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1101 exe "normal 0lllix\<Esc>" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1102 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1103 let expected[0].length = 3 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1104 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1105 exe "normal 0lllxx" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1106 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1107 let expected[0].length = 1 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1108 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1109 normal U |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1110 let expected[0].length = 2 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1111 call assert_equal(expected, prop_list(1)) |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1112 |
16698
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1113 " substitute a word, then undo |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1114 call setline(1, 'the number 123 is highlighted.') |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1115 call prop_add(1, 12, {'length': 3, 'type': 'comment'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1116 let expected = [#{type_bufnr: 0, col: 12, length: 3, id: 0, type: 'comment', start: 1, end: 1} ] |
16698
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1117 call assert_equal(expected, prop_list(1)) |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1118 set ul& |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1119 1s/number/foo |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1120 let expected[0].col = 9 |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1121 call assert_equal(expected, prop_list(1)) |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1122 undo |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1123 let expected[0].col = 12 |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1124 call assert_equal(expected, prop_list(1)) |
16714
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1125 call prop_clear(1) |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1126 |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1127 " substitute with backslash |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1128 call setline(1, 'the number 123 is highlighted.') |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1129 call prop_add(1, 12, {'length': 3, 'type': 'comment'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1130 let expected = [#{type_bufnr: 0, col: 12, length: 3, id: 0, type: 'comment', start: 1, end: 1} ] |
16714
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1131 call assert_equal(expected, prop_list(1)) |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1132 1s/the/\The |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1133 call assert_equal(expected, prop_list(1)) |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1134 1s/^/\\ |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1135 let expected[0].col += 1 |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1136 call assert_equal(expected, prop_list(1)) |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1137 1s/^/\~ |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1138 let expected[0].col += 1 |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1139 call assert_equal(expected, prop_list(1)) |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1140 1s/123/12\\3 |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1141 let expected[0].length += 1 |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1142 call assert_equal(expected, prop_list(1)) |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1143 call prop_clear(1) |
16698
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1144 |
15363
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1145 bwipe! |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1146 call prop_type_delete('comment') |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1147 endfunc |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1148 |
18631
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1149 func Test_prop_delete_text() |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1150 new |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1151 call prop_type_add('comment', {'highlight': 'Directory'}) |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1152 call setline(1, ['oneone', 'twotwo', 'three']) |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1153 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1154 " zero length property |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1155 call prop_add(1, 3, {'type': 'comment'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1156 let expected = [#{type_bufnr: 0, col: 3, length: 0, id: 0, type: 'comment', start: 1, end: 1} ] |
18631
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1157 call assert_equal(expected, prop_list(1)) |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1158 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1159 " delete one char moves the property |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1160 normal! x |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1161 let expected = [#{type_bufnr: 0, col: 2, length: 0, id: 0, type: 'comment', start: 1, end: 1} ] |
18631
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1162 call assert_equal(expected, prop_list(1)) |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1163 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1164 " delete char of the property has no effect |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1165 normal! lx |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1166 let expected = [#{type_bufnr: 0, col: 2, length: 0, id: 0, type: 'comment', start: 1, end: 1} ] |
18631
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1167 call assert_equal(expected, prop_list(1)) |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1168 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1169 " delete more chars moves property to first column, is not deleted |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1170 normal! 0xxxx |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1171 let expected = [#{type_bufnr: 0, col: 1, length: 0, id: 0, type: 'comment', start: 1, end: 1} ] |
18631
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1172 call assert_equal(expected, prop_list(1)) |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1173 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1174 bwipe! |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1175 call prop_type_delete('comment') |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1176 endfunc |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1177 |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1178 " screenshot test with textprop highlighting |
16682
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1179 func Test_textprop_screenshot_various() |
18317
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1180 CheckScreendump |
15928
857ce36c8412
patch 8.1.0970: text properties test fails when 'encoding' is not utf-8
Bram Moolenaar <Bram@vim.org>
parents:
15398
diff
changeset
|
1181 " The Vim running in the terminal needs to use utf-8. |
18317
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1182 if g:orig_encoding != 'utf-8' |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1183 throw 'Skipped: not using utf-8' |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1184 endif |
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1185 call writefile([ |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1186 \ "call setline(1, [" |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1187 \ .. "'One two'," |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1188 \ .. "'Numbér 123 änd thœn 4¾7.'," |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1189 \ .. "'--aa--bb--cc--dd--'," |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1190 \ .. "'// comment with error in it'," |
16678
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1191 \ .. "'first line'," |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1192 \ .. "' second line '," |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1193 \ .. "'third line'," |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1194 \ .. "' fourth line'," |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1195 \ .. "])", |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1196 \ "hi NumberProp ctermfg=blue", |
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1197 \ "hi LongProp ctermbg=yellow", |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1198 \ "hi BackgroundProp ctermbg=lightgrey", |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1199 \ "hi UnderlineProp cterm=underline", |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1200 \ "call prop_type_add('number', {'highlight': 'NumberProp'})", |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
1201 \ "call prop_type_add('long', {'highlight': 'NumberProp'})", |
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
1202 \ "call prop_type_change('long', {'highlight': 'LongProp'})", |
15341
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1203 \ "call prop_type_add('start', {'highlight': 'NumberProp', 'start_incl': 1})", |
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1204 \ "call prop_type_add('end', {'highlight': 'NumberProp', 'end_incl': 1})", |
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1205 \ "call prop_type_add('both', {'highlight': 'NumberProp', 'start_incl': 1, 'end_incl': 1})", |
18570
0ac88fdbf089
patch 8.1.2279: computation of highlight attributes is too complicated
Bram Moolenaar <Bram@vim.org>
parents:
18444
diff
changeset
|
1206 \ "call prop_type_add('background', {'highlight': 'BackgroundProp', 'combine': 0})", |
0ac88fdbf089
patch 8.1.2279: computation of highlight attributes is too complicated
Bram Moolenaar <Bram@vim.org>
parents:
18444
diff
changeset
|
1207 \ "call prop_type_add('backgroundcomb', {'highlight': 'NumberProp', 'combine': 1})", |
0ac88fdbf089
patch 8.1.2279: computation of highlight attributes is too complicated
Bram Moolenaar <Bram@vim.org>
parents:
18444
diff
changeset
|
1208 \ "eval 'backgroundcomb'->prop_type_change({'highlight': 'BackgroundProp'})", |
18605
63d855ad505c
patch 8.1.2296: text properties are not combined with syntax by default
Bram Moolenaar <Bram@vim.org>
parents:
18570
diff
changeset
|
1209 \ "call prop_type_add('error', {'highlight': 'UnderlineProp'})", |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1210 \ "call prop_add(1, 4, {'end_lnum': 3, 'end_col': 3, 'type': 'long'})", |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
1211 \ "call prop_add(2, 9, {'length': 3, 'type': 'number'})", |
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
1212 \ "call prop_add(2, 24, {'length': 4, 'type': 'number'})", |
15341
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1213 \ "call prop_add(3, 3, {'length': 2, 'type': 'number'})", |
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1214 \ "call prop_add(3, 7, {'length': 2, 'type': 'start'})", |
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1215 \ "call prop_add(3, 11, {'length': 2, 'type': 'end'})", |
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1216 \ "call prop_add(3, 15, {'length': 2, 'type': 'both'})", |
18570
0ac88fdbf089
patch 8.1.2279: computation of highlight attributes is too complicated
Bram Moolenaar <Bram@vim.org>
parents:
18444
diff
changeset
|
1217 \ "call prop_add(4, 6, {'length': 3, 'type': 'background'})", |
0ac88fdbf089
patch 8.1.2279: computation of highlight attributes is too complicated
Bram Moolenaar <Bram@vim.org>
parents:
18444
diff
changeset
|
1218 \ "call prop_add(4, 12, {'length': 10, 'type': 'backgroundcomb'})", |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1219 \ "call prop_add(4, 17, {'length': 5, 'type': 'error'})", |
16678
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1220 \ "call prop_add(5, 7, {'length': 4, 'type': 'long'})", |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1221 \ "call prop_add(6, 1, {'length': 8, 'type': 'long'})", |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1222 \ "call prop_add(8, 1, {'length': 1, 'type': 'long'})", |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1223 \ "call prop_add(8, 11, {'length': 4, 'type': 'long'})", |
16676
79c5f723bb5d
patch 8.1.1340: attributes from 'cursorline' overwrite textprop
Bram Moolenaar <Bram@vim.org>
parents:
16670
diff
changeset
|
1224 \ "set number cursorline", |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
1225 \ "hi clear SpellBad", |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1226 \ "set spell", |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1227 \ "syn match Comment '//.*'", |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1228 \ "hi Comment ctermfg=green", |
15341
03a7a9fdb792
patch 8.1.0678: text properties as not adjusted for inserted text
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
1229 \ "normal 3G0llix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>lllix\<Esc>", |
15347
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
1230 \ "normal 3G0lli\<BS>\<Esc>", |
16678
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1231 \ "normal 6G0i\<BS>\<Esc>", |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1232 \ "normal 3J", |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1233 \ "normal 3G", |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1234 \], 'XtestProp') |
16678
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1235 let buf = RunVimInTerminal('-S XtestProp', {'rows': 8}) |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1236 call VerifyScreenDump(buf, 'Test_textprop_01', {}) |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
1237 |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1238 " clean up |
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1239 call StopVimInTerminal(buf) |
15318
f58e7895cb40
patch 8.1.0667: textprop test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
15314
diff
changeset
|
1240 call delete('XtestProp') |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1241 endfunc |
16682
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1242 |
29607
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1243 func Test_textprop_hl_override() |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1244 CheckScreendump |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1245 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1246 let lines =<< trim END |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1247 call setline(1, ['One one one one one', 'Two two two two two', 'Three three three three']) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1248 hi OverProp ctermfg=blue ctermbg=yellow |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1249 hi CursorLine cterm=bold,underline ctermfg=red ctermbg=green |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1250 hi Vsual ctermfg=cyan ctermbg=grey |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1251 call prop_type_add('under', #{highlight: 'OverProp'}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1252 call prop_type_add('over', #{highlight: 'OverProp', override: 1}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1253 call prop_add(1, 5, #{type: 'under', length: 4}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1254 call prop_add(1, 13, #{type: 'over', length: 4}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1255 call prop_add(2, 5, #{type: 'under', length: 4}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1256 call prop_add(2, 13, #{type: 'over', length: 4}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1257 call prop_add(3, 5, #{type: 'under', length: 4}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1258 call prop_add(3, 13, #{type: 'over', length: 4}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1259 set cursorline |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1260 2 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1261 END |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1262 call writefile(lines, 'XtestOverProp') |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1263 let buf = RunVimInTerminal('-S XtestOverProp', {'rows': 8}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1264 call VerifyScreenDump(buf, 'Test_textprop_hl_override_1', {}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1265 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1266 call term_sendkeys(buf, "3Gllv$hh") |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1267 call VerifyScreenDump(buf, 'Test_textprop_hl_override_2', {}) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1268 call term_sendkeys(buf, "\<Esc>") |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1269 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1270 " clean up |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1271 call StopVimInTerminal(buf) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1272 call delete('XtestOverProp') |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1273 endfunc |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1274 |
16682
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1275 func RunTestVisualBlock(width, dump) |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1276 call writefile([ |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1277 \ "call setline(1, [" |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1278 \ .. "'xxxxxxxxx 123 x'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1279 \ .. "'xxxxxxxx 123 x'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1280 \ .. "'xxxxxxx 123 x'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1281 \ .. "'xxxxxx 123 x'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1282 \ .. "'xxxxx 123 x'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1283 \ .. "'xxxx 123 xx'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1284 \ .. "'xxx 123 xxx'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1285 \ .. "'xx 123 xxxx'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1286 \ .. "'x 123 xxxxx'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1287 \ .. "' 123 xxxxxx'," |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1288 \ .. "])", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1289 \ "hi SearchProp ctermbg=yellow", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1290 \ "call prop_type_add('search', {'highlight': 'SearchProp'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1291 \ "call prop_add(1, 11, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1292 \ "call prop_add(2, 10, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1293 \ "call prop_add(3, 9, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1294 \ "call prop_add(4, 8, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1295 \ "call prop_add(5, 7, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1296 \ "call prop_add(6, 6, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1297 \ "call prop_add(7, 5, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1298 \ "call prop_add(8, 4, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1299 \ "call prop_add(9, 3, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1300 \ "call prop_add(10, 2, {'length': 3, 'type': 'search'})", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1301 \ "normal 1G6|\<C-V>" .. repeat('l', a:width - 1) .. "10jx", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1302 \], 'XtestPropVis') |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1303 let buf = RunVimInTerminal('-S XtestPropVis', {'rows': 12}) |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1304 call VerifyScreenDump(buf, 'Test_textprop_vis_' .. a:dump, {}) |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1305 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1306 " clean up |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1307 call StopVimInTerminal(buf) |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1308 call delete('XtestPropVis') |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1309 endfunc |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1310 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1311 " screenshot test with Visual block mode operations |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1312 func Test_textprop_screenshot_visual() |
18317
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1313 CheckScreendump |
16682
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1314 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1315 " Delete two columns while text props are three chars wide. |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1316 call RunTestVisualBlock(2, '01') |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1317 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1318 " Same, but delete four columns |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1319 call RunTestVisualBlock(4, '02') |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1320 endfunc |
16770
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1321 |
17143
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1322 func Test_textprop_after_tab() |
18317
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1323 CheckScreendump |
17147
a001a0d88d42
patch 8.1.1573: textprop test fails if screenhots do not work
Bram Moolenaar <Bram@vim.org>
parents:
17143
diff
changeset
|
1324 |
17143
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1325 let lines =<< trim END |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1326 call setline(1, [ |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1327 \ "\txxx", |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1328 \ "x\txxx", |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1329 \ ]) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1330 hi SearchProp ctermbg=yellow |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1331 call prop_type_add('search', {'highlight': 'SearchProp'}) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1332 call prop_add(1, 2, {'length': 3, 'type': 'search'}) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1333 call prop_add(2, 3, {'length': 3, 'type': 'search'}) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1334 END |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1335 call writefile(lines, 'XtestPropTab') |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1336 let buf = RunVimInTerminal('-S XtestPropTab', {'rows': 6}) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1337 call VerifyScreenDump(buf, 'Test_textprop_tab', {}) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1338 |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1339 " clean up |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1340 call StopVimInTerminal(buf) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1341 call delete('XtestPropTab') |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1342 endfunc |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1343 |
23901
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1344 func Test_textprop_nowrap_scrolled() |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1345 CheckScreendump |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1346 |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1347 let lines =<< trim END |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1348 vim9script |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1349 set nowrap |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1350 setline(1, 'The number 123 is smaller than 4567.' .. repeat('X', &columns)) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1351 prop_type_add('number', {'highlight': 'ErrorMsg'}) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1352 prop_add(1, 12, {'length': 3, 'type': 'number'}) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1353 prop_add(1, 32, {'length': 4, 'type': 'number'}) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1354 feedkeys('gg20zl', 'nxt') |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1355 END |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1356 call writefile(lines, 'XtestNowrap') |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1357 let buf = RunVimInTerminal('-S XtestNowrap', {'rows': 6}) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1358 call VerifyScreenDump(buf, 'Test_textprop_nowrap_01', {}) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1359 |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1360 call term_sendkeys(buf, "$") |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1361 call VerifyScreenDump(buf, 'Test_textprop_nowrap_02', {}) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1362 |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1363 " clean up |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1364 call StopVimInTerminal(buf) |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1365 call delete('XtestNowrap') |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1366 endfunc |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1367 |
29690
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1368 func Test_textprop_text_priority() |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1369 CheckScreendump |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1370 |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1371 let lines =<< trim END |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1372 call setline(1, "function( call, argument, here )") |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1373 |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1374 call prop_type_add('one', #{highlight: 'Error'}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1375 call prop_type_add('two', #{highlight: 'Function'}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1376 call prop_type_add('three', #{highlight: 'DiffChange'}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1377 call prop_type_add('arg', #{highlight: 'Search'}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1378 |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1379 call prop_add(1, 27, #{type: 'arg', length: len('here')}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1380 call prop_add(1, 27, #{type: 'three', text: 'three: '}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1381 call prop_add(1, 11, #{type: 'one', text: 'one: '}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1382 call prop_add(1, 11, #{type: 'arg', length: len('call')}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1383 call prop_add(1, 17, #{type: 'two', text: 'two: '}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1384 call prop_add(1, 17, #{type: 'arg', length: len('argument')}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1385 END |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1386 call writefile(lines, 'XtestPropPrio') |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1387 let buf = RunVimInTerminal('-S XtestPropPrio', {'rows': 5}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1388 call VerifyScreenDump(buf, 'Test_prop_at_same_pos', {}) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1389 |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1390 " clean up |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1391 call StopVimInTerminal(buf) |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1392 call delete('XtestPropPrio') |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1393 endfunc |
1a9b3c96ed08
patch 9.0.0185: virtual text does not show if text prop at same position
Bram Moolenaar <Bram@vim.org>
parents:
29688
diff
changeset
|
1394 |
18317
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1395 func Test_textprop_with_syntax() |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1396 CheckScreendump |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1397 |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1398 let lines =<< trim END |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1399 call setline(1, [ |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1400 \ "(abc)", |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1401 \ ]) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1402 syn match csParens "[()]" display |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1403 hi! link csParens MatchParen |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1404 |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1405 call prop_type_add('TPTitle', #{ highlight: 'Title' }) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1406 call prop_add(1, 2, #{type: 'TPTitle', end_col: 5}) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1407 END |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1408 call writefile(lines, 'XtestPropSyn') |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1409 let buf = RunVimInTerminal('-S XtestPropSyn', {'rows': 6}) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1410 call VerifyScreenDump(buf, 'Test_textprop_syn_1', {}) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1411 |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1412 " clean up |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1413 call StopVimInTerminal(buf) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1414 call delete('XtestPropSyn') |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1415 endfunc |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1416 |
16770
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1417 " Adding a text property to a new buffer should not fail |
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1418 func Test_textprop_empty_buffer() |
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1419 call prop_type_add('comment', {'highlight': 'Search'}) |
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1420 new |
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1421 call prop_add(1, 1, {'type': 'comment'}) |
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1422 close |
16786
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1423 call prop_type_delete('comment') |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1424 endfunc |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1425 |
17208
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1426 " Adding a text property with invalid highlight should be ignored. |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1427 func Test_textprop_invalid_highlight() |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1428 call assert_fails("call prop_type_add('dni', {'highlight': 'DoesNotExist'})", 'E970:') |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1429 new |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
1430 call setline(1, ['asdf', 'asdf']) |
17208
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1431 call prop_add(1, 1, {'length': 4, 'type': 'dni'}) |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1432 redraw |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1433 bwipe! |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1434 call prop_type_delete('dni') |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1435 endfunc |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1436 |
16786
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1437 " Adding a text property to an empty buffer and then editing another |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1438 func Test_textprop_empty_buffer_next() |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1439 call prop_type_add("xxx", {}) |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1440 call prop_add(1, 1, {"type": "xxx"}) |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1441 next X |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1442 call prop_type_delete('xxx') |
16770
09c81f17f83c
patch 8.1.1387: calling prop_add() in an empty buffer doesn't work
Bram Moolenaar <Bram@vim.org>
parents:
16714
diff
changeset
|
1443 endfunc |
16772
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1444 |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1445 func Test_textprop_remove_from_buf() |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1446 new |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1447 let buf = bufnr('') |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1448 call prop_type_add('one', {'bufnr': buf}) |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1449 call prop_add(1, 1, {'type': 'one', 'id': 234}) |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1450 file x |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1451 edit y |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1452 call prop_remove({'id': 234, 'bufnr': buf}, 1) |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1453 call prop_type_delete('one', {'bufnr': buf}) |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1454 bwipe! x |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1455 close |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1456 endfunc |
17694
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1457 |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1458 func Test_textprop_in_unloaded_buf() |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1459 edit Xaaa |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1460 call setline(1, 'aaa') |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1461 write |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1462 edit Xbbb |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1463 call setline(1, 'bbb') |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1464 write |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1465 let bnr = bufnr('') |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1466 edit Xaaa |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1467 |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1468 call prop_type_add('ErrorMsg', #{highlight:'ErrorMsg'}) |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1469 call assert_fails("call prop_add(1, 1, #{end_lnum: 1, endcol: 2, type: 'ErrorMsg', bufnr: bnr})", 'E275:') |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1470 exe 'buf ' .. bnr |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1471 call assert_equal('bbb', getline(1)) |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1472 call assert_equal(0, prop_list(1)->len()) |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1473 |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1474 bwipe! Xaaa |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1475 bwipe! Xbbb |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1476 cal delete('Xaaa') |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1477 cal delete('Xbbb') |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1478 endfunc |
18444
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1479 |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1480 func Test_proptype_substitute2() |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1481 new |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1482 " text_prop.vim |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1483 call setline(1, [ |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1484 \ 'The num 123 is smaller than 4567.', |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1485 \ '123 The number 123 is smaller than 4567.', |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1486 \ '123 The number 123 is smaller than 4567.']) |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1487 |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1488 call prop_type_add('number', {'highlight': 'ErrorMsg'}) |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1489 |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1490 call prop_add(1, 12, {'length': 3, 'type': 'number'}) |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1491 call prop_add(2, 1, {'length': 3, 'type': 'number'}) |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1492 call prop_add(3, 36, {'length': 4, 'type': 'number'}) |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1493 set ul& |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1494 let expected = [ |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1495 \ #{type_bufnr: 0, id: 0, col: 13, end: 1, type: 'number', length: 3, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1496 \ #{type_bufnr: 0, id: 0, col: 1, end: 1, type: 'number', length: 3, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1497 \ #{type_bufnr: 0, id: 0, col: 50, end: 1, type: 'number', length: 4, start: 1}] |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1498 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1499 " TODO |
29609
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1500 if 0 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1501 " Add some text in between |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1502 %s/\s\+/ /g |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1503 call assert_equal(expected, prop_list(1) + prop_list(2) + prop_list(3)) |
18444
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1504 |
29609
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1505 " remove some text |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1506 :1s/[a-z]\{3\}//g |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1507 let expected = [{'id': 0, 'col': 10, 'end': 1, 'type': 'number', 'length': 3, 'start': 1}] |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1508 call assert_equal(expected, prop_list(1)) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1509 endif |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1510 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1511 call prop_type_delete('number') |
18444
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1512 bwipe! |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1513 endfunc |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1514 |
22331
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1515 " This was causing property corruption. |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1516 func Test_proptype_substitute3() |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1517 new |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1518 call setline(1, ['abcxxx', 'def']) |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1519 call prop_type_add("test", {"highlight": "Search"}) |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1520 call prop_add(1, 2, {"end_lnum": 2, "end_col": 2, "type": "test"}) |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1521 %s/x\+$// |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1522 redraw |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1523 |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1524 call prop_type_delete('test') |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1525 bwipe! |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1526 endfunc |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1527 |
29609
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1528 func Test_proptype_substitute_join() |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1529 new |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1530 call setline(1, [ |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1531 \ 'This is some end', |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1532 \ 'start is highlighted end', |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1533 \ 'some is highlighted', |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1534 \ 'start is also highlighted']) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1535 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1536 call prop_type_add('number', {'highlight': 'ErrorMsg'}) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1537 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1538 call prop_add(1, 6, {'length': 2, 'type': 'number'}) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1539 call prop_add(2, 7, {'length': 2, 'type': 'number'}) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1540 call prop_add(3, 6, {'length': 2, 'type': 'number'}) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1541 call prop_add(4, 7, {'length': 2, 'type': 'number'}) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1542 " The highlighted "is" in line 1, 2 and 4 is kept and ajudsted. |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1543 " The highlighted "is" in line 3 is deleted. |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1544 let expected = [ |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1545 \ #{type_bufnr: 0, id: 0, col: 6, end: 1, type: 'number', length: 2, start: 1}, |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1546 \ #{type_bufnr: 0, id: 0, col: 21, end: 1, type: 'number', length: 2, start: 1}, |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1547 \ #{type_bufnr: 0, id: 0, col: 43, end: 1, type: 'number', length: 2, start: 1}] |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1548 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1549 s/end\nstart/joined/ |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1550 s/end\n.*\nstart/joined/ |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1551 call assert_equal('This is some joined is highlighted joined is also highlighted', getline(1)) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1552 call assert_equal(expected, prop_list(1)) |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1553 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1554 call prop_type_delete('number') |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1555 bwipe! |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1556 endfunc |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1557 |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1558 func SaveOptions() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1559 let d = #{tabstop: &tabstop, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1560 \ softtabstop: &softtabstop, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1561 \ shiftwidth: &shiftwidth, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1562 \ expandtab: &expandtab, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1563 \ foldmethod: '"' .. &foldmethod .. '"', |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1564 \ } |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1565 return d |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1566 endfunc |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1567 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1568 func RestoreOptions(dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1569 for name in keys(a:dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1570 exe 'let &' .. name .. ' = ' .. a:dict[name] |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1571 endfor |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1572 endfunc |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1573 |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1574 func Test_textprop_noexpandtab() |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1575 new |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1576 let save_dict = SaveOptions() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1577 |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1578 set tabstop=8 |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1579 set softtabstop=4 |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1580 set shiftwidth=4 |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1581 set noexpandtab |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1582 set foldmethod=marker |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1583 |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1584 call feedkeys("\<esc>\<esc>0Ca\<cr>\<esc>\<up>", "tx") |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1585 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1586 call prop_add(1, 1, {'end_col': 2, 'type': 'test'}) |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1587 call feedkeys("0i\<tab>", "tx") |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1588 call prop_remove({'type': 'test'}) |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1589 call prop_add(1, 2, {'end_col': 3, 'type': 'test'}) |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1590 call feedkeys("A\<left>\<tab>", "tx") |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1591 call prop_remove({'type': 'test'}) |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1592 try |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1593 " It is correct that this does not pass |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1594 call prop_add(1, 6, {'end_col': 7, 'type': 'test'}) |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1595 " Has already collapsed here, start_col:6 does not result in an error |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1596 call feedkeys("A\<left>\<tab>", "tx") |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1597 catch /^Vim\%((\a\+)\)\=:E964/ |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1598 endtry |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1599 call prop_remove({'type': 'test'}) |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1600 call prop_type_delete('test') |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1601 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1602 call RestoreOptions(save_dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1603 bwipe! |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1604 endfunc |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1605 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1606 func Test_textprop_noexpandtab_redraw() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1607 new |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1608 let save_dict = SaveOptions() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1609 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1610 set tabstop=8 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1611 set softtabstop=4 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1612 set shiftwidth=4 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1613 set noexpandtab |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1614 set foldmethod=marker |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1615 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1616 call feedkeys("\<esc>\<esc>0Ca\<cr>\<space>\<esc>\<up>", "tx") |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1617 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1618 call prop_add(1, 1, {'end_col': 2, 'type': 'test'}) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1619 call feedkeys("0i\<tab>", "tx") |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1620 " Internally broken at the next line |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1621 call feedkeys("A\<left>\<tab>", "tx") |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1622 redraw |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1623 " Index calculation failed internally on next line |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1624 call prop_add(1, 1, {'end_col': 2, 'type': 'test'}) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1625 call prop_remove({'type': 'test', 'all': v:true}) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1626 call prop_type_delete('test') |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1627 call prop_type_delete('test') |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1628 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1629 call RestoreOptions(save_dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1630 bwipe! |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1631 endfunc |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1632 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1633 func Test_textprop_ins_str() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1634 new |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1635 call setline(1, 'just some text') |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1636 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1637 call prop_add(1, 1, {'end_col': 2, 'type': 'test'}) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1638 call assert_equal([#{type_bufnr: 0, id: 0, col: 1, end: 1, type: 'test', length: 1, start: 1}], prop_list(1)) |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1639 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1640 call feedkeys("foi\<F8>\<Esc>", "tx") |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1641 call assert_equal('just s<F8>ome text', getline(1)) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1642 call assert_equal([#{type_bufnr: 0, id: 0, col: 1, end: 1, type: 'test', length: 1, start: 1}], prop_list(1)) |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1643 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1644 bwipe! |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1645 call prop_remove({'type': 'test'}) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1646 call prop_type_delete('test') |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1647 endfunc |
19631
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1648 |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1649 func Test_find_prop_later_in_line() |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1650 new |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1651 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1652 call setline(1, 'just some text') |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1653 call prop_add(1, 1, {'length': 4, 'type': 'test'}) |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1654 call prop_add(1, 10, {'length': 3, 'type': 'test'}) |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1655 |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1656 call assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1657 \ #{type_bufnr: 0, id: 0, lnum: 1, col: 10, end: 1, type: 'test', length: 3, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1658 \ prop_find(#{type: 'test', lnum: 1, col: 6})) |
19631
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1659 |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1660 bwipe! |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1661 call prop_type_delete('test') |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1662 endfunc |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1663 |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1664 func Test_find_zerowidth_prop_sol() |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1665 new |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1666 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1667 call setline(1, 'just some text') |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1668 call prop_add(1, 1, {'length': 0, 'type': 'test'}) |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1669 |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1670 call assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1671 \ #{type_bufnr: 0, id: 0, lnum: 1, col: 1, end: 1, type: 'test', length: 0, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1672 \ prop_find(#{type: 'test', lnum: 1})) |
19631
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1673 |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1674 bwipe! |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1675 call prop_type_delete('test') |
1d493fce1fbd
patch 8.2.0372: prop_find() may not find text property at start of the line
Bram Moolenaar <Bram@vim.org>
parents:
19601
diff
changeset
|
1676 endfunc |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1677 |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1678 " Test for passing invalid arguments to prop_xxx() functions |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1679 func Test_prop_func_invalid_args() |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1680 call assert_fails('call prop_clear(1, 2, [])', 'E715:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1681 call assert_fails('call prop_clear(-1, 2)', 'E16:') |
29994
86eb4aba16c3
patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents:
29918
diff
changeset
|
1682 call assert_fails('call prop_find(test_null_dict())', 'E1297:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
20583
diff
changeset
|
1683 call assert_fails('call prop_find({"bufnr" : []})', 'E730:') |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1684 call assert_fails('call prop_find({})', 'E968:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1685 call assert_fails('call prop_find({}, "x")', 'E474:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1686 call assert_fails('call prop_find({"lnum" : -2})', 'E16:') |
29994
86eb4aba16c3
patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents:
29918
diff
changeset
|
1687 call assert_fails('call prop_list(1, [])', 'E1206:') |
21552
cbc570e66d11
patch 8.2.1326: Vim9: skipping over white space after list
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
1688 call assert_fails('call prop_list(-1, {})', 'E16:') |
29994
86eb4aba16c3
patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents:
29918
diff
changeset
|
1689 call assert_fails('call prop_remove([])', 'E1206:') |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1690 call assert_fails('call prop_remove({}, -2)', 'E16:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1691 call assert_fails('call prop_remove({})', 'E968:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
20583
diff
changeset
|
1692 call assert_fails('call prop_type_add([], {})', 'E730:') |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1693 call assert_fails("call prop_type_change('long', {'xyz' : 10})", 'E971:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
20583
diff
changeset
|
1694 call assert_fails("call prop_type_delete([])", 'E730:') |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1695 call assert_fails("call prop_type_delete('xyz', [])", 'E715:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
20583
diff
changeset
|
1696 call assert_fails("call prop_type_get([])", 'E730:') |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1697 call assert_fails("call prop_type_get('', [])", 'E474:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1698 call assert_fails("call prop_type_list([])", 'E715:') |
24039
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1699 call assert_fails("call prop_type_add('yyy', 'not_a_dict')", 'E715:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1700 call assert_fails("call prop_add(1, 5, {'type':'missing_type', 'length':1})", 'E971:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1701 call assert_fails("call prop_add(1, 5, {'type': ''})", 'E971:') |
29994
86eb4aba16c3
patch 9.0.0335: checks for Dictionary argument often give a vague error
Bram Moolenaar <Bram@vim.org>
parents:
29918
diff
changeset
|
1702 call assert_fails('call prop_add(1, 1, 0)', 'E1206:') |
24039
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1703 |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1704 new |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1705 call setline(1, ['first', 'second']) |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1706 call prop_type_add('xxx', {}) |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1707 |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1708 call assert_fails("call prop_type_add('xxx', {})", 'E969:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1709 call assert_fails("call prop_add(2, 0, {'type': 'xxx'})", 'E964:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1710 call assert_fails("call prop_add(2, 3, {'type': 'xxx', 'end_lnum':1})", 'E475:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1711 call assert_fails("call prop_add(2, 3, {'type': 'xxx', 'end_lnum':3})", 'E966:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1712 call assert_fails("call prop_add(2, 3, {'type': 'xxx', 'length':-1})", 'E475:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1713 call assert_fails("call prop_add(2, 3, {'type': 'xxx', 'end_col':0})", 'E475:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1714 call assert_fails("call prop_add(2, 3, {'length':1})", 'E965:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1715 |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1716 call prop_type_delete('xxx') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1717 bwipe! |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1718 endfunc |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1719 |
22278
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1720 func Test_prop_split_join() |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1721 new |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1722 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1723 call setline(1, 'just some text') |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1724 call prop_add(1, 6, {'length': 4, 'type': 'test'}) |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1725 |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1726 " Split in middle of "some" |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1727 execute "normal! 8|i\<CR>" |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1728 call assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1729 \ [#{type_bufnr: 0, id: 0, col: 6, end: 0, type: 'test', length: 2, start: 1}], |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1730 \ prop_list(1)) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1731 call assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1732 \ [#{type_bufnr: 0, id: 0, col: 1, end: 1, type: 'test', length: 2, start: 0}], |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1733 \ prop_list(2)) |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1734 |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1735 " Join the two lines back together |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1736 normal! 1GJ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1737 call assert_equal([#{type_bufnr: 0, id: 0, col: 6, end: 1, type: 'test', length: 5, start: 1}], prop_list(1)) |
20583
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1738 |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1739 bwipe! |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1740 call prop_type_delete('test') |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1741 endfunc |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1742 |
22278
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1743 func Test_prop_increment_decrement() |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1744 new |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1745 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1746 call setline(1, 'its 998 times') |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1747 call prop_add(1, 5, {'length': 3, 'type': 'test'}) |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1748 |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1749 exe "normal! 0f9\<C-A>" |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1750 eval getline(1)->assert_equal('its 999 times') |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1751 eval prop_list(1)->assert_equal([ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1752 \ #{type_bufnr: 0, id: 0, col: 5, end: 1, type: 'test', length: 3, start: 1}]) |
22278
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1753 |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1754 exe "normal! 0f9\<C-A>" |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1755 eval getline(1)->assert_equal('its 1000 times') |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1756 eval prop_list(1)->assert_equal([ |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1757 \ #{type_bufnr: 0, id: 0, col: 5, end: 1, type: 'test', length: 4, start: 1}]) |
22278
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1758 |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1759 bwipe! |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1760 call prop_type_delete('test') |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1761 endfunc |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1762 |
22282
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1763 func Test_prop_block_insert() |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1764 new |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1765 call prop_type_add('test', {'highlight': 'ErrorMsg'}) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1766 call setline(1, ['one ', 'two ']) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1767 call prop_add(1, 1, {'length': 3, 'type': 'test'}) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1768 call prop_add(2, 1, {'length': 3, 'type': 'test'}) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1769 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1770 " insert "xx" in the first column of both lines |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1771 exe "normal! gg0\<C-V>jIxx\<Esc>" |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1772 eval getline(1, 2)->assert_equal(['xxone ', 'xxtwo ']) |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1773 let expected = [#{type_bufnr: 0, id: 0, col: 3, end: 1, type: 'test', length: 3, start: 1}] |
22282
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1774 eval prop_list(1)->assert_equal(expected) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1775 eval prop_list(2)->assert_equal(expected) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1776 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1777 " insert "yy" inside the text props to make them longer |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1778 exe "normal! gg03l\<C-V>jIyy\<Esc>" |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1779 eval getline(1, 2)->assert_equal(['xxoyyne ', 'xxtyywo ']) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1780 let expected[0].length = 5 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1781 eval prop_list(1)->assert_equal(expected) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1782 eval prop_list(2)->assert_equal(expected) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1783 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1784 " insert "zz" after the text props, text props don't change |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1785 exe "normal! gg07l\<C-V>jIzz\<Esc>" |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1786 eval getline(1, 2)->assert_equal(['xxoyynezz ', 'xxtyywozz ']) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1787 eval prop_list(1)->assert_equal(expected) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1788 eval prop_list(2)->assert_equal(expected) |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1789 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1790 bwipe! |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1791 call prop_type_delete('test') |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1792 endfunc |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1793 |
23306
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1794 " this was causing an ml_get error because w_botline was wrong |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1795 func Test_prop_one_line_window() |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1796 enew |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1797 call range(2)->setline(1) |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1798 call prop_type_add('testprop', {}) |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1799 call prop_add(1, 1, {'type': 'testprop'}) |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1800 call popup_create('popup', {'textprop': 'testprop'}) |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1801 $ |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1802 new |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1803 wincmd _ |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1804 call feedkeys("\r", 'xt') |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1805 redraw |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1806 |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1807 call popup_clear() |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1808 call prop_type_delete('testprop') |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1809 close |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1810 bwipe! |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1811 endfunc |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1812 |
29587
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1813 def Test_prop_column_zero_error() |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1814 prop_type_add('proptype', {highlight: 'Search'}) |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1815 var caught = false |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1816 try |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1817 popup_create([{ |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1818 text: 'a', |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1819 props: [{col: 0, length: 1, type: 'type'}], |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1820 }], {}) |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1821 catch /E964:/ |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1822 caught = true |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1823 endtry |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1824 assert_true(caught) |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1825 |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1826 popup_clear() |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1827 prop_type_delete('proptype') |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1828 enddef |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1829 |
24703
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1830 " This was calling ml_append_int() and copy a text property from a previous |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1831 " line at the wrong moment. Exact text length matters. |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1832 def Test_prop_splits_data_block() |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1833 new |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1834 var lines: list<string> = [repeat('x', 35)]->repeat(41) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1835 + [repeat('!', 35)] |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1836 + [repeat('x', 35)]->repeat(56) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1837 lines->setline(1) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1838 prop_type_add('someprop', {highlight: 'ErrorMsg'}) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1839 prop_add(1, 27, {end_lnum: 1, end_col: 70, type: 'someprop'}) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1840 prop_remove({type: 'someprop'}, 1) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1841 prop_add(35, 22, {end_lnum: 43, end_col: 43, type: 'someprop'}) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1842 prop_remove({type: 'someprop'}, 35, 43) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1843 assert_equal([], prop_list(42)) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1844 |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1845 bwipe! |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1846 prop_type_delete('someprop') |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1847 enddef |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1848 |
25050
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1849 " This was calling ml_delete_int() and try to change text properties. |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1850 def Test_prop_add_delete_line() |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1851 new |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1852 var a = 10 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1853 var b = 20 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1854 repeat([''], a)->append('$') |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1855 prop_type_add('Test', {highlight: 'ErrorMsg'}) |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1856 for lnum in range(1, a) |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1857 for col in range(1, b) |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1858 prop_add(1, 1, {end_lnum: lnum, end_col: col, type: 'Test'}) |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1859 endfor |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1860 endfor |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1861 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1862 # check deleting lines is OK |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1863 :5del |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1864 :1del |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1865 :$del |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1866 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1867 prop_type_delete('Test') |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1868 bwipe! |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1869 enddef |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1870 |
28875
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1871 " This test is to detect a regression related to #10430. It is not an attempt |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1872 " fully cover deleting lines in the presence of multi-line properties. |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1873 def Test_delete_line_within_multiline_prop() |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1874 new |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1875 setline(1, '# Top.') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1876 append(1, ['some_text = """', 'A string.', '"""', '# Bottom.']) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1877 prop_type_add('Identifier', {'highlight': 'ModeMsg', 'priority': 0, 'combine': 0, 'start_incl': 0, 'end_incl': 0}) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1878 prop_type_add('String', {'highlight': 'MoreMsg', 'priority': 0, 'combine': 0, 'start_incl': 0, 'end_incl': 0}) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1879 prop_add(2, 1, {'type': 'Identifier', 'end_lnum': 2, 'end_col': 9}) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1880 prop_add(2, 13, {'type': 'String', 'end_lnum': 4, 'end_col': 4}) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1881 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1882 # The property for line 3 should extend into the previous and next lines. |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1883 var props = prop_list(3) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1884 var prop = props[0] |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1885 assert_equal(1, len(props)) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1886 assert_equal(0, prop['start']) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1887 assert_equal(0, prop['end']) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1888 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1889 # This deletion should run without raising an exception. |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1890 try |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1891 :2 del |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1892 catch |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1893 assert_report('Line delete should have workd, but it raised an error.') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1894 endtry |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1895 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1896 # The property for line 2 (was 3) should no longer extend into the previous |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1897 # line. |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1898 props = prop_list(2) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1899 prop = props[0] |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1900 assert_equal(1, len(props)) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1901 assert_equal(1, prop['start'], 'Property was not changed to start within the line.') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1902 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1903 # This deletion should run without raising an exception. |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1904 try |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1905 :3 del |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1906 catch |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1907 assert_report('Line delete should have workd, but it raised an error.') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1908 endtry |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1909 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1910 # The property for line 2 (originally 3) should no longer extend into the next |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1911 # line. |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1912 props = prop_list(2) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1913 prop = props[0] |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1914 assert_equal(1, len(props)) |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1915 assert_equal(1, prop['end'], 'Property was not changed to end within the line.') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1916 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1917 prop_type_delete('Identifier') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1918 prop_type_delete('String') |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1919 bwip! |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1920 enddef |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1921 |
26338
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1922 func Test_prop_in_linebreak() |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1923 CheckRunVimInTerminal |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1924 |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1925 let lines =<< trim END |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1926 set breakindent linebreak breakat+=] |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1927 call printf('%s]%s', repeat('x', 50), repeat('x', 70))->setline(1) |
30039
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1928 call prop_type_add('test', #{highlight: 'MatchParen'}) |
26338
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1929 call prop_add(1, 51, #{length: 1, type: 'test'}) |
30039
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1930 func AddMatch() |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1931 syntax on |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1932 syntax match xTest /.*/ |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1933 hi link xTest Comment |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1934 set signcolumn=yes |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1935 endfunc |
26338
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1936 END |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1937 call writefile(lines, 'XscriptPropLinebreak') |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1938 let buf = RunVimInTerminal('-S XscriptPropLinebreak', #{rows: 10}) |
30039
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1939 call VerifyScreenDump(buf, 'Test_prop_linebreak_1', {}) |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1940 |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1941 call term_sendkeys(buf, ":call AddMatch()\<CR>") |
4b9b237d1211
patch 9.0.0357: 'linebreak' interferes with text property highlight
Bram Moolenaar <Bram@vim.org>
parents:
30015
diff
changeset
|
1942 call VerifyScreenDump(buf, 'Test_prop_linebreak_2', {}) |
26338
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1943 |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1944 call StopVimInTerminal(buf) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1945 call delete('XscriptPropLinebreak') |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1946 endfunc |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1947 |
29686
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1948 func Test_prop_with_linebreak() |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1949 CheckRunVimInTerminal |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1950 |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1951 let lines =<< trim END |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1952 vim9script |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1953 set linebreak |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1954 setline(1, 'one twoword') |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1955 prop_type_add('test', {highlight: 'Special'}) |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1956 prop_add(1, 4, {text: ': virtual text', type: 'test', text_wrap: 'wrap'}) |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1957 END |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1958 call writefile(lines, 'XscriptPropWithLinebreak') |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1959 let buf = RunVimInTerminal('-S XscriptPropWithLinebreak', #{rows: 6, cols: 50}) |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1960 call VerifyScreenDump(buf, 'Test_prop_with_linebreak_1', {}) |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1961 call term_sendkeys(buf, "iasdf asdf asdf asdf asdf as\<Esc>") |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1962 call VerifyScreenDump(buf, 'Test_prop_with_linebreak_2', {}) |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1963 |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1964 call StopVimInTerminal(buf) |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1965 call delete('XscriptPropWithLinebreak') |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1966 endfunc |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1967 |
29688
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1968 func Test_prop_with_wrap() |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1969 CheckRunVimInTerminal |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1970 |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1971 let lines =<< trim END |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1972 vim9script |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1973 set linebreak |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1974 setline(1, 'asdf '->repeat(15)) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1975 prop_type_add('test', {highlight: 'Special'}) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1976 prop_add(1, 43, {text: 'some virtual text', type: 'test'}) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1977 END |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1978 call writefile(lines, 'XscriptPropWithWrap') |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1979 let buf = RunVimInTerminal('-S XscriptPropWithWrap', #{rows: 6, cols: 50}) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1980 call VerifyScreenDump(buf, 'Test_prop_with_wrap_1', {}) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1981 |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1982 call StopVimInTerminal(buf) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1983 call delete('XscriptPropWithWrap') |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1984 endfunc |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1985 |
26350
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1986 func Test_prop_after_tab() |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1987 CheckRunVimInTerminal |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1988 |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1989 let lines =<< trim END |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1990 set breakindent linebreak breakat+=] |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1991 call setline(1, "\t[xxx]") |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1992 call prop_type_add('test', #{highlight: 'ErrorMsg'}) |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1993 call prop_add(1, 2, #{length: 1, type: 'test'}) |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1994 END |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1995 call writefile(lines, 'XscriptPropAfterTab') |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1996 let buf = RunVimInTerminal('-S XscriptPropAfterTab', #{rows: 10}) |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1997 call VerifyScreenDump(buf, 'Test_prop_after_tab', {}) |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1998 |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1999 call StopVimInTerminal(buf) |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
2000 call delete('XscriptPropAfterTab') |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
2001 endfunc |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
2002 |
29676
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2003 func Test_prop_before_tab() |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2004 CheckRunVimInTerminal |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2005 |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2006 let lines =<< trim END |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2007 call setline(1, ["\tx"]->repeat(6)) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2008 call prop_type_add('test', #{highlight: 'Search'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2009 call prop_add(1, 1, #{type: 'test', text: '123'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2010 call prop_add(2, 1, #{type: 'test', text: '1234567'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2011 call prop_add(3, 1, #{type: 'test', text: '12345678'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2012 call prop_add(4, 1, #{type: 'test', text: '123456789'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2013 call prop_add(5, 2, #{type: 'test', text: 'ABC'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2014 call prop_add(6, 3, #{type: 'test', text: 'ABC'}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2015 normal gg0 |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2016 END |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2017 call writefile(lines, 'XscriptPropBeforeTab') |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2018 let buf = RunVimInTerminal('-S XscriptPropBeforeTab', #{rows: 8}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2019 call VerifyScreenDump(buf, 'Test_prop_before_tab_01', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2020 call term_sendkeys(buf, "$") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2021 call VerifyScreenDump(buf, 'Test_prop_before_tab_02', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2022 call term_sendkeys(buf, "j0") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2023 call VerifyScreenDump(buf, 'Test_prop_before_tab_03', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2024 call term_sendkeys(buf, "$") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2025 call VerifyScreenDump(buf, 'Test_prop_before_tab_04', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2026 call term_sendkeys(buf, "j0") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2027 call VerifyScreenDump(buf, 'Test_prop_before_tab_05', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2028 call term_sendkeys(buf, "$") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2029 call VerifyScreenDump(buf, 'Test_prop_before_tab_06', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2030 call term_sendkeys(buf, "j0") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2031 call VerifyScreenDump(buf, 'Test_prop_before_tab_07', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2032 call term_sendkeys(buf, "$") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2033 call VerifyScreenDump(buf, 'Test_prop_before_tab_08', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2034 call term_sendkeys(buf, "j") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2035 call VerifyScreenDump(buf, 'Test_prop_before_tab_09', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2036 call term_sendkeys(buf, "j") |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2037 call VerifyScreenDump(buf, 'Test_prop_before_tab_10', {}) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2038 |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2039 call StopVimInTerminal(buf) |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2040 call delete('XscriptPropBeforeTab') |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2041 endfunc |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2042 |
26384
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2043 func Test_prop_after_linebreak() |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2044 CheckRunVimInTerminal |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2045 |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2046 let lines =<< trim END |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2047 set linebreak wrap |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2048 call printf('%s+(%s)', 'x'->repeat(&columns / 2), 'x'->repeat(&columns / 2))->setline(1) |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2049 call prop_type_add('test', #{highlight: 'ErrorMsg'}) |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2050 call prop_add(1, (&columns / 2) + 2, #{length: 1, type: 'test'}) |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2051 END |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2052 call writefile(lines, 'XscriptPropAfterLinebreak') |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2053 let buf = RunVimInTerminal('-S XscriptPropAfterLinebreak', #{rows: 10}) |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2054 call VerifyScreenDump(buf, 'Test_prop_after_linebreak', {}) |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2055 |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2056 call StopVimInTerminal(buf) |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2057 call delete('XscriptPropAfterLinebreak') |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2058 endfunc |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2059 |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2060 " Buffer number of 0 should be ignored, as if the parameter wasn't passed. |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2061 def Test_prop_bufnr_zero() |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2062 new |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2063 try |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2064 var bufnr = bufnr('') |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2065 setline(1, 'hello') |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2066 prop_type_add('bufnr-global', {highlight: 'ErrorMsg'}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2067 prop_type_add('bufnr-buffer', {highlight: 'StatusLine', bufnr: bufnr}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2068 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2069 prop_add(1, 1, {type: 'bufnr-global', length: 1}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2070 prop_add(1, 2, {type: 'bufnr-buffer', length: 1}) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2071 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2072 var list = prop_list(1) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2073 assert_equal([ |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2074 {id: 0, col: 1, type_bufnr: 0, end: 1, type: 'bufnr-global', length: 1, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2075 {id: 0, col: 2, type_bufnr: bufnr, end: 1, type: 'bufnr-buffer', length: 1, start: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2076 ], list) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2077 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2078 assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2079 {highlight: 'ErrorMsg', end_incl: 0, start_incl: 0, priority: 0, combine: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2080 prop_type_get('bufnr-global', {bufnr: list[0].type_bufnr})) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2081 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2082 assert_equal( |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2083 {highlight: 'StatusLine', end_incl: 0, start_incl: 0, priority: 0, bufnr: bufnr, combine: 1}, |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2084 prop_type_get('bufnr-buffer', {bufnr: list[1].type_bufnr})) |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2085 finally |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2086 bwipe! |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2087 prop_type_delete('bufnr-global') |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2088 endtry |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2089 enddef |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2090 |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2091 " Tests for the prop_list() function |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2092 func Test_prop_list() |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2093 let lines =<< trim END |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2094 new |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
2095 call g:AddPropTypes() |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2096 call setline(1, repeat([repeat('a', 60)], 10)) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2097 call prop_add(1, 4, {'type': 'one', 'id': 5, 'end_col': 6}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2098 call prop_add(1, 5, {'type': 'two', 'id': 10, 'end_col': 7}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2099 call prop_add(3, 12, {'type': 'one', 'id': 20, 'end_col': 14}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2100 call prop_add(3, 13, {'type': 'two', 'id': 10, 'end_col': 15}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2101 call prop_add(5, 20, {'type': 'one', 'id': 10, 'end_col': 22}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2102 call prop_add(5, 21, {'type': 'two', 'id': 20, 'end_col': 23}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2103 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2104 \ {'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2105 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2106 \ {'id': 10, 'col': 5, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2107 \ 'type': 'two', 'length': 2, 'start': 1}], prop_list(1)) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2108 #" text properties between a few lines |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2109 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2110 \ {'lnum': 3, 'id': 20, 'col': 12, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2111 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2112 \ {'lnum': 3, 'id': 10, 'col': 13, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2113 \ 'type': 'two', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2114 \ {'lnum': 5, 'id': 10, 'col': 20, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2115 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2116 \ {'lnum': 5, 'id': 20, 'col': 21, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2117 \ 'type': 'two', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2118 \ prop_list(2, {'end_lnum': 5})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2119 #" text properties across all the lines |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2120 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2121 \ {'lnum': 1, 'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2122 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2123 \ {'lnum': 3, 'id': 20, 'col': 12, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2124 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2125 \ {'lnum': 5, 'id': 10, 'col': 20, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2126 \ 'type': 'one', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2127 \ prop_list(1, {'types': ['one'], 'end_lnum': -1})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2128 #" text properties with the specified identifier |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2129 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2130 \ {'lnum': 3, 'id': 20, 'col': 12, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2131 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2132 \ {'lnum': 5, 'id': 20, 'col': 21, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2133 \ 'type': 'two', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2134 \ prop_list(1, {'ids': [20], 'end_lnum': 10})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2135 #" text properties of the specified type and id |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2136 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2137 \ {'lnum': 1, 'id': 10, 'col': 5, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2138 \ 'type': 'two', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2139 \ {'lnum': 3, 'id': 10, 'col': 13, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2140 \ 'type': 'two', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2141 \ prop_list(1, {'types': ['two'], 'ids': [10], 'end_lnum': 20})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2142 call assert_equal([], prop_list(1, {'ids': [40, 50], 'end_lnum': 10})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2143 call assert_equal([], prop_list(6, {'end_lnum': 10})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2144 call assert_equal([], prop_list(2, {'end_lnum': 2})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2145 #" error cases |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2146 call assert_fails("echo prop_list(1, {'end_lnum': -20})", 'E16:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2147 call assert_fails("echo prop_list(4, {'end_lnum': 2})", 'E16:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2148 call assert_fails("echo prop_list(1, {'end_lnum': '$'})", 'E889:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2149 call assert_fails("echo prop_list(1, {'types': ['blue'], 'end_lnum': 10})", |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2150 \ 'E971:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2151 call assert_fails("echo prop_list(1, {'types': ['one', 'blue'], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2152 \ 'end_lnum': 10})", 'E971:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2153 call assert_fails("echo prop_list(1, {'types': ['one', 10], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2154 \ 'end_lnum': 10})", 'E928:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2155 call assert_fails("echo prop_list(1, {'types': ['']})", 'E971:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2156 call assert_equal([], prop_list(2, {'types': []})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2157 call assert_equal([], prop_list(2, {'types': test_null_list()})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2158 call assert_fails("call prop_list(1, {'types': {}})", 'E714:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2159 call assert_fails("call prop_list(1, {'types': 'one'})", 'E714:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2160 call assert_equal([], prop_list(2, {'types': ['one'], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2161 \ 'ids': test_null_list()})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2162 call assert_equal([], prop_list(2, {'types': ['one'], 'ids': []})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2163 call assert_fails("call prop_list(1, {'types': ['one'], 'ids': {}})", |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2164 \ 'E714:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2165 call assert_fails("call prop_list(1, {'types': ['one'], 'ids': 10})", |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2166 \ 'E714:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2167 call assert_fails("call prop_list(1, {'types': ['one'], 'ids': [[]]})", |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2168 \ 'E745:') |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2169 call assert_fails("call prop_list(1, {'types': ['one'], 'ids': [10, []]})", |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2170 \ 'E745:') |
25392
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2171 |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2172 #" get text properties from a non-current buffer |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2173 wincmd w |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2174 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2175 \ {'lnum': 1, 'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2176 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2177 \ {'lnum': 1, 'id': 10, 'col': 5, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2178 \ 'type': 'two', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2179 \ {'lnum': 3, 'id': 20, 'col': 12, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2180 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2181 \ {'lnum': 3, 'id': 10, 'col': 13, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2182 \ 'type': 'two', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2183 \ prop_list(1, {'bufnr': winbufnr(1), 'end_lnum': 4})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2184 wincmd w |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2185 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2186 #" get text properties after clearing all the properties |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2187 call prop_clear(1, line('$')) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2188 call assert_equal([], prop_list(1, {'end_lnum': 10})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2189 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2190 call prop_add(2, 4, {'type': 'one', 'id': 5, 'end_col': 6}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2191 call prop_add(2, 4, {'type': 'two', 'id': 10, 'end_col': 6}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2192 call prop_add(2, 4, {'type': 'three', 'id': 15, 'end_col': 6}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2193 #" get text properties with a list of types |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2194 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2195 \ {'id': 10, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2196 \ 'type': 'two', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2197 \ {'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2198 \ 'type': 'one', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2199 \ prop_list(2, {'types': ['one', 'two']})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2200 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2201 \ {'id': 15, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2202 \ 'type': 'three', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2203 \ {'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2204 \ 'type': 'one', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2205 \ prop_list(2, {'types': ['one', 'three']})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2206 #" get text properties with a list of identifiers |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2207 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2208 \ {'id': 10, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2209 \ 'type': 'two', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2210 \ {'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2211 \ 'type': 'one', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2212 \ prop_list(2, {'ids': [5, 10, 20]})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2213 call prop_clear(1, line('$')) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2214 call assert_equal([], prop_list(2, {'types': ['one', 'two']})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2215 call assert_equal([], prop_list(2, {'ids': [5, 10, 20]})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2216 |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2217 #" get text properties from a hidden buffer |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2218 edit! Xaaa |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2219 call setline(1, repeat([repeat('b', 60)], 10)) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2220 call prop_add(1, 4, {'type': 'one', 'id': 5, 'end_col': 6}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2221 call prop_add(4, 8, {'type': 'two', 'id': 10, 'end_col': 10}) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2222 VAR bnr = bufnr() |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2223 hide edit Xbbb |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2224 call assert_equal([ |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2225 \ {'lnum': 1, 'id': 5, 'col': 4, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2226 \ 'type': 'one', 'length': 2, 'start': 1}, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2227 \ {'lnum': 4, 'id': 10, 'col': 8, 'type_bufnr': 0, 'end': 1, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2228 \ 'type': 'two', 'length': 2, 'start': 1}], |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2229 \ prop_list(1, {'bufnr': bnr, |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2230 \ 'types': ['one', 'two'], 'ids': [5, 10], 'end_lnum': -1})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2231 #" get text properties from an unloaded buffer |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2232 bunload! Xaaa |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2233 call assert_equal([], prop_list(1, {'bufnr': bnr, 'end_lnum': -1})) |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2234 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
2235 call g:DeletePropTypes() |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2236 :%bw! |
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2237 END |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
2238 call v9.CheckLegacyAndVim9Success(lines) |
26242
685206b54ecf
patch 8.2.3652: can only get text properties one line at a time
Bram Moolenaar <Bram@vim.org>
parents:
25674
diff
changeset
|
2239 endfunc |
23306
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
2240 |
28526
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2241 func Test_prop_find_prev_on_same_line() |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2242 new |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2243 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2244 call setline(1, 'the quikc bronw fox jumsp over the layz dog') |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2245 call prop_type_add('misspell', #{highlight: 'ErrorMsg'}) |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2246 for col in [8, 14, 24, 38] |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2247 call prop_add(1, col, #{type: 'misspell', length: 2}) |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2248 endfor |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2249 |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
2250 call cursor(1, 18) |
28526
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2251 let expected = [ |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2252 \ #{lnum: 1, id: 0, col: 14, end: 1, type: 'misspell', type_bufnr: 0, length: 2, start: 1}, |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2253 \ #{lnum: 1, id: 0, col: 24, end: 1, type: 'misspell', type_bufnr: 0, length: 2, start: 1} |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2254 \ ] |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2255 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2256 let result = prop_find(#{type: 'misspell'}, 'b') |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2257 call assert_equal(expected[0], result) |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2258 let result = prop_find(#{type: 'misspell'}, 'f') |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2259 call assert_equal(expected[1], result) |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2260 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2261 call prop_type_delete('misspell') |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2262 bwipe! |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2263 endfunc |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2264 |
28848
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2265 func Test_prop_spell() |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2266 new |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2267 set spell |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2268 call AddPropTypes() |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2269 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2270 call setline(1, ["helo world", "helo helo helo"]) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2271 call prop_add(1, 1, #{type: 'one', length: 4}) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2272 call prop_add(1, 6, #{type: 'two', length: 5}) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2273 call prop_add(2, 1, #{type: 'three', length: 4}) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2274 call prop_add(2, 6, #{type: 'three', length: 4}) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2275 call prop_add(2, 11, #{type: 'three', length: 4}) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2276 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2277 " The first prop over 'helo' increases its length after the word is corrected |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2278 " to 'Hello', the second one is shifted to the right. |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2279 let expected = [ |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2280 \ {'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 1, 'type': 'one', |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2281 \ 'length': 5, 'start': 1}, |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2282 \ {'id': 0, 'col': 7, 'type_bufnr': 0, 'end': 1, 'type': 'two', |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2283 \ 'length': 5, 'start': 1} |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2284 \ ] |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2285 call feedkeys("z=1\<CR>", 'xt') |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2286 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2287 call assert_equal('Hello world', getline(1)) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2288 call assert_equal(expected, prop_list(1)) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2289 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2290 " Repeat the replacement done by z= |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2291 spellrepall |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2292 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2293 let expected = [ |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2294 \ {'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 1, 'type': 'three', |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2295 \ 'length': 5, 'start': 1}, |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2296 \ {'id': 0, 'col': 7, 'type_bufnr': 0, 'end': 1, 'type': 'three', |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2297 \ 'length': 5, 'start': 1}, |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2298 \ {'id': 0, 'col': 13, 'type_bufnr': 0, 'end': 1, 'type': 'three', |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2299 \ 'length': 5, 'start': 1} |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2300 \ ] |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2301 call assert_equal('Hello Hello Hello', getline(2)) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2302 call assert_equal(expected, prop_list(2)) |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2303 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2304 call DeletePropTypes() |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2305 set spell& |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2306 bwipe! |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2307 endfunc |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2308 |
28854
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2309 func Test_prop_shift_block() |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2310 new |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2311 call AddPropTypes() |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2312 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2313 call setline(1, ['some highlighted text']->repeat(2)) |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2314 call prop_add(1, 10, #{type: 'one', length: 11}) |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2315 call prop_add(2, 10, #{type: 'two', length: 11}) |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2316 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2317 call cursor(1, 1) |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2318 call feedkeys("5l\<c-v>>", 'nxt') |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2319 call cursor(2, 1) |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2320 call feedkeys("5l\<c-v><", 'nxt') |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2321 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2322 let expected = [ |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2323 \ {'lnum': 1, 'id': 0, 'col': 8, 'type_bufnr': 0, 'end': 1, 'type': 'one', |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2324 \ 'length': 11, 'start' : 1}, |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2325 \ {'lnum': 2, 'id': 0, 'col': 6, 'type_bufnr': 0, 'end': 1, 'type': 'two', |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2326 \ 'length': 11, 'start' : 1} |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2327 \ ] |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2328 call assert_equal(expected, prop_list(1, #{end_lnum: 2})) |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2329 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2330 call DeletePropTypes() |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2331 bwipe! |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2332 endfunc |
28848
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2333 |
28863
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2334 func Test_prop_insert_multiline() |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2335 new |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2336 call AddPropTypes() |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2337 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2338 call setline(1, ['foobar', 'barbaz']) |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2339 call prop_add(1, 4, #{end_lnum: 2, end_col: 4, type: 'one'}) |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2340 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2341 call feedkeys("1Goquxqux\<Esc>", 'nxt') |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2342 call feedkeys("2GOquxqux\<Esc>", 'nxt') |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2343 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2344 let lines =<< trim END |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2345 foobar |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2346 quxqux |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2347 quxqux |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2348 barbaz |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2349 END |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2350 call assert_equal(lines, getline(1, '$')) |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2351 let expected = [ |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2352 \ {'lnum': 1, 'id': 0, 'col': 4, 'type_bufnr': 0, 'end': 0, 'type': 'one', |
29788
d08aa1bfe319
patch 9.0.0233: removing multiple text properties takes many calls
Bram Moolenaar <Bram@vim.org>
parents:
29748
diff
changeset
|
2353 \ 'length': 4 , 'start': 1}, |
28863
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2354 \ {'lnum': 2, 'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 0, 'type': 'one', |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2355 \ 'length': 7, 'start': 0}, |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2356 \ {'lnum': 3, 'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 0, 'type': 'one', |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2357 \ 'length': 7, 'start': 0}, |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2358 \ {'lnum': 4, 'id': 0, 'col': 1, 'type_bufnr': 0, 'end': 1, 'type': 'one', |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2359 \ 'length': 3, 'start': 0} |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2360 \ ] |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2361 call assert_equal(expected, prop_list(1, #{end_lnum: 10})) |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2362 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2363 call DeletePropTypes() |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2364 bwipe! |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2365 endfunc |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2366 |
28869
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2367 func Test_prop_blockwise_change() |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2368 new |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2369 call AddPropTypes() |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2370 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2371 call setline(1, ['foooooo', 'bar', 'baaaaz']) |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2372 call prop_add(1, 1, #{end_col: 3, type: 'one'}) |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2373 call prop_add(2, 1, #{end_col: 3, type: 'two'}) |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2374 call prop_add(3, 1, #{end_col: 3, type: 'three'}) |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2375 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2376 " Replace the first two columns with '123', since 'start_incl' is false the |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2377 " prop is not extended. |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2378 call feedkeys("gg\<c-v>2jc123\<Esc>", 'nxt') |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2379 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2380 let lines =<< trim END |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2381 123oooooo |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2382 123ar |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2383 123aaaaz |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2384 END |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2385 call assert_equal(lines, getline(1, '$')) |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2386 let expected = [ |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2387 \ {'lnum': 1, 'id': 0, 'col': 4, 'type_bufnr': 0, 'end': 1, 'type': 'one', |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2388 \ 'length': 1, 'start': 1}, |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2389 \ {'lnum': 2, 'id': 0, 'col': 4, 'type_bufnr': 0, 'end': 1, 'type': 'two', |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2390 \ 'length': 1, 'start': 1}, |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2391 \ {'lnum': 3, 'id': 0, 'col': 4, 'type_bufnr': 0, 'end': 1 , |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2392 \ 'type': 'three', 'length': 1, 'start': 1} |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2393 \ ] |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2394 call assert_equal(expected, prop_list(1, #{end_lnum: 10})) |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2395 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2396 call DeletePropTypes() |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2397 bwipe! |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2398 endfunc |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2399 |
28984
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2400 func Do_test_props_do_not_affect_byte_offsets(ff, increment) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2401 new |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2402 let lcount = 410 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2403 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2404 " File format affects byte-offset calculations, so make sure it is known. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2405 exec 'setlocal fileformat=' . a:ff |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2406 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2407 " Fill the buffer with varying length lines. We need a suitably large number |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2408 " to force Vim code through paths wehere previous error have occurred. This |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2409 " is more 'art' than 'science'. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2410 let text = 'a' |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2411 call setline(1, text) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2412 let offsets = [1] |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2413 for idx in range(lcount) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2414 call add(offsets, offsets[idx] + len(text) + a:increment) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2415 if (idx % 6) == 0 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2416 let text = text . 'a' |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2417 endif |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2418 call append(line('$'), text) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2419 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2420 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2421 " Set a property that spans a few lines to cause Vim's internal buffer code |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2422 " to perform a reasonable amount of rearrangement. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2423 call prop_type_add('one', {'highlight': 'ErrorMsg'}) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2424 call prop_add(1, 1, {'type': 'one', 'end_lnum': 6, 'end_col': 2}) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2425 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2426 for idx in range(lcount) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2427 let boff = line2byte(idx + 1) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2428 call assert_equal(offsets[idx], boff, 'Bad byte offset at line ' . (idx + 1)) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2429 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2430 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2431 call prop_type_delete('one') |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2432 bwipe! |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2433 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2434 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2435 func Test_props_do_not_affect_byte_offsets() |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2436 call Do_test_props_do_not_affect_byte_offsets('unix', 1) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2437 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2438 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2439 func Test_props_do_not_affect_byte_offsets_dos() |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2440 call Do_test_props_do_not_affect_byte_offsets('dos', 2) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2441 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2442 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2443 func Test_props_do_not_affect_byte_offsets_editline() |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2444 new |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2445 let lcount = 410 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2446 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2447 " File format affects byte-offset calculations, so make sure it is known. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2448 setlocal fileformat=unix |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2449 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2450 " Fill the buffer with varying length lines. We need a suitably large number |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2451 " to force Vim code through paths wehere previous error have occurred. This |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2452 " is more 'art' than 'science'. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2453 let text = 'aa' |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2454 call setline(1, text) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2455 let offsets = [1] |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2456 for idx in range(lcount) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2457 call add(offsets, offsets[idx] + len(text) + 1) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2458 if (idx % 6) == 0 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2459 let text = text . 'a' |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2460 endif |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2461 call append(line('$'), text) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2462 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2463 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2464 " Set a property that just covers the first line. When this test was |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2465 " developed, this did not trigger a byte-offset error. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2466 call prop_type_add('one', {'highlight': 'ErrorMsg'}) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2467 call prop_add(1, 1, {'type': 'one', 'end_lnum': 1, 'end_col': 3}) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2468 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2469 for idx in range(lcount) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2470 let boff = line2byte(idx + 1) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2471 call assert_equal(offsets[idx], boff, |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2472 \ 'Confounding bad byte offset at line ' . (idx + 1)) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2473 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2474 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2475 " Insert text in the middle of the first line, keeping the property |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2476 " unchanged. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2477 :1 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2478 normal aHello |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2479 for idx in range(1, lcount) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2480 let offsets[idx] = offsets[idx] + 5 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2481 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2482 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2483 for idx in range(lcount) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2484 let boff = line2byte(idx + 1) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2485 call assert_equal(offsets[idx], boff, |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2486 \ 'Bad byte offset at line ' . (idx + 1)) |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2487 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2488 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2489 call prop_type_delete('one') |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2490 bwipe! |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2491 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2492 |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2493 func Test_prop_inserts_text() |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2494 CheckRunVimInTerminal |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2495 |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2496 " Just a basic check for now |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2497 let lines =<< trim END |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2498 call setline(1, 'insert some text here and other text there and some more text after wrapping') |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2499 call prop_type_add('someprop', #{highlight: 'ErrorMsg'}) |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2500 call prop_type_add('otherprop', #{highlight: 'Search'}) |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2501 call prop_type_add('moreprop', #{highlight: 'DiffAdd'}) |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2502 call prop_add(1, 18, #{type: 'someprop', text: 'SOME '}) |
29581
4a79bca8a76e
patch 9.0.0131: virtual text with Tab is not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29579
diff
changeset
|
2503 call prop_add(1, 38, #{type: 'otherprop', text: "OTHER\t"}) |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2504 call prop_add(1, 69, #{type: 'moreprop', text: 'MORE '}) |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2505 normal $ |
29583
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2506 |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2507 call setline(2, 'prepost') |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2508 call prop_type_add('multibyte', #{highlight: 'Visual'}) |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2509 call prop_add(2, 4, #{type: 'multibyte', text: 'söme和平téxt'}) |
29605
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2510 |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2511 call setline(3, 'Foo foo = { 1, 2 };') |
29692
042f357b455d
patch 9.0.0186: virtual text without highlighting does not show
Bram Moolenaar <Bram@vim.org>
parents:
29690
diff
changeset
|
2512 call prop_type_add('testprop', #{highlight: 'Comment'}) |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2513 call prop_add(3, 13, #{type: 'testprop', text: '.x='}) |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2514 call prop_add(3, 16, #{type: 'testprop', text: '.y='}) |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2515 |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2516 call setline(4, '') |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2517 call prop_add(4, 1, #{type: 'someprop', text: 'empty line'}) |
29692
042f357b455d
patch 9.0.0186: virtual text without highlighting does not show
Bram Moolenaar <Bram@vim.org>
parents:
29690
diff
changeset
|
2518 |
042f357b455d
patch 9.0.0186: virtual text without highlighting does not show
Bram Moolenaar <Bram@vim.org>
parents:
29690
diff
changeset
|
2519 call setline(5, 'look highlight') |
042f357b455d
patch 9.0.0186: virtual text without highlighting does not show
Bram Moolenaar <Bram@vim.org>
parents:
29690
diff
changeset
|
2520 call prop_type_add('nohi', #{}) |
042f357b455d
patch 9.0.0186: virtual text without highlighting does not show
Bram Moolenaar <Bram@vim.org>
parents:
29690
diff
changeset
|
2521 call prop_add(5, 6, #{type: 'nohi', text: 'no '}) |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2522 END |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2523 call writefile(lines, 'XscriptPropsWithText') |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2524 let buf = RunVimInTerminal('-S XscriptPropsWithText', #{rows: 8, cols: 60}) |
29550
ec5f48ab361b
patch 9.0.0116: virtual text not displayed if 'signcolumn' is "yes"
Bram Moolenaar <Bram@vim.org>
parents:
29451
diff
changeset
|
2525 call VerifyScreenDump(buf, 'Test_prop_inserts_text_1', {}) |
ec5f48ab361b
patch 9.0.0116: virtual text not displayed if 'signcolumn' is "yes"
Bram Moolenaar <Bram@vim.org>
parents:
29451
diff
changeset
|
2526 |
ec5f48ab361b
patch 9.0.0116: virtual text not displayed if 'signcolumn' is "yes"
Bram Moolenaar <Bram@vim.org>
parents:
29451
diff
changeset
|
2527 call term_sendkeys(buf, ":set signcolumn=yes\<CR>") |
ec5f48ab361b
patch 9.0.0116: virtual text not displayed if 'signcolumn' is "yes"
Bram Moolenaar <Bram@vim.org>
parents:
29451
diff
changeset
|
2528 call VerifyScreenDump(buf, 'Test_prop_inserts_text_2', {}) |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2529 |
29605
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2530 call term_sendkeys(buf, "2G$") |
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2531 call VerifyScreenDump(buf, 'Test_prop_inserts_text_3', {}) |
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2532 |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2533 call term_sendkeys(buf, "3Gf1") |
29605
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2534 call VerifyScreenDump(buf, 'Test_prop_inserts_text_4', {}) |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2535 call term_sendkeys(buf, "f2") |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2536 call VerifyScreenDump(buf, 'Test_prop_inserts_text_5', {}) |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2537 |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2538 call term_sendkeys(buf, "4G") |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2539 call VerifyScreenDump(buf, 'Test_prop_inserts_text_6', {}) |
29605
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2540 |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2541 call StopVimInTerminal(buf) |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2542 call delete('XscriptPropsWithText') |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2543 endfunc |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2544 |
29706
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2545 func Test_prop_inserts_text_highlight() |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2546 CheckRunVimInTerminal |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2547 |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2548 " Just a basic check for now |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2549 let lines =<< trim END |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2550 call setline(1, 'insert some text (here) and there') |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2551 call prop_type_add('someprop', #{highlight: 'ErrorMsg'}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2552 let bef_prop = prop_add(1, 18, #{type: 'someprop', text: 'BEFORE'}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2553 set hlsearch |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2554 let thematch = matchaddpos("DiffAdd", [[1, 18]]) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2555 func DoAfter() |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2556 call prop_remove(#{id: g:bef_prop}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2557 call prop_add(1, 19, #{type: 'someprop', text: 'AFTER'}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2558 let g:thematch = matchaddpos("DiffAdd", [[1, 18]]) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2559 let @/ = '' |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2560 endfunc |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2561 END |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2562 call writefile(lines, 'XscriptPropsWithHighlight') |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2563 let buf = RunVimInTerminal('-S XscriptPropsWithHighlight', #{rows: 6, cols: 60}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2564 call VerifyScreenDump(buf, 'Test_prop_inserts_text_hi_1', {}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2565 call term_sendkeys(buf, "/text (he\<CR>") |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2566 call VerifyScreenDump(buf, 'Test_prop_inserts_text_hi_2', {}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2567 call term_sendkeys(buf, ":call matchdelete(thematch)\<CR>") |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2568 call VerifyScreenDump(buf, 'Test_prop_inserts_text_hi_3', {}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2569 |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2570 call term_sendkeys(buf, ":call DoAfter()\<CR>") |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2571 call VerifyScreenDump(buf, 'Test_prop_inserts_text_hi_4', {}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2572 call term_sendkeys(buf, "/text (he\<CR>") |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2573 call VerifyScreenDump(buf, 'Test_prop_inserts_text_hi_5', {}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2574 call term_sendkeys(buf, ":call matchdelete(thematch)\<CR>") |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2575 call VerifyScreenDump(buf, 'Test_prop_inserts_text_hi_6', {}) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2576 |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2577 call StopVimInTerminal(buf) |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2578 call delete('XscriptPropsWithHighlight') |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2579 endfunc |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2580 |
29718
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2581 func Test_props_with_text_right_align_twice() |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2582 CheckRunVimInTerminal |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2583 |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2584 let lines =<< trim END |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2585 call setline(1, ["some text some text some text some text", 'line two']) |
29918
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2586 call prop_type_add('MyErrorText', #{ highlight: 'ErrorMsg'}) |
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2587 call prop_type_add('MyPadding', #{ highlight: 'DiffChange'}) |
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2588 call prop_add(1, 0, #{type: 'MyPadding', text: ' nothing here', text_wrap: 'wrap'}) |
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2589 call prop_add(1, 0, #{type: 'MyErrorText', text: 'Some error', text_wrap: 'wrap', text_align: 'right'}) |
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2590 call prop_add(1, 0, #{type: 'MyErrorText', text: 'Another error', text_wrap: 'wrap', text_align: 'right'}) |
29718
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2591 normal G$ |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2592 END |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2593 call writefile(lines, 'XscriptPropsRightAlign') |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2594 let buf = RunVimInTerminal('-S XscriptPropsRightAlign', #{rows: 8}) |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2595 call VerifyScreenDump(buf, 'Test_prop_right_align_twice_1', {}) |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2596 |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2597 call term_sendkeys(buf, "ggisome more text\<Esc>G$") |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2598 call VerifyScreenDump(buf, 'Test_prop_right_align_twice_2', {}) |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2599 |
29918
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2600 call term_sendkeys(buf, ":set signcolumn=yes\<CR>") |
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2601 call VerifyScreenDump(buf, 'Test_prop_right_align_twice_3', {}) |
e6e0f1c39edb
patch 9.0.0297: cursor position wrong after right aligned virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29826
diff
changeset
|
2602 |
29718
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2603 call StopVimInTerminal(buf) |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2604 call delete('XscriptPropsRightAlign') |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2605 endfunc |
538204fce2a4
patch 9.0.0199: cursor position wrong with two right-aligned virtual texts
Bram Moolenaar <Bram@vim.org>
parents:
29708
diff
changeset
|
2606 |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2607 func Test_props_with_text_after() |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2608 CheckRunVimInTerminal |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2609 |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2610 let lines =<< trim END |
29615
bab343b21da8
patch 9.0.0148: a "below" aligned text property gets 'showbreak' displayed
Bram Moolenaar <Bram@vim.org>
parents:
29613
diff
changeset
|
2611 set showbreak=+++ |
29643
b54dfe92ee10
patch 9.0.0162: text property "below" gets indent if 'breakindent' is set
Bram Moolenaar <Bram@vim.org>
parents:
29635
diff
changeset
|
2612 set breakindent |
b54dfe92ee10
patch 9.0.0162: text property "below" gets indent if 'breakindent' is set
Bram Moolenaar <Bram@vim.org>
parents:
29635
diff
changeset
|
2613 call setline(1, ' some text here and other text there') |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2614 call prop_type_add('rightprop', #{highlight: 'ErrorMsg'}) |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2615 call prop_type_add('afterprop', #{highlight: 'Search'}) |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2616 call prop_type_add('belowprop', #{highlight: 'DiffAdd'}) |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2617 call prop_add(1, 0, #{type: 'rightprop', text: ' RIGHT ', text_align: 'right'}) |
29581
4a79bca8a76e
patch 9.0.0131: virtual text with Tab is not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29579
diff
changeset
|
2618 call prop_add(1, 0, #{type: 'afterprop', text: "\tAFTER\t", text_align: 'after'}) |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2619 call prop_add(1, 0, #{type: 'belowprop', text: ' BELOW ', text_align: 'below'}) |
29613
1a0aea1e23f4
patch 9.0.0147: cursor positioned wrong after two "below" text properties
Bram Moolenaar <Bram@vim.org>
parents:
29609
diff
changeset
|
2620 call prop_add(1, 0, #{type: 'belowprop', text: ' ALSO BELOW ', text_align: 'below'}) |
29568
8f71840ecf07
patch 9.0.0125: cursor positioned wrong with virtual text after the line
Bram Moolenaar <Bram@vim.org>
parents:
29560
diff
changeset
|
2621 |
8f71840ecf07
patch 9.0.0125: cursor positioned wrong with virtual text after the line
Bram Moolenaar <Bram@vim.org>
parents:
29560
diff
changeset
|
2622 call setline(2, 'Last line.') |
8f71840ecf07
patch 9.0.0125: cursor positioned wrong with virtual text after the line
Bram Moolenaar <Bram@vim.org>
parents:
29560
diff
changeset
|
2623 call prop_add(2, 0, #{type: 'afterprop', text: ' After Last ', text_align: 'after'}) |
8f71840ecf07
patch 9.0.0125: cursor positioned wrong with virtual text after the line
Bram Moolenaar <Bram@vim.org>
parents:
29560
diff
changeset
|
2624 normal G$ |
29583
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2625 |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2626 call setline(3, 'right here') |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2627 call prop_add(3, 0, #{type: 'rightprop', text: 'söme和平téxt', text_align: 'right'}) |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2628 END |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2629 call writefile(lines, 'XscriptPropsWithTextAfter') |
29613
1a0aea1e23f4
patch 9.0.0147: cursor positioned wrong after two "below" text properties
Bram Moolenaar <Bram@vim.org>
parents:
29609
diff
changeset
|
2630 let buf = RunVimInTerminal('-S XscriptPropsWithTextAfter', #{rows: 8, cols: 60}) |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2631 call VerifyScreenDump(buf, 'Test_prop_with_text_after_1', {}) |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2632 |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2633 call StopVimInTerminal(buf) |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2634 call delete('XscriptPropsWithTextAfter') |
29696
c1c599a367d4
patch 9.0.0188: strange effects when using "text_align" with non-zero column
Bram Moolenaar <Bram@vim.org>
parents:
29692
diff
changeset
|
2635 |
c1c599a367d4
patch 9.0.0188: strange effects when using "text_align" with non-zero column
Bram Moolenaar <Bram@vim.org>
parents:
29692
diff
changeset
|
2636 call assert_fails('call prop_add(1, 2, #{text: "yes", text_align: "right", type: "some"})', 'E1294:') |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2637 endfunc |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2638 |
29633
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2639 func Test_props_with_text_after_below_trunc() |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2640 CheckRunVimInTerminal |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2641 |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2642 let lines =<< trim END |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2643 vim9script |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2644 edit foobar |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2645 set showbreak=+++ |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2646 setline(1, ['onasdf asdf asdf asdf asd fas df', 'two']) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2647 prop_type_add('test', {highlight: 'Special'}) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2648 prop_add(1, 0, { |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2649 type: 'test', |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2650 text: 'the quick brown fox jumps over the lazy dog', |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2651 text_align: 'after' |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2652 }) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2653 prop_add(1, 0, { |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2654 type: 'test', |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2655 text: 'the quick brown fox jumps over the lazy dog', |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2656 text_align: 'below' |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2657 }) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2658 normal G$ |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2659 END |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2660 call writefile(lines, 'XscriptPropsAfterTrunc') |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2661 let buf = RunVimInTerminal('-S XscriptPropsAfterTrunc', #{rows: 8, cols: 60}) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2662 call VerifyScreenDump(buf, 'Test_prop_with_text_after_below_trunc_1', {}) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2663 |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2664 call StopVimInTerminal(buf) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2665 call delete('XscriptPropsAfterTrunc') |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2666 endfunc |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2667 |
29585
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2668 func Test_props_with_text_after_joined() |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2669 CheckRunVimInTerminal |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2670 |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2671 let lines =<< trim END |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2672 call setline(1, ['one', 'two', 'three', 'four']) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2673 call prop_type_add('afterprop', #{highlight: 'Search'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2674 call prop_add(1, 0, #{type: 'afterprop', text: ' ONE', text_align: 'after'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2675 call prop_add(4, 0, #{type: 'afterprop', text: ' FOUR', text_align: 'after'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2676 normal ggJ |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2677 normal GkJ |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2678 |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2679 call setline(3, ['a', 'b', 'c', 'd', 'e', 'f']) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2680 call prop_add(3, 0, #{type: 'afterprop', text: ' AAA', text_align: 'after'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2681 call prop_add(5, 0, #{type: 'afterprop', text: ' CCC', text_align: 'after'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2682 call prop_add(7, 0, #{type: 'afterprop', text: ' EEE', text_align: 'after'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2683 call prop_add(8, 0, #{type: 'afterprop', text: ' FFF', text_align: 'after'}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2684 normal 3G6J |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2685 END |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2686 call writefile(lines, 'XscriptPropsWithTextAfterJoined') |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2687 let buf = RunVimInTerminal('-S XscriptPropsWithTextAfterJoined', #{rows: 6, cols: 60}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2688 call VerifyScreenDump(buf, 'Test_prop_with_text_after_joined_1', {}) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2689 |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2690 call StopVimInTerminal(buf) |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2691 call delete('XscriptPropsWithTextAfterJoined') |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2692 endfunc |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2693 |
29597
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2694 func Test_props_with_text_after_truncated() |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2695 CheckRunVimInTerminal |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2696 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2697 let lines =<< trim END |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2698 call setline(1, ['one two three four five six seven']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2699 call prop_type_add('afterprop', #{highlight: 'Search'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2700 call prop_add(1, 0, #{type: 'afterprop', text: ' ONE and TWO and THREE and FOUR and FIVE'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2701 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2702 call setline(2, ['one two three four five six seven']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2703 call prop_add(2, 0, #{type: 'afterprop', text: ' one AND two AND three AND four AND five', text_align: 'right'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2704 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2705 call setline(3, ['one two three four five six seven']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2706 call prop_add(3, 0, #{type: 'afterprop', text: ' one AND two AND three AND four AND five lets wrap after some more text', text_align: 'below'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2707 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2708 call setline(4, ['cursor here']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2709 normal 4Gfh |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2710 END |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2711 call writefile(lines, 'XscriptPropsWithTextAfterTrunc') |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2712 let buf = RunVimInTerminal('-S XscriptPropsWithTextAfterTrunc', #{rows: 9, cols: 60}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2713 call VerifyScreenDump(buf, 'Test_prop_with_text_after_trunc_1', {}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2714 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2715 call term_sendkeys(buf, ":37vsp\<CR>gg") |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2716 call VerifyScreenDump(buf, 'Test_prop_with_text_after_trunc_2', {}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2717 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2718 call term_sendkeys(buf, ":36wincmd |\<CR>") |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2719 call term_sendkeys(buf, "2G$") |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2720 call VerifyScreenDump(buf, 'Test_prop_with_text_after_trunc_3', {}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2721 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2722 call term_sendkeys(buf, ":33wincmd |\<CR>") |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2723 call VerifyScreenDump(buf, 'Test_prop_with_text_after_trunc_4', {}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2724 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2725 call term_sendkeys(buf, ":18wincmd |\<CR>") |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2726 call term_sendkeys(buf, "0fx") |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2727 call VerifyScreenDump(buf, 'Test_prop_with_text_after_trunc_5', {}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2728 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2729 call StopVimInTerminal(buf) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2730 call delete('XscriptPropsWithTextAfterTrunc') |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2731 endfunc |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2732 |
29678
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2733 func Test_props_with_text_empty_line() |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2734 CheckRunVimInTerminal |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2735 |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2736 let lines =<< trim END |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2737 call setline(1, ['', 'aaa', '', 'bbbbbb']) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2738 call prop_type_add('prop1', #{highlight: 'Search'}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2739 call prop_add(1, 1, #{type: 'prop1', text_wrap: 'wrap', text: repeat('X', &columns)}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2740 call prop_add(3, 1, #{type: 'prop1', text_wrap: 'wrap', text: repeat('X', &columns + 1)}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2741 normal gg0 |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2742 END |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2743 call writefile(lines, 'XscriptPropsWithTextEmptyLine') |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2744 let buf = RunVimInTerminal('-S XscriptPropsWithTextEmptyLine', #{rows: 8, cols: 60}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2745 call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_1', {}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2746 call term_sendkeys(buf, "$") |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2747 call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_2', {}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2748 call term_sendkeys(buf, "j") |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2749 call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_3', {}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2750 call term_sendkeys(buf, "j") |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2751 call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_4', {}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2752 call term_sendkeys(buf, "j") |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2753 call VerifyScreenDump(buf, 'Test_prop_with_text_empty_line_5', {}) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2754 |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2755 call StopVimInTerminal(buf) |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2756 call delete('XscriptPropsWithTextEmptyLine') |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2757 endfunc |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2758 |
29597
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2759 func Test_props_with_text_after_wraps() |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2760 CheckRunVimInTerminal |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2761 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2762 let lines =<< trim END |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2763 call setline(1, ['one two three four five six seven']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2764 call prop_type_add('afterprop', #{highlight: 'Search'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2765 call prop_add(1, 0, #{type: 'afterprop', text: ' ONE and TWO and THREE and FOUR and FIVE', text_wrap: 'wrap'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2766 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2767 call setline(2, ['one two three four five six seven']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2768 call prop_add(2, 0, #{type: 'afterprop', text: ' one AND two AND three AND four AND five', text_align: 'right', text_wrap: 'wrap'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2769 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2770 call setline(3, ['one two three four five six seven']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2771 call prop_add(3, 0, #{type: 'afterprop', text: ' one AND two AND three AND four AND five lets wrap after some more text', text_align: 'below', text_wrap: 'wrap'}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2772 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2773 call setline(4, ['cursor here']) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2774 normal 4Gfh |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2775 END |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2776 call writefile(lines, 'XscriptPropsWithTextAfterWraps') |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2777 let buf = RunVimInTerminal('-S XscriptPropsWithTextAfterWraps', #{rows: 9, cols: 60}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2778 call VerifyScreenDump(buf, 'Test_prop_with_text_after_wraps_1', {}) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2779 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2780 call StopVimInTerminal(buf) |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2781 call delete('XscriptPropsWithTextAfterWraps') |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2782 endfunc |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2783 |
29621
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2784 func Test_props_with_text_after_nowrap() |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2785 CheckRunVimInTerminal |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2786 |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2787 let lines =<< trim END |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2788 set nowrap |
29720
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2789 call setline(1, ['one', 'two', 'three', 'four']) |
29621
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2790 call prop_type_add('belowprop', #{highlight: 'ErrorMsg'}) |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2791 call prop_type_add('anotherprop', #{highlight: 'Search'}) |
29629
2f5610696bcd
patch 9.0.0155 Problem: No test for what patch 9.0.0155 fixes. Solution: Add a test. Fix typos. (closes #10822)
Bram Moolenaar <Bram@vim.org>
parents:
29627
diff
changeset
|
2792 call prop_type_add('someprop', #{highlight: 'DiffChange'}) |
29621
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2793 call prop_add(1, 0, #{type: 'belowprop', text: ' Below the line ', text_align: 'below'}) |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2794 call prop_add(2, 0, #{type: 'anotherprop', text: 'another', text_align: 'below'}) |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2795 call prop_add(2, 0, #{type: 'belowprop', text: 'One More Here', text_align: 'below'}) |
29629
2f5610696bcd
patch 9.0.0155 Problem: No test for what patch 9.0.0155 fixes. Solution: Add a test. Fix typos. (closes #10822)
Bram Moolenaar <Bram@vim.org>
parents:
29627
diff
changeset
|
2796 call prop_add(1, 0, #{type: 'someprop', text: 'right here', text_align: 'right'}) |
2f5610696bcd
patch 9.0.0155 Problem: No test for what patch 9.0.0155 fixes. Solution: Add a test. Fix typos. (closes #10822)
Bram Moolenaar <Bram@vim.org>
parents:
29627
diff
changeset
|
2797 call prop_add(1, 0, #{type: 'someprop', text: ' After the text', text_align: 'after'}) |
29720
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2798 normal 3G$ |
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2799 |
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2800 call prop_add(3, 0, #{type: 'anotherprop', text: 'right aligned', text_align: 'right'}) |
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2801 call prop_add(3, 0, #{type: 'anotherprop', text: 'also right aligned', text_align: 'right'}) |
29722
f88671dbe88b
patch 9.0.0201: CursorLine highlight overrules virtual text highlight
Bram Moolenaar <Bram@vim.org>
parents:
29720
diff
changeset
|
2802 hi CursorLine ctermbg=lightgrey |
29621
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2803 END |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2804 call writefile(lines, 'XscriptPropsAfterNowrap') |
29720
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2805 let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 12, cols: 60}) |
29621
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2806 call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_1', {}) |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2807 |
29722
f88671dbe88b
patch 9.0.0201: CursorLine highlight overrules virtual text highlight
Bram Moolenaar <Bram@vim.org>
parents:
29720
diff
changeset
|
2808 call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3 cursorline\<CR>") |
29625
78418bd45852
patch 9.0.0153: no fold and sign column for virtual text with "below" align
Bram Moolenaar <Bram@vim.org>
parents:
29621
diff
changeset
|
2809 call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_2', {}) |
78418bd45852
patch 9.0.0153: no fold and sign column for virtual text with "below" align
Bram Moolenaar <Bram@vim.org>
parents:
29621
diff
changeset
|
2810 |
29720
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2811 call term_sendkeys(buf, "j") |
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2812 call VerifyScreenDump(buf, 'Test_prop_with_text_after_nowrap_3', {}) |
bf965640744d
patch 9.0.0200: cursor wrong if 'nowrap' and two right aligned text props
Bram Moolenaar <Bram@vim.org>
parents:
29718
diff
changeset
|
2813 |
29621
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2814 call StopVimInTerminal(buf) |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2815 call delete('XscriptPropsAfterNowrap') |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2816 endfunc |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2817 |
29635
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2818 func Test_props_with_text_below_nowrap() |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2819 CheckRunVimInTerminal |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2820 |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2821 let lines =<< trim END |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2822 vim9script |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2823 edit foobar |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2824 set nowrap |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2825 set showbreak=+++\ |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2826 setline(1, ['onasdf asdf asdf sdf df asdf asdf e asdf asdf asdf asdf asd fas df', 'two']) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2827 prop_type_add('test', {highlight: 'Special'}) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2828 prop_add(1, 0, { |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2829 type: 'test', |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2830 text: 'the quick brown fox jumps over the lazy dog', |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2831 text_align: 'after' |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2832 }) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2833 prop_add(1, 0, { |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2834 type: 'test', |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2835 text: 'the quick brown fox jumps over the lazy dog', |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2836 text_align: 'below' |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2837 }) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2838 normal G$ |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2839 END |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2840 call writefile(lines, 'XscriptPropsBelowNowrap') |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2841 let buf = RunVimInTerminal('-S XscriptPropsBelowNowrap', #{rows: 8, cols: 60}) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2842 call VerifyScreenDump(buf, 'Test_prop_with_text_below_nowrap_1', {}) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2843 |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2844 call term_sendkeys(buf, "gg$") |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2845 call VerifyScreenDump(buf, 'Test_prop_with_text_below_nowrap_2', {}) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2846 |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2847 call StopVimInTerminal(buf) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2848 call delete('XscriptPropsBelowNowrap') |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2849 endfunc |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2850 |
30205
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2851 func Test_props_with_text_above() |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2852 CheckRunVimInTerminal |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2853 |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2854 let lines =<< trim END |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2855 call setline(1, ['one two', 'three four', 'five six']) |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2856 call prop_type_add('above1', #{highlight: 'Search'}) |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2857 call prop_type_add('above2', #{highlight: 'DiffChange'}) |
30233
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2858 call prop_type_add('below', #{highlight: 'DiffAdd'}) |
30205
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2859 call prop_add(1, 0, #{type: 'above1', text: 'first thing above', text_align: 'above'}) |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2860 call prop_add(1, 0, #{type: 'above2', text: 'second thing above', text_align: 'above'}) |
30213
4fedacdad3b4
patch 9.0.0442: virtual text "above" doesn't handel line numbers
Bram Moolenaar <Bram@vim.org>
parents:
30207
diff
changeset
|
2861 call prop_add(3, 0, #{type: 'above1', text: 'another thing', text_align: 'above', text_padding_left: 3}) |
30205
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2862 |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2863 normal gglllj |
30233
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2864 func AddPropBelow() |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2865 call prop_add(1, 0, #{type: 'below', text: 'below', text_align: 'below'}) |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2866 endfunc |
30205
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2867 END |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2868 call writefile(lines, 'XscriptPropsWithTextAbove', 'D') |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2869 let buf = RunVimInTerminal('-S XscriptPropsWithTextAbove', #{rows: 9, cols: 60}) |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2870 call VerifyScreenDump(buf, 'Test_prop_with_text_above_1', {}) |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2871 |
30293
914b3c64ab92
patch 9.0.0482: "g0" moves to wrong location with virtual text "above"
Bram Moolenaar <Bram@vim.org>
parents:
30273
diff
changeset
|
2872 call term_sendkeys(buf, "ggg$") |
914b3c64ab92
patch 9.0.0482: "g0" moves to wrong location with virtual text "above"
Bram Moolenaar <Bram@vim.org>
parents:
30273
diff
changeset
|
2873 call VerifyScreenDump(buf, 'Test_prop_with_text_above_1a', {}) |
914b3c64ab92
patch 9.0.0482: "g0" moves to wrong location with virtual text "above"
Bram Moolenaar <Bram@vim.org>
parents:
30273
diff
changeset
|
2874 call term_sendkeys(buf, "g0") |
914b3c64ab92
patch 9.0.0482: "g0" moves to wrong location with virtual text "above"
Bram Moolenaar <Bram@vim.org>
parents:
30273
diff
changeset
|
2875 call VerifyScreenDump(buf, 'Test_prop_with_text_above_1b', {}) |
914b3c64ab92
patch 9.0.0482: "g0" moves to wrong location with virtual text "above"
Bram Moolenaar <Bram@vim.org>
parents:
30273
diff
changeset
|
2876 |
30304
f1fe59179180
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Bram Moolenaar <Bram@vim.org>
parents:
30293
diff
changeset
|
2877 call term_sendkeys(buf, ":set showbreak=>>\<CR>") |
f1fe59179180
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Bram Moolenaar <Bram@vim.org>
parents:
30293
diff
changeset
|
2878 call term_sendkeys(buf, "ggll") |
f1fe59179180
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Bram Moolenaar <Bram@vim.org>
parents:
30293
diff
changeset
|
2879 call VerifyScreenDump(buf, 'Test_prop_with_text_above_1c', {}) |
f1fe59179180
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Bram Moolenaar <Bram@vim.org>
parents:
30293
diff
changeset
|
2880 call term_sendkeys(buf, ":set showbreak=\<CR>") |
f1fe59179180
patch 9.0.0488: cursor wrong with virtual text "above" and 'showbreak'
Bram Moolenaar <Bram@vim.org>
parents:
30293
diff
changeset
|
2881 |
30207
7147c6059e80
patch 9.0.0439: cursor wrong if inserting before line with virtual text above
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
2882 call term_sendkeys(buf, "ggI") |
7147c6059e80
patch 9.0.0439: cursor wrong if inserting before line with virtual text above
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
2883 call VerifyScreenDump(buf, 'Test_prop_with_text_above_2', {}) |
7147c6059e80
patch 9.0.0439: cursor wrong if inserting before line with virtual text above
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
2884 call term_sendkeys(buf, "inserted \<Esc>") |
7147c6059e80
patch 9.0.0439: cursor wrong if inserting before line with virtual text above
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
2885 call VerifyScreenDump(buf, 'Test_prop_with_text_above_3', {}) |
7147c6059e80
patch 9.0.0439: cursor wrong if inserting before line with virtual text above
Bram Moolenaar <Bram@vim.org>
parents:
30205
diff
changeset
|
2886 |
30213
4fedacdad3b4
patch 9.0.0442: virtual text "above" doesn't handel line numbers
Bram Moolenaar <Bram@vim.org>
parents:
30207
diff
changeset
|
2887 call term_sendkeys(buf, ":set number signcolumn=yes\<CR>") |
4fedacdad3b4
patch 9.0.0442: virtual text "above" doesn't handel line numbers
Bram Moolenaar <Bram@vim.org>
parents:
30207
diff
changeset
|
2888 call VerifyScreenDump(buf, 'Test_prop_with_text_above_4', {}) |
4fedacdad3b4
patch 9.0.0442: virtual text "above" doesn't handel line numbers
Bram Moolenaar <Bram@vim.org>
parents:
30207
diff
changeset
|
2889 |
30231
0d084880276a
patch 9.0.0451: virtual text "above" does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
30213
diff
changeset
|
2890 call term_sendkeys(buf, ":set nowrap\<CR>gg$j") |
0d084880276a
patch 9.0.0451: virtual text "above" does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
30213
diff
changeset
|
2891 call VerifyScreenDump(buf, 'Test_prop_with_text_above_5', {}) |
0d084880276a
patch 9.0.0451: virtual text "above" does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
30213
diff
changeset
|
2892 |
30233
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2893 call term_sendkeys(buf, ":call AddPropBelow()\<CR>") |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2894 call term_sendkeys(buf, "ggve") |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2895 call VerifyScreenDump(buf, 'Test_prop_with_text_above_6', {}) |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2896 call term_sendkeys(buf, "V") |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2897 call VerifyScreenDump(buf, 'Test_prop_with_text_above_7', {}) |
8d660a45299f
patch 9.0.0452: Visual highlighting extends into virtual text prop
Bram Moolenaar <Bram@vim.org>
parents:
30231
diff
changeset
|
2898 |
30245
8f85b5c45432
patch 9.0.0458: splitting a line with a text prop "above" moves it down
Bram Moolenaar <Bram@vim.org>
parents:
30233
diff
changeset
|
2899 call term_sendkeys(buf, "\<Esc>ls\<CR>\<Esc>") |
8f85b5c45432
patch 9.0.0458: splitting a line with a text prop "above" moves it down
Bram Moolenaar <Bram@vim.org>
parents:
30233
diff
changeset
|
2900 call VerifyScreenDump(buf, 'Test_prop_with_text_above_8', {}) |
8f85b5c45432
patch 9.0.0458: splitting a line with a text prop "above" moves it down
Bram Moolenaar <Bram@vim.org>
parents:
30233
diff
changeset
|
2901 |
30205
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2902 call StopVimInTerminal(buf) |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2903 endfunc |
ed6f3d2593df
patch 9.0.0438: cannot put virtual text above a line
Bram Moolenaar <Bram@vim.org>
parents:
30039
diff
changeset
|
2904 |
30257
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2905 func Test_prop_above_with_indent() |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2906 new |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2907 call setline(1, ['first line', ' second line', ' line below']) |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2908 setlocal cindent |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2909 call prop_type_add('indented', #{highlight: 'Search'}) |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2910 call prop_add(3, 0, #{type: 'indented', text: 'here', text_align: 'above', text_padding_left: 4}) |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2911 call assert_equal(' line below', getline(3)) |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2912 |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2913 exe "normal 3G2|a\<CR>" |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2914 call assert_equal(' ', getline(3)) |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2915 call assert_equal(' line below', getline(4)) |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2916 |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2917 bwipe! |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2918 call prop_type_delete('indented') |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2919 endfunc |
45788c16b3a5
patch 9.0.0464: with virtual text "above" indenting doesn't work well
Bram Moolenaar <Bram@vim.org>
parents:
30245
diff
changeset
|
2920 |
30261
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2921 func Test_prop_below_split_line() |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2922 CheckRunVimInTerminal |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2923 |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2924 let lines =<< trim END |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2925 vim9script |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2926 setline(1, ['one one one', 'two two two', 'three three three']) |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2927 prop_type_add('test', {highlight: 'ModeMsg'}) |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2928 prop_add(2, 0, { |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2929 text: '└─ Virtual text below the 2nd line', |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2930 type: 'test', |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2931 text_align: 'below', |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2932 text_padding_left: 3 |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2933 }) |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2934 END |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2935 call writefile(lines, 'XscriptPropBelowSpitLine', 'D') |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2936 let buf = RunVimInTerminal('-S XscriptPropBelowSpitLine', #{rows: 8}) |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2937 call term_sendkeys(buf, "2GA\<CR>xx") |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2938 call VerifyScreenDump(buf, 'Test_prop_below_split_line_1', {}) |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2939 |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2940 call term_sendkeys(buf, "\<Esc>") |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2941 call StopVimInTerminal(buf) |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2942 endfunc |
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2943 |
29736
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2944 func Test_props_with_text_override() |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2945 CheckRunVimInTerminal |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2946 |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2947 let lines =<< trim END |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2948 vim9script |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2949 setline(1, 'some text here') |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2950 hi Likethis ctermfg=blue ctermbg=cyan |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2951 prop_type_add('prop', {highlight: 'Likethis', override: true}) |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2952 prop_add(1, 6, {type: 'prop', text: ' inserted '}) |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2953 hi CursorLine cterm=underline ctermbg=lightgrey |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2954 set cursorline |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2955 END |
30261
6b658ef69e93
patch 9.0.0466: virtual text wrong after adding line break after line
Bram Moolenaar <Bram@vim.org>
parents:
30257
diff
changeset
|
2956 call writefile(lines, 'XscriptPropsOverride', 'D') |
29736
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2957 let buf = RunVimInTerminal('-S XscriptPropsOverride', #{rows: 6, cols: 60}) |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2958 call VerifyScreenDump(buf, 'Test_prop_with_text_override_1', {}) |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2959 |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2960 call term_sendkeys(buf, ":set nocursorline\<CR>") |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2961 call term_sendkeys(buf, "0llvfr") |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2962 call VerifyScreenDump(buf, 'Test_prop_with_text_override_2', {}) |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2963 |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2964 call StopVimInTerminal(buf) |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2965 endfunc |
65348cc3b656
patch 9.0.0208: the override flag has no effect for virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29730
diff
changeset
|
2966 |
29708
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2967 func Test_props_with_text_CursorMoved() |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2968 CheckRunVimInTerminal |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2969 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2970 let lines =<< trim END |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2971 call setline(1, ['this is line one', 'this is line two', 'three', 'four', 'five']) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2972 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2973 call prop_type_add('prop', #{highlight: 'Error'}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2974 let g:long_text = repeat('x', &columns * 2) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2975 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2976 let g:prop_id = v:null |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2977 func! Update() |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2978 if line('.') == 1 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2979 if g:prop_id == v:null |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2980 let g:prop_id = prop_add(1, 0, #{type: 'prop', text_wrap: 'wrap', text: g:long_text}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2981 endif |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2982 elseif g:prop_id != v:null |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2983 call prop_remove(#{id: g:prop_id}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2984 let g:prop_id = v:null |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2985 endif |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2986 endfunc |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2987 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2988 autocmd CursorMoved * call Update() |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2989 END |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2990 call writefile(lines, 'XscriptPropsCursorMovec') |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2991 let buf = RunVimInTerminal('-S XscriptPropsCursorMovec', #{rows: 8, cols: 60}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2992 call term_sendkeys(buf, "gg0w") |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2993 call VerifyScreenDump(buf, 'Test_prop_with_text_cursormoved_1', {}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2994 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2995 call term_sendkeys(buf, "j") |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2996 call VerifyScreenDump(buf, 'Test_prop_with_text_cursormoved_2', {}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2997 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2998 " back to the first state |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2999 call term_sendkeys(buf, "k") |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
3000 call VerifyScreenDump(buf, 'Test_prop_with_text_cursormoved_1', {}) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
3001 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
3002 call StopVimInTerminal(buf) |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
3003 call delete('XscriptPropsCursorMovec') |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
3004 endfunc |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
3005 |
29627
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3006 func Test_props_with_text_after_split_join() |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3007 CheckRunVimInTerminal |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3008 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3009 let lines =<< trim END |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3010 call setline(1, ['1122']) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3011 call prop_type_add('belowprop', #{highlight: 'ErrorMsg'}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3012 call prop_add(1, 0, #{type: 'belowprop', text: ' Below the line ', text_align: 'below'}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3013 exe "normal f2i\<CR>\<Esc>" |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3014 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3015 func AddMore() |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3016 call prop_type_add('another', #{highlight: 'Search'}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3017 call prop_add(1, 0, #{type: 'another', text: ' after the text ', text_align: 'after'}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3018 call prop_add(1, 0, #{type: 'another', text: ' right here', text_align: 'right'}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3019 endfunc |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3020 END |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3021 call writefile(lines, 'XscriptPropsAfterSplitJoin') |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3022 let buf = RunVimInTerminal('-S XscriptPropsAfterSplitJoin', #{rows: 8, cols: 60}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3023 call VerifyScreenDump(buf, 'Test_prop_with_text_after_join_split_1', {}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3024 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3025 call term_sendkeys(buf, "ggJ") |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3026 call VerifyScreenDump(buf, 'Test_prop_with_text_after_join_split_2', {}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3027 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3028 call term_sendkeys(buf, ":call AddMore()\<CR>") |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3029 call VerifyScreenDump(buf, 'Test_prop_with_text_after_join_split_3', {}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3030 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3031 call term_sendkeys(buf, "ggf s\<CR>\<Esc>") |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3032 call VerifyScreenDump(buf, 'Test_prop_with_text_after_join_split_4', {}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3033 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3034 call term_sendkeys(buf, "ggJ") |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3035 call VerifyScreenDump(buf, 'Test_prop_with_text_after_join_split_5', {}) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3036 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3037 call StopVimInTerminal(buf) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3038 call delete('XscriptPropsAfterSplitJoin') |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3039 endfunc |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
3040 |
29552
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3041 func Test_removed_prop_with_text_cleans_up_array() |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3042 new |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3043 call setline(1, 'some text here') |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3044 call prop_type_add('some', #{highlight: 'ErrorMsg'}) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3045 let id1 = prop_add(1, 5, #{type: 'some', text: "SOME"}) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3046 call assert_equal(-1, id1) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3047 let id2 = prop_add(1, 10, #{type: 'some', text: "HERE"}) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3048 call assert_equal(-2, id2) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3049 |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3050 " removing the props resets the index |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3051 call prop_remove(#{id: id1}) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3052 call prop_remove(#{id: id2}) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3053 let id1 = prop_add(1, 5, #{type: 'some', text: "SOME"}) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3054 call assert_equal(-1, id1) |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3055 |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3056 call prop_type_delete('some') |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3057 bwipe! |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3058 endfunc |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
3059 |
29579
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3060 def Test_insert_text_before_virtual_text() |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3061 new foobar |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3062 setline(1, '12345678') |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3063 prop_type_add('test', {highlight: 'Search'}) |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3064 prop_add(1, 5, { |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3065 type: 'test', |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3066 text: ' virtual text ' |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3067 }) |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3068 normal! f4axyz |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3069 normal! f5iXYZ |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3070 assert_equal('1234xyzXYZ5678', getline(1)) |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3071 |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3072 prop_type_delete('test') |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3073 bwipe! |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3074 enddef |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
3075 |
29730
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3076 func Test_insert_text_start_incl() |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3077 CheckRunVimInTerminal |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3078 |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3079 let lines =<< trim END |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3080 vim9script |
29748
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3081 setline(1, ['text one text two', '', 'function(arg)']) |
29730
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3082 |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3083 prop_type_add('propincl', {highlight: 'NonText', start_incl: true}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3084 prop_add(1, 6, {type: 'propincl', text: 'after '}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3085 cursor(1, 6) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3086 prop_type_add('propnotincl', {highlight: 'NonText', start_incl: false}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3087 prop_add(1, 15, {type: 'propnotincl', text: 'before '}) |
29748
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3088 |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3089 set cindent sw=4 |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3090 prop_type_add('argname', {highlight: 'DiffChange', start_incl: true}) |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3091 prop_add(3, 10, {type: 'argname', text: 'arg: '}) |
29730
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3092 END |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3093 call writefile(lines, 'XscriptPropsStartIncl') |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3094 let buf = RunVimInTerminal('-S XscriptPropsStartIncl', #{rows: 8, cols: 60}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3095 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_1', {}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3096 |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3097 call term_sendkeys(buf, "i") |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3098 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_2', {}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3099 call term_sendkeys(buf, "xx\<Esc>") |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3100 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_3', {}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3101 |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3102 call term_sendkeys(buf, "2wi") |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3103 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_4', {}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3104 call term_sendkeys(buf, "yy\<Esc>") |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3105 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_5', {}) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3106 |
29748
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3107 call term_sendkeys(buf, "3Gfai\<CR>\<Esc>") |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3108 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_6', {}) |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3109 call term_sendkeys(buf, ">>") |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3110 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_7', {}) |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3111 call term_sendkeys(buf, "<<<<") |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3112 call VerifyScreenDump(buf, 'Test_prop_insert_start_incl_8', {}) |
7e2321707fea
patch 9.0.0214: splitting a line may duplicate virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29740
diff
changeset
|
3113 |
29730
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3114 call StopVimInTerminal(buf) |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3115 call delete('XscriptPropsStartIncl') |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3116 endfunc |
0eeab24d3faf
patch 9.0.0205: cursor in wrong position when inserting after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29722
diff
changeset
|
3117 |
29740
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3118 func Test_insert_text_list_mode() |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3119 CheckRunVimInTerminal |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3120 |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3121 let lines =<< trim END |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3122 vim9script |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3123 setline(1, ['This is a line with quite a bit of text here.', |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3124 'second line', 'third line']) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3125 set list listchars+=extends:» |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3126 prop_type_add('Prop1', {highlight: 'Error'}) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3127 prop_add(1, 0, { |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3128 type: 'Prop1', |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3129 text: 'The quick brown fox jumps over the lazy dog', |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3130 text_align: 'right' |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3131 }) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3132 END |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3133 call writefile(lines, 'XscriptPropsListMode') |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3134 let buf = RunVimInTerminal('-S XscriptPropsListMode', #{rows: 8, cols: 60}) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3135 call term_sendkeys(buf, "ggj") |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3136 call VerifyScreenDump(buf, 'Test_prop_insert_list_mode_1', {}) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3137 |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3138 call term_sendkeys(buf, ":set nowrap\<CR>") |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3139 call VerifyScreenDump(buf, 'Test_prop_insert_list_mode_2', {}) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3140 |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3141 call term_sendkeys(buf, "ggd32l") |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3142 call VerifyScreenDump(buf, 'Test_prop_insert_list_mode_3', {}) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3143 |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3144 call StopVimInTerminal(buf) |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3145 call delete('XscriptPropsListMode') |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3146 endfunc |
b167c91b5f6b
patch 9.0.0210: 'list' mode does not work properly with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29736
diff
changeset
|
3147 |
29816
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3148 func Test_insert_text_with_padding() |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3149 CheckRunVimInTerminal |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3150 |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3151 let lines =<< trim END |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3152 vim9script |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3153 setline(1, ['Some text to add virtual text to.', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3154 'second line', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3155 'Another line with some text to make the wrap.']) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3156 prop_type_add('theprop', {highlight: 'DiffChange'}) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3157 prop_add(1, 0, { |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3158 type: 'theprop', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3159 text: 'after', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3160 text_align: 'after', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3161 text_padding_left: 3, |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3162 }) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3163 prop_add(1, 0, { |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3164 type: 'theprop', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3165 text: 'right aligned', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3166 text_align: 'right', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3167 text_padding_left: 5, |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3168 }) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3169 prop_add(1, 0, { |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3170 type: 'theprop', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3171 text: 'below the line', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3172 text_align: 'below', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3173 text_padding_left: 4, |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3174 }) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3175 prop_add(3, 0, { |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3176 type: 'theprop', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3177 text: 'rightmost', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3178 text_align: 'right', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3179 text_padding_left: 6, |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3180 text_wrap: 'wrap', |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3181 }) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3182 END |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3183 call writefile(lines, 'XscriptPropsPadded') |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3184 let buf = RunVimInTerminal('-S XscriptPropsPadded', #{rows: 8, cols: 60}) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3185 call VerifyScreenDump(buf, 'Test_prop_text_with_padding_1', {}) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3186 |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3187 call term_sendkeys(buf, "ggixxxxxxxxxx\<Esc>") |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3188 call term_sendkeys(buf, "3Gix\<Esc>") |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3189 call VerifyScreenDump(buf, 'Test_prop_text_with_padding_2', {}) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3190 |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3191 call term_sendkeys(buf, "ggix\<Esc>") |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3192 call VerifyScreenDump(buf, 'Test_prop_text_with_padding_3', {}) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3193 |
30273
5f112a0b4da1
patch 9.0.0472: virtual text "below" doesn't show in list mode
Bram Moolenaar <Bram@vim.org>
parents:
30261
diff
changeset
|
3194 call term_sendkeys(buf, ":set list\<CR>") |
5f112a0b4da1
patch 9.0.0472: virtual text "below" doesn't show in list mode
Bram Moolenaar <Bram@vim.org>
parents:
30261
diff
changeset
|
3195 call VerifyScreenDump(buf, 'Test_prop_text_with_padding_4', {}) |
5f112a0b4da1
patch 9.0.0472: virtual text "below" doesn't show in list mode
Bram Moolenaar <Bram@vim.org>
parents:
30261
diff
changeset
|
3196 |
29816
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3197 call StopVimInTerminal(buf) |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3198 call delete('XscriptPropsPadded') |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3199 endfunc |
bbe62ea78aac
patch 9.0.0247: cannot add padding to virtual text without highlight
Bram Moolenaar <Bram@vim.org>
parents:
29788
diff
changeset
|
3200 |
29826
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3201 func Test_insert_text_change_arg() |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3202 CheckRunVimInTerminal |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3203 |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3204 let lines =<< trim END |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3205 vim9script |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3206 setline(1, ['SetErrorCode( 10, 20 )', 'second line']) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3207 prop_type_add('param', {highlight: 'DiffChange', start_incl: 1}) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3208 prop_type_add('padd', {highlight: 'NonText', start_incl: 1}) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3209 prop_add(1, 15, { |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3210 type: 'param', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3211 text: 'id:', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3212 }) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3213 prop_add(1, 15, { |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3214 type: 'padd', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3215 text: '-', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3216 }) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3217 prop_add(1, 19, { |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3218 type: 'param', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3219 text: 'id:', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3220 }) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3221 prop_add(1, 19, { |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3222 type: 'padd', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3223 text: '-', |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3224 }) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3225 END |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3226 call writefile(lines, 'XscriptPropsChange') |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3227 let buf = RunVimInTerminal('-S XscriptPropsChange', #{rows: 5, cols: 60}) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3228 call VerifyScreenDump(buf, 'Test_prop_text_change_arg_1', {}) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3229 |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3230 call term_sendkeys(buf, "ggf1cw1234\<Esc>") |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3231 call VerifyScreenDump(buf, 'Test_prop_text_change_arg_2', {}) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3232 |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3233 call StopVimInTerminal(buf) |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3234 call delete('XscriptPropsChange') |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3235 endfunc |
bfd08e50e2c0
patch 9.0.0252: cursor in wrong place after virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29816
diff
changeset
|
3236 |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
3237 " vim: shiftwidth=2 sts=2 expandtab |