Mercurial > vim
annotate src/testdir/test_textprop.vim @ 29708:d97b2ce26258 v9.0.0194
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Commit: https://github.com/vim/vim/commit/326c5d36e7cb8526330565109c17b4a13ff790ae
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 12 13:05:49 2022 +0100
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Problem: Cursor displayed in wrong position after removing text prop. (Ben
Jackson)
Solution: Invalidate the cursor position. (closes #10898)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 12 Aug 2022 14:15:04 +0200 |
parents | a680dc1b089d |
children | 538204fce2a4 |
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. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
164 call cursor(5,1) |
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). |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
185 call cursor(3,1) |
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. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
233 call cursor(6,1) |
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. |
91bb12995034
patch 8.2.0110: prop_find() is not implemented
Bram Moolenaar <Bram@vim.org>
parents:
19097
diff
changeset
|
238 call cursor(1,1) |
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:') |
78ef12e0ce8c
patch 8.2.3356: adding many text properties requires a lot of function calls
Bram Moolenaar <Bram@vim.org>
parents:
25628
diff
changeset
|
384 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
|
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! |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
429 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
430 |
22127
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
431 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
|
432 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
|
433 highlight: 'Directory', |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
434 priority: 123, |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
435 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
|
436 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
|
437 combine: false, |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
438 }) |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
439 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
|
440 enddef |
9d3dfd420a45
patch 8.2.1613: Vim9: cannot pass "true" to prop_type_add()
Bram Moolenaar <Bram@vim.org>
parents:
22125
diff
changeset
|
441 |
22125
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
442 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
|
443 new |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
444 g:AddPropTypes() |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
445 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
|
446 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
|
447 g:DeletePropTypes() |
22125
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
448 bwipe! |
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
449 enddef |
602e660d5ccf
patch 8.2.1612: Vim9: cannot pass "true" to prop_remove()
Bram Moolenaar <Bram@vim.org>
parents:
22087
diff
changeset
|
450 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
451 func SetupOneLine() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
452 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
|
453 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
|
454 call AddPropTypes() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
455 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
|
456 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
|
457 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
|
458 \ #{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
|
459 \ #{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
|
460 \] |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
461 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
|
462 return expected |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
463 endfunc |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
464 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
465 func Test_prop_add_remove_buf() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
466 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
467 let bufnr = bufnr('') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
468 call AddPropTypes() |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
469 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
|
470 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
|
471 endfor |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
472 wincmd w |
16060
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
473 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
|
474 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
|
475 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
|
476 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
|
477 endfor |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
478 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
479 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
|
480 \ #{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
|
481 \ #{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
|
482 \ #{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
|
483 \] |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
484 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
|
485 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
486 " 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
|
487 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
|
488 unlet props[1] |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
489 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
490 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
|
491 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
|
492 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
|
493 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
|
494 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
|
495 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
496 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
|
497 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
|
498 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
|
499 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
|
500 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
|
501 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
502 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
|
503 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
|
504 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
|
505 endfor |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
506 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
507 " 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
|
508 let before_props = deepcopy(props) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
509 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
|
510 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
511 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
|
512 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
|
513 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
|
514 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
|
515 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
|
516 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
517 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
|
518 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
|
519 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
|
520 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
|
521 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
|
522 |
176872829dc2
patch 8.1.1035: prop_remove() second argument is not optional
Bram Moolenaar <Bram@vim.org>
parents:
15928
diff
changeset
|
523 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
|
524 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
|
525 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
|
526 endfor |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
527 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
528 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
529 wincmd w |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
530 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
531 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
532 |
15347
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
533 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
|
534 new |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
535 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
|
536 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
|
537 |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
538 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
|
539 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
|
540 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
|
541 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
|
542 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
|
543 |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
544 call DeletePropTypes() |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
545 bwipe! |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
546 set bs& |
f6b522596993
patch 8.1.0681: text properties as not adjusted for deleted text
Bram Moolenaar <Bram@vim.org>
parents:
15341
diff
changeset
|
547 endfunc |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
548 |
28841
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
549 func Test_prop_change() |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
550 new |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
551 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
|
552 |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
553 " Characterwise. |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
554 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
|
555 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
|
556 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
|
557 " Linewise. |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
558 exe "normal cc\<Esc>" |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
559 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
|
560 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
|
561 |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
562 call DeletePropTypes() |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
563 bwipe! |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
564 set bs& |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
565 endfunc |
77a00aa3e215
patch 8.2.4944: text properties are wrong after "cc"
Bram Moolenaar <Bram@vim.org>
parents:
28526
diff
changeset
|
566 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
567 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
|
568 new |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
569 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
|
570 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
|
571 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
572 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
|
573 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
|
574 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
|
575 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
576 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
|
577 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
|
578 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
|
579 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
580 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
|
581 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
|
582 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
|
583 |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
584 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
|
585 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
|
586 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
|
587 |
28931
b57caac54649
patch 8.2.4988: textprop in wrong position when replacing multi-byte chars
Bram Moolenaar <Bram@vim.org>
parents:
28875
diff
changeset
|
588 " 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
|
589 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
|
590 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
|
591 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
|
592 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
|
593 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
|
594 |
15349
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
595 call DeletePropTypes() |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
596 bwipe! |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
597 set bs& |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
598 endfunc |
6abee072b93c
patch 8.1.0682: text properties not adjusted when backspacing replaced text
Bram Moolenaar <Bram@vim.org>
parents:
15347
diff
changeset
|
599 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
600 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
|
601 new |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
602 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
603 " 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
|
604 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
|
605 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
|
606 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
|
607 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
|
608 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
|
609 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
610 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
611 " 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
|
612 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
|
613 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
|
614 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
|
615 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
|
616 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
|
617 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
618 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
619 " 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
|
620 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
|
621 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
|
622 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
|
623 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
|
624 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
|
625 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
|
626 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
|
627 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
628 |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
629 " 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
|
630 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
|
631 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
|
632 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
|
633 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
|
634 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
|
635 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
|
636 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
|
637 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
|
638 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
|
639 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
|
640 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
|
641 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
|
642 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
|
643 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
644 |
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
|
645 " 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
|
646 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
|
647 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
|
648 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
|
649 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
|
650 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
|
651 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
|
652 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
|
653 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
|
654 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
|
655 call DeletePropTypes() |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
656 |
28865
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
657 " 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
|
658 " 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
|
659 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
|
660 set ai |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
661 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
|
662 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
|
663 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
|
664 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
|
665 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
|
666 set ai& |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
667 call DeletePropTypes() |
a04815de0bd3
patch 8.2.4955: text property in wrong position after auto-indent
Bram Moolenaar <Bram@vim.org>
parents:
28863
diff
changeset
|
668 |
16662
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
669 bwipe! |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
670 set bs& |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
671 endfunc |
1fc9cd08cf3c
patch 8.1.1333: text properties don't always move after changes
Bram Moolenaar <Bram@vim.org>
parents:
16545
diff
changeset
|
672 |
29645
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
673 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
|
674 new |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
675 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
|
676 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
677 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
|
678 " 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
|
679 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
|
680 " 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
|
681 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
|
682 " 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
|
683 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
|
684 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
685 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
|
686 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
|
687 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
|
688 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
|
689 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
|
690 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
691 " 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
|
692 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
|
693 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
|
694 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
|
695 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
|
696 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
|
697 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
|
698 |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
699 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
|
700 bwipe! |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
701 endfunc |
9cd050914eb6
patch 9.0.0163: text property not adjusted for text inserted with "p"
Bram Moolenaar <Bram@vim.org>
parents:
29643
diff
changeset
|
702 |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
703 func Test_prop_clear() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
704 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
705 call AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
706 call SetupPropsInFirstLine() |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
707 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
|
708 |
17980
52f23198af7f
patch 8.1.1986: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17694
diff
changeset
|
709 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
|
710 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
|
711 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
712 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
713 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
714 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
715 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
716 func Test_prop_clear_buf() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
717 new |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
718 call AddPropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
719 call SetupPropsInFirstLine() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
720 let bufnr = bufnr('') |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
721 wincmd w |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
722 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
|
723 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
724 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
|
725 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
|
726 |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
727 wincmd w |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
728 call DeletePropTypes() |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
729 bwipe! |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
730 endfunc |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
731 |
15365
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
732 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
|
733 new |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
734 call AddPropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
735 call SetupPropsInFirstLine() |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
736 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
|
737 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
738 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
|
739 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
|
740 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
741 call DeletePropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
742 bwipe! |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
743 endfunc |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
744 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
745 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
|
746 new |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
747 call AddPropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
748 call SetupPropsInFirstLine() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
749 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
|
750 wincmd w |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
751 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
|
752 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
753 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
|
754 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
|
755 |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
756 wincmd w |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
757 call DeletePropTypes() |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
758 bwipe! |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
759 endfunc |
01ee8dc12313
patch 8.1.0690: setline() and setbufline() do not clear text properties
Bram Moolenaar <Bram@vim.org>
parents:
15363
diff
changeset
|
760 |
15367
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
761 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
|
762 new |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
763 " 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
|
764 call AddPropTypes() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
765 call SetupPropsInFirstLine() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
766 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
|
767 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
|
768 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
769 " 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
|
770 s/n/XX/ |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
771 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
|
772 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
|
773 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
|
774 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
|
775 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
|
776 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
777 " 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
|
778 s/t//g |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
779 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
|
780 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
|
781 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
|
782 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
|
783 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
|
784 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
785 " 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
|
786 " 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
|
787 " 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
|
788 s/w/\r/ |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
789 let new_props = [ |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
790 \ 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
|
791 \ 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
|
792 \ 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
|
793 \ ] |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
794 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
|
795 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
|
796 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
|
797 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
|
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 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
|
801 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
|
802 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
|
803 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
|
804 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
|
805 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
|
806 |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
807 call DeletePropTypes() |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
808 bwipe! |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
809 endfunc |
273649cad196
patch 8.1.0691: text properties are not adjusted for :substitute
Bram Moolenaar <Bram@vim.org>
parents:
15365
diff
changeset
|
810 |
15398
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
811 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
|
812 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
|
813 new |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
814 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
|
815 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
|
816 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
|
817 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
|
818 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
819 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
|
820 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
|
821 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
|
822 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
|
823 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
|
824 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
825 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
|
826 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
|
827 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
|
828 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
|
829 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
830 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
|
831 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
|
832 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
|
833 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
|
834 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
|
835 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
836 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
|
837 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
|
838 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
|
839 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
|
840 |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
841 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
|
842 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
|
843 endfunc |
3e02464faaac
patch 8.1.0707: text property columns are not adjusted for changed indent
Bram Moolenaar <Bram@vim.org>
parents:
15367
diff
changeset
|
844 |
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
|
845 " 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
|
846 " 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
|
847 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
|
848 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
|
849 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
|
850 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
|
851 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
|
852 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
|
853 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
|
854 |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
855 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
|
856 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
|
857 new |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
858 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
|
859 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
860 " 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
|
861 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
|
862 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
|
863 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
|
864 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
|
865 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
|
866 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
|
867 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
|
868 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
|
869 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
870 " include all three lines |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
871 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
|
872 let expect1.col = 1 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
873 let expect1.length = 8 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
874 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
|
875 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
|
876 let expect3.length = 9 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
877 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
|
878 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
|
879 |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
880 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
|
881 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
882 " 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
|
883 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
|
884 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
|
885 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
|
886 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
|
887 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
|
888 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
|
889 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
|
890 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
|
891 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
|
892 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
|
893 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
894 " 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
|
895 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
|
896 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
|
897 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
|
898 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
|
899 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
|
900 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
|
901 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
|
902 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
|
903 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
|
904 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
|
905 |
15335
18c20ceee4b5
patch 8.1.0675: text property column in screen columns is not practical
Bram Moolenaar <Bram@vim.org>
parents:
15318
diff
changeset
|
906 " 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
|
907 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
|
908 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
|
909 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
|
910 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
|
911 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
|
912 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
|
913 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
|
914 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
|
915 |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
916 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
|
917 endfunc |
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15138
diff
changeset
|
918 |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
919 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
|
920 new |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
921 setlocal ff=unix |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
922 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
|
923 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
|
924 endif |
29682
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
925 " 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
|
926 " 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
|
927 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
|
928 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
|
929 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
|
930 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
|
931 endif |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
932 endfor |
29682
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
933 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
|
934 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
|
935 |
57cfb39b7842
patch 9.0.0181: textprop test with line2byte() fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
29680
diff
changeset
|
936 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
|
937 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
|
938 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
|
939 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
|
940 endfor |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
941 |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
942 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
|
943 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
|
944 endif |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
945 bwipe! |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
946 endfunc |
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
947 |
19110
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
948 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
|
949 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
|
950 new |
15269
27783a6f430b
patch 8.1.0643: computing byte offset wrong
Bram Moolenaar <Bram@vim.org>
parents:
15261
diff
changeset
|
951 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
|
952 set ff=unix |
15269
27783a6f430b
patch 8.1.0643: computing byte offset wrong
Bram Moolenaar <Bram@vim.org>
parents:
15261
diff
changeset
|
953 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
|
954 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
|
955 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
|
956 bwipe! |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
957 |
25624
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
958 new |
25628
0407a3db3ef6
patch 8.2.3350: text properties test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
25624
diff
changeset
|
959 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
|
960 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
|
961 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
|
962 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
|
963 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
|
964 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
|
965 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
|
966 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
|
967 bwipe! |
25624
0ef8ef1af478
patch 8.2.3348: line2byte() returns wrong value after adding textprop
Bram Moolenaar <Bram@vim.org>
parents:
25471
diff
changeset
|
968 |
25672
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
969 new |
25674
1d14b5d3de17
patch 8.2.3373: text property test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents:
25672
diff
changeset
|
970 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
|
971 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
|
972 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
|
973 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
|
974 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
|
975 2delete |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
976 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
|
977 bwipe! |
ab42c36d1a27
patch 8.2.3372: line2byte() value wrong when adding a text property
Bram Moolenaar <Bram@vim.org>
parents:
25640
diff
changeset
|
978 |
29657
b90b037e80be
patch 9.0.0169: insufficient testing for line2byte() with text properties
Bram Moolenaar <Bram@vim.org>
parents:
29655
diff
changeset
|
979 " 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
|
980 " 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
|
981 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
|
982 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
|
983 |
15255
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
984 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
|
985 endfunc |
19e79a1ed6b6
patch 8.1.0636: line2byte() gives wrong values with text properties
Bram Moolenaar <Bram@vim.org>
parents:
15251
diff
changeset
|
986 |
19110
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
987 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
|
988 new |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
989 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
|
990 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
|
991 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
|
992 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
|
993 |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
994 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
|
995 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
|
996 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
|
997 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
|
998 |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
999 bwipe! |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1000 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
|
1001 endfunc |
e40814841406
patch 8.2.0115: byte2line() does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
19100
diff
changeset
|
1002 |
23776
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1003 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
|
1004 new |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1005 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
|
1006 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
|
1007 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
|
1008 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
|
1009 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1010 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
|
1011 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
|
1012 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
|
1013 \ '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
|
1014 \ 'type': 'testprop' |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1015 \ }) |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1016 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1017 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
|
1018 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
|
1019 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
|
1020 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
|
1021 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
|
1022 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1023 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
|
1024 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
|
1025 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
|
1026 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
|
1027 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
|
1028 |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1029 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
|
1030 bwipe! |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1031 endfunc |
9f692a75d481
patch 8.2.2429: :goto does not work correctly with text properties
Bram Moolenaar <Bram@vim.org>
parents:
23306
diff
changeset
|
1032 |
15363
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1033 func Test_prop_undo() |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1034 new |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1035 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
|
1036 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
|
1037 " 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
|
1038 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1039 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1040 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
|
1041 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
|
1042 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
|
1043 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1044 " 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
|
1045 exe "normal 0lllix\<Esc>" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1046 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1047 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
|
1048 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
|
1049 undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1050 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
|
1051 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
|
1052 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1053 " 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
|
1054 exe "normal 0lllx" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1055 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1056 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
|
1057 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
|
1058 undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1059 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
|
1060 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
|
1061 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1062 " 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
|
1063 1d |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1064 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1065 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
|
1066 undo |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1067 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
|
1068 |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1069 " 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
|
1070 exe "normal 0lllix\<Esc>" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1071 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1072 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
|
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 exe "normal 0lllxx" |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1075 set ul& |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1076 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
|
1077 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
|
1078 normal U |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1079 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
|
1080 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
|
1081 |
16698
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1082 " substitute a word, then undo |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1083 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
|
1084 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
|
1085 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
|
1086 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
|
1087 set ul& |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1088 1s/number/foo |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1089 let expected[0].col = 9 |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1090 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
|
1091 undo |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1092 let expected[0].col = 12 |
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1093 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
|
1094 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
|
1095 |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1096 " substitute with backslash |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1097 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
|
1098 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
|
1099 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
|
1100 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
|
1101 1s/the/\The |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1102 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
|
1103 1s/^/\\ |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1104 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
|
1105 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
|
1106 1s/^/\~ |
ba592f30c082
patch 8.1.1359: text property wrong after :substitute with backslash
Bram Moolenaar <Bram@vim.org>
parents:
16698
diff
changeset
|
1107 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
|
1108 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
|
1109 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
|
1110 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
|
1111 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
|
1112 call prop_clear(1) |
16698
23af483c4ceb
patch 8.1.1351: text property wrong after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
16682
diff
changeset
|
1113 |
15363
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1114 bwipe! |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1115 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
|
1116 endfunc |
45f36b66a032
patch 8.1.0689: undo with text properties not tested
Bram Moolenaar <Bram@vim.org>
parents:
15349
diff
changeset
|
1117 |
18631
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1118 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
|
1119 new |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1120 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
|
1121 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
|
1122 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1123 " 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
|
1124 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
|
1125 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
|
1126 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
|
1127 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1128 " 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
|
1129 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
|
1130 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
|
1131 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
|
1132 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1133 " 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
|
1134 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
|
1135 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
|
1136 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
|
1137 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1138 " 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
|
1139 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
|
1140 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
|
1141 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
|
1142 |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1143 bwipe! |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1144 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
|
1145 endfunc |
e2d9f4d030fa
patch 8.1.2308: deleting text before zero-width textprop removes it
Bram Moolenaar <Bram@vim.org>
parents:
18605
diff
changeset
|
1146 |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1147 " 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
|
1148 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
|
1149 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
|
1150 " 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
|
1151 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
|
1152 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
|
1153 endif |
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1154 call writefile([ |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1155 \ "call setline(1, [" |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1156 \ .. "'One two'," |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1157 \ .. "'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
|
1158 \ .. "'--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
|
1159 \ .. "'// 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
|
1160 \ .. "'first line'," |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1161 \ .. "' second line '," |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1162 \ .. "'third line'," |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1163 \ .. "' fourth line'," |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1164 \ .. "])", |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1165 \ "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
|
1166 \ "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
|
1167 \ "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
|
1168 \ "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
|
1169 \ "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
|
1170 \ "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
|
1171 \ "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
|
1172 \ "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
|
1173 \ "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
|
1174 \ "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
|
1175 \ "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
|
1176 \ "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
|
1177 \ "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
|
1178 \ "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
|
1179 \ "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
|
1180 \ "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
|
1181 \ "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
|
1182 \ "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
|
1183 \ "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
|
1184 \ "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
|
1185 \ "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
|
1186 \ "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
|
1187 \ "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
|
1188 \ "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
|
1189 \ "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
|
1190 \ "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
|
1191 \ "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
|
1192 \ "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
|
1193 \ "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
|
1194 \ "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
|
1195 \ "set spell", |
16545
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1196 \ "syn match Comment '//.*'", |
7a563ee902b6
patch 8.1.1276: cannot combine text properties with syntax highlighting
Bram Moolenaar <Bram@vim.org>
parents:
16060
diff
changeset
|
1197 \ "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
|
1198 \ "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
|
1199 \ "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
|
1200 \ "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
|
1201 \ "normal 3J", |
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1202 \ "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
|
1203 \], 'XtestProp') |
16678
6f453673eb19
patch 8.1.1341: text properties are lost when joining lines
Bram Moolenaar <Bram@vim.org>
parents:
16676
diff
changeset
|
1204 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
|
1205 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
|
1206 |
15314
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1207 " clean up |
c4d62945d96f
patch 8.1.0665: text property display wrong when 'spell' is set
Bram Moolenaar <Bram@vim.org>
parents:
15294
diff
changeset
|
1208 call StopVimInTerminal(buf) |
15318
f58e7895cb40
patch 8.1.0667: textprop test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
15314
diff
changeset
|
1209 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
|
1210 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
|
1211 |
29607
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1212 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
|
1213 CheckScreendump |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1214 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1215 let lines =<< trim END |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1216 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
|
1217 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
|
1218 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
|
1219 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
|
1220 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
|
1221 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
|
1222 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
|
1223 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
|
1224 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
|
1225 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
|
1226 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
|
1227 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
|
1228 set cursorline |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1229 2 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1230 END |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1231 call writefile(lines, 'XtestOverProp') |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1232 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
|
1233 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
|
1234 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1235 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
|
1236 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
|
1237 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
|
1238 |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1239 " clean up |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1240 call StopVimInTerminal(buf) |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1241 call delete('XtestOverProp') |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1242 endfunc |
33d7c1fa2dac
patch 9.0.0144: text property cannot override 'cursorline' highlight
Bram Moolenaar <Bram@vim.org>
parents:
29605
diff
changeset
|
1243 |
16682
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1244 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
|
1245 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
|
1246 \ "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
|
1247 \ .. "'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
|
1248 \ .. "'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
|
1249 \ .. "'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
|
1250 \ .. "'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
|
1251 \ .. "'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
|
1252 \ .. "'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
|
1253 \ .. "'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
|
1254 \ .. "'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
|
1255 \ .. "'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
|
1256 \ .. "' 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
|
1257 \ .. "])", |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1258 \ "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
|
1259 \ "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
|
1260 \ "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
|
1261 \ "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
|
1262 \ "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
|
1263 \ "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
|
1264 \ "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
|
1265 \ "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
|
1266 \ "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
|
1267 \ "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
|
1268 \ "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
|
1269 \ "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
|
1270 \ "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
|
1271 \], 'XtestPropVis') |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1272 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
|
1273 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
|
1274 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1275 " 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
|
1276 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
|
1277 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
|
1278 endfunc |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1279 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1280 " 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
|
1281 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
|
1282 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
|
1283 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1284 " 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
|
1285 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
|
1286 |
7847d281cbbf
patch 8.1.1343: text properties not adjusted for Visual block mode delete
Bram Moolenaar <Bram@vim.org>
parents:
16678
diff
changeset
|
1287 " 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
|
1288 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
|
1289 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
|
1290 |
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
|
1291 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
|
1292 CheckScreendump |
17147
a001a0d88d42
patch 8.1.1573: textprop test fails if screenhots do not work
Bram Moolenaar <Bram@vim.org>
parents:
17143
diff
changeset
|
1293 |
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
|
1294 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
|
1295 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
|
1296 \ "\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
|
1297 \ "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
|
1298 \ ]) |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1299 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
|
1300 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
|
1301 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
|
1302 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
|
1303 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
|
1304 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
|
1305 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
|
1306 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
|
1307 |
ee090ecd70f6
patch 8.1.1571: textprop highlight starts too early if just after a tab
Bram Moolenaar <Bram@vim.org>
parents:
17089
diff
changeset
|
1308 " 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
|
1309 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
|
1310 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
|
1311 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
|
1312 |
23901
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1313 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
|
1314 CheckScreendump |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1315 |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1316 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
|
1317 vim9script |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1318 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
|
1319 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
|
1320 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
|
1321 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
|
1322 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
|
1323 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
|
1324 END |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1325 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
|
1326 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
|
1327 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
|
1328 |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1329 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
|
1330 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
|
1331 |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1332 " 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
|
1333 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
|
1334 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
|
1335 endfunc |
6793853063e5
patch 8.2.2493: text property for text left of window shows up
Bram Moolenaar <Bram@vim.org>
parents:
23776
diff
changeset
|
1336 |
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
|
1337 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
|
1338 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
|
1339 |
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
|
1340 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
|
1341 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
|
1342 |
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
|
1343 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
|
1344 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
|
1345 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
|
1346 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
|
1347 |
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
|
1348 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
|
1349 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
|
1350 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
|
1351 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
|
1352 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
|
1353 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
|
1354 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
|
1355 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
|
1356 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
|
1357 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
|
1358 |
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
|
1359 " 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
|
1360 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
|
1361 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
|
1362 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
|
1363 |
18317
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1364 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
|
1365 CheckScreendump |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1366 |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1367 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
|
1368 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
|
1369 \ "(abc)", |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1370 \ ]) |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1371 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
|
1372 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
|
1373 |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1374 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
|
1375 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
|
1376 END |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1377 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
|
1378 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
|
1379 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
|
1380 |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1381 " clean up |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1382 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
|
1383 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
|
1384 endfunc |
d2228d4cf1f6
patch 8.1.2153: combining text property and syntax highlight is wrong
Bram Moolenaar <Bram@vim.org>
parents:
17980
diff
changeset
|
1385 |
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
|
1386 " 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
|
1387 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
|
1388 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
|
1389 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
|
1390 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
|
1391 close |
16786
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1392 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
|
1393 endfunc |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1394 |
17208
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1395 " 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
|
1396 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
|
1397 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
|
1398 new |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1399 call setline(1, ['asdf','asdf']) |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1400 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
|
1401 redraw |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1402 bwipe! |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1403 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
|
1404 endfunc |
13d0753511fe
patch 8.1.1603: crash when using unknown highlighting in text property
Bram Moolenaar <Bram@vim.org>
parents:
17147
diff
changeset
|
1405 |
16786
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1406 " 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
|
1407 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
|
1408 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
|
1409 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
|
1410 next X |
98ca522e6453
patch 8.1.1395: saving for undo may access invalid memory
Bram Moolenaar <Bram@vim.org>
parents:
16772
diff
changeset
|
1411 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
|
1412 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
|
1413 |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1414 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
|
1415 new |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1416 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
|
1417 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
|
1418 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
|
1419 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
|
1420 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
|
1421 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
|
1422 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
|
1423 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
|
1424 close |
18093a6accb5
patch 8.1.1388: errors when calling prop_remove() for an unloaded buffer
Bram Moolenaar <Bram@vim.org>
parents:
16770
diff
changeset
|
1425 endfunc |
17694
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1426 |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1427 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
|
1428 edit Xaaa |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1429 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
|
1430 write |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1431 edit Xbbb |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1432 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
|
1433 write |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1434 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
|
1435 edit Xaaa |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1436 |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1437 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
|
1438 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
|
1439 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
|
1440 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
|
1441 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
|
1442 |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1443 bwipe! Xaaa |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1444 bwipe! Xbbb |
6f9cde96ee3c
patch 8.1.1844: buffer no longer unloaded when adding text properties
Bram Moolenaar <Bram@vim.org>
parents:
17208
diff
changeset
|
1445 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
|
1446 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
|
1447 endfunc |
18444
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1448 |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1449 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
|
1450 new |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1451 " text_prop.vim |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1452 call setline(1, [ |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1453 \ '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
|
1454 \ '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
|
1455 \ '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
|
1456 |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1457 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
|
1458 |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1459 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
|
1460 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
|
1461 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
|
1462 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
|
1463 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
|
1464 \ #{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
|
1465 \ #{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
|
1466 \ #{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
|
1467 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
1468 " TODO |
29609
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1469 if 0 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1470 " 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
|
1471 %s/\s\+/ /g |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1472 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
|
1473 |
29609
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1474 " remove some text |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1475 :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
|
1476 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
|
1477 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
|
1478 endif |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1479 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1480 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
|
1481 bwipe! |
967ca19425e3
patch 8.1.2216: text property in wrong place after :substitute
Bram Moolenaar <Bram@vim.org>
parents:
18317
diff
changeset
|
1482 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
|
1483 |
22331
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1484 " 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
|
1485 func Test_proptype_substitute3() |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1486 new |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1487 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
|
1488 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
|
1489 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
|
1490 %s/x\+$// |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1491 redraw |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1492 |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1493 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
|
1494 bwipe! |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1495 endfunc |
0271c2b8bb35
patch 8.2.1714: text properties corrupted with substitute command
Bram Moolenaar <Bram@vim.org>
parents:
22282
diff
changeset
|
1496 |
29609
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1497 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
|
1498 new |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1499 call setline(1, [ |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1500 \ '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
|
1501 \ '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
|
1502 \ 'some is highlighted', |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1503 \ '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
|
1504 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1505 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
|
1506 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1507 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
|
1508 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
|
1509 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
|
1510 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
|
1511 " 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
|
1512 " 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
|
1513 let expected = [ |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1514 \ #{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
|
1515 \ #{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
|
1516 \ #{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
|
1517 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1518 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
|
1519 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
|
1520 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
|
1521 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
|
1522 |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1523 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
|
1524 bwipe! |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1525 endfunc |
e1c370197030
patch 9.0.0145: substitute that joins lines drops text properties
Bram Moolenaar <Bram@vim.org>
parents:
29607
diff
changeset
|
1526 |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1527 func SaveOptions() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1528 let d = #{tabstop: &tabstop, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1529 \ softtabstop: &softtabstop, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1530 \ shiftwidth: &shiftwidth, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1531 \ expandtab: &expandtab, |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1532 \ foldmethod: '"' .. &foldmethod .. '"', |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1533 \ } |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1534 return d |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1535 endfunc |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1536 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1537 func RestoreOptions(dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1538 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
|
1539 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
|
1540 endfor |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1541 endfunc |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1542 |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1543 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
|
1544 new |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1545 let save_dict = SaveOptions() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1546 |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1547 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
|
1548 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
|
1549 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
|
1550 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
|
1551 set foldmethod=marker |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1552 |
19045
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1553 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
|
1554 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
|
1555 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
|
1556 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
|
1557 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
|
1558 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
|
1559 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
|
1560 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
|
1561 try |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1562 " 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
|
1563 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
|
1564 " 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
|
1565 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
|
1566 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
|
1567 endtry |
143d44d8f477
patch 8.2.0083: text properties wrong when tabs and spaces are exchanged
Bram Moolenaar <Bram@vim.org>
parents:
18631
diff
changeset
|
1568 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
|
1569 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
|
1570 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1571 call RestoreOptions(save_dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1572 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
|
1573 endfunc |
19097
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1574 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1575 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
|
1576 new |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1577 let save_dict = SaveOptions() |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1578 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1579 set tabstop=8 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1580 set softtabstop=4 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1581 set shiftwidth=4 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1582 set noexpandtab |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1583 set foldmethod=marker |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1584 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1585 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
|
1586 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
|
1587 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
|
1588 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
|
1589 " 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
|
1590 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
|
1591 redraw |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1592 " 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
|
1593 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
|
1594 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
|
1595 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
|
1596 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
|
1597 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1598 call RestoreOptions(save_dict) |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1599 bwipe! |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1600 endfunc |
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 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
|
1603 new |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1604 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
|
1605 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
|
1606 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
|
1607 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
|
1608 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1609 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
|
1610 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
|
1611 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
|
1612 |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1613 bwipe! |
bcbc9fe665b5
patch 8.2.0109: corrupted text properties when expanding spaces
Bram Moolenaar <Bram@vim.org>
parents:
19045
diff
changeset
|
1614 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
|
1615 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
|
1616 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
|
1617 |
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
|
1618 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
|
1619 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
|
1620 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
|
1621 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
|
1622 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
|
1623 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
|
1624 |
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
|
1625 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
|
1626 \ #{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
|
1627 \ 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
|
1628 |
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
|
1629 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
|
1630 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
|
1631 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
|
1632 |
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
|
1633 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
|
1634 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
|
1635 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
|
1636 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
|
1637 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
|
1638 |
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
|
1639 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
|
1640 \ #{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
|
1641 \ 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
|
1642 |
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
|
1643 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
|
1644 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
|
1645 endfunc |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1646 |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1647 " 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
|
1648 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
|
1649 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
|
1650 call assert_fails('call prop_clear(-1, 2)', 'E16:') |
25198
eafc0e07b188
patch 8.2.3135: Vim9: builtin function arguments not checked at compile time
Bram Moolenaar <Bram@vim.org>
parents:
25050
diff
changeset
|
1651 call assert_fails('call prop_find(test_null_dict())', 'E715:') |
21265
6a4806e326dd
patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents:
20583
diff
changeset
|
1652 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
|
1653 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
|
1654 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
|
1655 call assert_fails('call prop_find({"lnum" : -2})', 'E16:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1656 call assert_fails('call prop_list(1, [])', 'E715:') |
21552
cbc570e66d11
patch 8.2.1326: Vim9: skipping over white space after list
Bram Moolenaar <Bram@vim.org>
parents:
21265
diff
changeset
|
1657 call assert_fails('call prop_list(-1, {})', 'E16:') |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1658 call assert_fails('call prop_remove([])', 'E474:') |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1659 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
|
1660 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
|
1661 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
|
1662 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
|
1663 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
|
1664 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
|
1665 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
|
1666 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
|
1667 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
|
1668 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
|
1669 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
|
1670 call assert_fails("call prop_add(1, 5, {'type': ''})", 'E971:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1671 call assert_fails('call prop_add(1, 1, 0)', 'E715:') |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1672 |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1673 new |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1674 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
|
1675 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
|
1676 |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1677 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
|
1678 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
|
1679 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
|
1680 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
|
1681 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
|
1682 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
|
1683 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
|
1684 |
a5478836fcb7
patch 8.2.2561: not all textprop code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
23901
diff
changeset
|
1685 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
|
1686 bwipe! |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1687 endfunc |
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
1688 |
22278
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1689 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
|
1690 new |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1691 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
|
1692 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
|
1693 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
|
1694 |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1695 " 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
|
1696 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
|
1697 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
|
1698 \ [#{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
|
1699 \ 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
|
1700 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
|
1701 \ [#{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
|
1702 \ 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
|
1703 |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1704 " 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
|
1705 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
|
1706 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
|
1707 |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1708 bwipe! |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1709 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
|
1710 endfunc |
d067be761cd7
patch 8.2.0845: text properties crossing lines not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
20178
diff
changeset
|
1711 |
22278
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1712 func Test_prop_increment_decrement() |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1713 new |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1714 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
|
1715 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
|
1716 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
|
1717 |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1718 exe "normal! 0f9\<C-A>" |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1719 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
|
1720 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
|
1721 \ #{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
|
1722 |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1723 exe "normal! 0f9\<C-A>" |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1724 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
|
1725 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
|
1726 \ #{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
|
1727 |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1728 bwipe! |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1729 call prop_type_delete('test') |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1730 endfunc |
0416105e103b
patch 8.2.1688: increment/decrement removes text property
Bram Moolenaar <Bram@vim.org>
parents:
22147
diff
changeset
|
1731 |
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
|
1732 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
|
1733 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
|
1734 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
|
1735 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
|
1736 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
|
1737 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
|
1738 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1739 " 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
|
1740 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
|
1741 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
|
1742 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
|
1743 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
|
1744 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
|
1745 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1746 " 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
|
1747 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
|
1748 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
|
1749 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
|
1750 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
|
1751 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
|
1752 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1753 " 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
|
1754 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
|
1755 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
|
1756 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
|
1757 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
|
1758 |
5adb97bf0b32
patch 8.2.1690: text properties not adjusted for "I" in Visual block mode
Bram Moolenaar <Bram@vim.org>
parents:
22278
diff
changeset
|
1759 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
|
1760 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
|
1761 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
|
1762 |
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
|
1763 " 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
|
1764 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
|
1765 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
|
1766 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
|
1767 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
|
1768 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
|
1769 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
|
1770 $ |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1771 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
|
1772 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
|
1773 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
|
1774 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
|
1775 |
90ea5037a7e3
patch 8.2.2198: ml_get error when resizing window and using text property
Bram Moolenaar <Bram@vim.org>
parents:
23072
diff
changeset
|
1776 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
|
1777 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
|
1778 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
|
1779 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
|
1780 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
|
1781 |
29587
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1782 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
|
1783 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
|
1784 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
|
1785 try |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1786 popup_create([{ |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1787 text: 'a', |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1788 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
|
1789 }], {}) |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1790 catch /E964:/ |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1791 caught = true |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1792 endtry |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1793 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
|
1794 |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1795 popup_clear() |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1796 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
|
1797 enddef |
d70f588baaa1
patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents:
29585
diff
changeset
|
1798 |
24703
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1799 " 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
|
1800 " 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
|
1801 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
|
1802 new |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1803 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
|
1804 + [repeat('!', 35)] |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1805 + [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
|
1806 lines->setline(1) |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1807 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
|
1808 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
|
1809 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
|
1810 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
|
1811 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
|
1812 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
|
1813 |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1814 bwipe! |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1815 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
|
1816 enddef |
4bc0bda6857d
patch 8.2.2890: text property duplicated when data block splits
Bram Moolenaar <Bram@vim.org>
parents:
24252
diff
changeset
|
1817 |
25050
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1818 " 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
|
1819 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
|
1820 new |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1821 var a = 10 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1822 var b = 20 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1823 repeat([''], a)->append('$') |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1824 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
|
1825 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
|
1826 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
|
1827 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
|
1828 endfor |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1829 endfor |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1830 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1831 # 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
|
1832 :5del |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1833 :1del |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1834 :$del |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1835 |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1836 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
|
1837 bwipe! |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1838 enddef |
7ef7a211f6bf
patch 8.2.3062: internal error when adding several text properties
Bram Moolenaar <Bram@vim.org>
parents:
24703
diff
changeset
|
1839 |
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
|
1840 " 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
|
1841 " 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
|
1842 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
|
1843 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
|
1844 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
|
1845 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
|
1846 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
|
1847 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
|
1848 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
|
1849 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
|
1850 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1851 # 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
|
1852 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
|
1853 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
|
1854 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
|
1855 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
|
1856 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
|
1857 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1858 # 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
|
1859 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
|
1860 :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
|
1861 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
|
1862 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
|
1863 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
|
1864 |
78ebb50d6fcb
patch 8.2.4960: text properties that cross lines not updated for deleted line
Bram Moolenaar <Bram@vim.org>
parents:
28869
diff
changeset
|
1865 # 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
|
1866 # 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
|
1867 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
|
1868 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
|
1869 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
|
1870 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
|
1871 |
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 # 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
|
1873 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
|
1874 :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
|
1875 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
|
1876 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
|
1877 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
|
1878 |
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 # 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
|
1880 # 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
|
1881 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
|
1882 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
|
1883 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
|
1884 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
|
1885 |
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 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
|
1887 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
|
1888 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
|
1889 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
|
1890 |
26338
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1891 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
|
1892 CheckRunVimInTerminal |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1893 |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1894 let lines =<< trim END |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1895 set breakindent linebreak breakat+=] |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1896 call printf('%s]%s', repeat('x', 50), repeat('x', 70))->setline(1) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1897 call prop_type_add('test', #{highlight: 'ErrorMsg'}) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1898 call prop_add(1, 51, #{length: 1, type: 'test'}) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1899 END |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1900 call writefile(lines, 'XscriptPropLinebreak') |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1901 let buf = RunVimInTerminal('-S XscriptPropLinebreak', #{rows: 10}) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1902 call VerifyScreenDump(buf, 'Test_prop_linebreak', {}) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1903 |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1904 call StopVimInTerminal(buf) |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1905 call delete('XscriptPropLinebreak') |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1906 endfunc |
4cf208415483
patch 8.2.3700: text property highlighting continues over breakindent
Bram Moolenaar <Bram@vim.org>
parents:
26242
diff
changeset
|
1907 |
29686
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1908 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
|
1909 CheckRunVimInTerminal |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1910 |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1911 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
|
1912 vim9script |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1913 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
|
1914 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
|
1915 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
|
1916 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
|
1917 END |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1918 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
|
1919 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
|
1920 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
|
1921 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
|
1922 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
|
1923 |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1924 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
|
1925 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
|
1926 endfunc |
4153e4815b36
patch 9.0.0183: extra space after virtual text when 'linebreak' is set
Bram Moolenaar <Bram@vim.org>
parents:
29682
diff
changeset
|
1927 |
29688
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1928 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
|
1929 CheckRunVimInTerminal |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1930 |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1931 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
|
1932 vim9script |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1933 set linebreak |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1934 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
|
1935 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
|
1936 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
|
1937 END |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1938 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
|
1939 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
|
1940 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
|
1941 |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1942 call StopVimInTerminal(buf) |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1943 call delete('XscriptPropWithWrap') |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1944 endfunc |
1455814702ad
patch 9.0.0184: virtual text prop highlight continues after truncation
Bram Moolenaar <Bram@vim.org>
parents:
29686
diff
changeset
|
1945 |
26350
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1946 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
|
1947 CheckRunVimInTerminal |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1948 |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1949 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
|
1950 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
|
1951 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
|
1952 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
|
1953 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
|
1954 END |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1955 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
|
1956 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
|
1957 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
|
1958 |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1959 call StopVimInTerminal(buf) |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1960 call delete('XscriptPropAfterTab') |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1961 endfunc |
13cce5c82c9a
patch 8.2.3706: text property highlighting is used on Tab
Bram Moolenaar <Bram@vim.org>
parents:
26338
diff
changeset
|
1962 |
29676
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
1963 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
|
1964 CheckRunVimInTerminal |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
1965 |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
1966 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
|
1967 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
|
1968 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
|
1969 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
|
1970 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
|
1971 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
|
1972 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
|
1973 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
|
1974 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
|
1975 normal gg0 |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
1976 END |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
1977 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
|
1978 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
|
1979 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
|
1980 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
|
1981 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
|
1982 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
|
1983 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
|
1984 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
|
1985 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
|
1986 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
|
1987 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
|
1988 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
|
1989 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
|
1990 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
|
1991 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
|
1992 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
|
1993 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
|
1994 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
|
1995 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
|
1996 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
|
1997 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
|
1998 |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
1999 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
|
2000 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
|
2001 endfunc |
b4fea827c20a
patch 9.0.0178: cursor position wrong with virtual text before Tab
Bram Moolenaar <Bram@vim.org>
parents:
29666
diff
changeset
|
2002 |
26384
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2003 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
|
2004 CheckRunVimInTerminal |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2005 |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2006 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
|
2007 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
|
2008 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
|
2009 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
|
2010 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
|
2011 END |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2012 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
|
2013 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
|
2014 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
|
2015 |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2016 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
|
2017 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
|
2018 endfunc |
e624b4ddbdf0
patch 8.2.3723: when using 'linebreak' a text property starts too early
Bram Moolenaar <Bram@vim.org>
parents:
26350
diff
changeset
|
2019 |
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
|
2020 " 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
|
2021 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
|
2022 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
|
2023 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
|
2024 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
|
2025 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
|
2026 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
|
2027 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
|
2028 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2029 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
|
2030 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
|
2031 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2032 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
|
2033 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
|
2034 {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
|
2035 {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
|
2036 ], 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
|
2037 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2038 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
|
2039 {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
|
2040 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
|
2041 |
b427a26b0210
patch 8.2.3233: prop_list() and prop_find() do not indicate the buffer
Bram Moolenaar <Bram@vim.org>
parents:
25198
diff
changeset
|
2042 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
|
2043 {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
|
2044 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
|
2045 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
|
2046 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
|
2047 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
|
2048 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
|
2049 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
|
2050 |
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
|
2051 " 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
|
2052 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
|
2053 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
|
2054 new |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
2055 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
|
2056 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
|
2057 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
|
2058 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
|
2059 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
|
2060 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
|
2061 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
|
2062 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
|
2063 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
|
2064 \ {'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
|
2065 \ '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
|
2066 \ {'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
|
2067 \ '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
|
2068 #" 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
|
2069 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
|
2070 \ {'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
|
2071 \ '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
|
2072 \ {'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
|
2073 \ '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
|
2074 \ {'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
|
2075 \ '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
|
2076 \ {'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
|
2077 \ '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
|
2078 \ 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
|
2079 #" 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
|
2080 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
|
2081 \ {'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
|
2082 \ '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
|
2083 \ {'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
|
2084 \ '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
|
2085 \ {'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
|
2086 \ '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
|
2087 \ 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
|
2088 #" 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
|
2089 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
|
2090 \ {'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
|
2091 \ '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
|
2092 \ {'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
|
2093 \ '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
|
2094 \ 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
|
2095 #" 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
|
2096 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
|
2097 \ {'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
|
2098 \ '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
|
2099 \ {'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
|
2100 \ '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
|
2101 \ 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
|
2102 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
|
2103 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
|
2104 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
|
2105 #" 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
|
2106 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
|
2107 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
|
2108 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
|
2109 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
|
2110 \ '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
|
2111 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
|
2112 \ '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
|
2113 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
|
2114 \ '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
|
2115 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
|
2116 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
|
2117 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
|
2118 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
|
2119 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
|
2120 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
|
2121 \ '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
|
2122 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
|
2123 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
|
2124 \ '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
|
2125 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
|
2126 \ '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
|
2127 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
|
2128 \ '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
|
2129 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
|
2130 \ '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
|
2131 |
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
|
2132 #" 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
|
2133 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
|
2134 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
|
2135 \ {'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
|
2136 \ '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
|
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': 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
|
2140 \ '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
|
2141 \ {'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
|
2142 \ '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
|
2143 \ 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
|
2144 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
|
2145 |
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 #" 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
|
2147 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
|
2148 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
|
2149 |
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 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
|
2151 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
|
2152 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
|
2153 #" 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
|
2154 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
|
2155 \ {'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
|
2156 \ '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
|
2157 \ {'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
|
2158 \ '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
|
2159 \ 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
|
2160 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
|
2161 \ {'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
|
2162 \ '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
|
2163 \ {'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
|
2164 \ '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
|
2165 \ 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
|
2166 #" 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
|
2167 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
|
2168 \ {'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
|
2169 \ '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
|
2170 \ {'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
|
2171 \ '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
|
2172 \ 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
|
2173 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
|
2174 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
|
2175 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
|
2176 |
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 #" 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
|
2178 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
|
2179 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
|
2180 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
|
2181 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
|
2182 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
|
2183 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
|
2184 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
|
2185 \ {'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
|
2186 \ '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
|
2187 \ {'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
|
2188 \ '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
|
2189 \ 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
|
2190 \ '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
|
2191 #" 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
|
2192 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
|
2193 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
|
2194 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
2195 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
|
2196 :%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
|
2197 END |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26384
diff
changeset
|
2198 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
|
2199 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
|
2200 |
28526
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2201 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
|
2202 new |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2203 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2204 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
|
2205 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
|
2206 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
|
2207 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
|
2208 endfor |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2209 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2210 call cursor(1,18) |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2211 let expected = [ |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2212 \ #{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
|
2213 \ #{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
|
2214 \ ] |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2215 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2216 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
|
2217 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
|
2218 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
|
2219 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
|
2220 |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2221 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
|
2222 bwipe! |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2223 endfunc |
171f9def0398
patch 8.2.4787: prop_find() does not find the right property
Bram Moolenaar <Bram@vim.org>
parents:
27626
diff
changeset
|
2224 |
28848
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2225 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
|
2226 new |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2227 set spell |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2228 call AddPropTypes() |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2229 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2230 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
|
2231 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
|
2232 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
|
2233 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
|
2234 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
|
2235 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
|
2236 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2237 " 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
|
2238 " 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
|
2239 let expected = [ |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2240 \ {'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
|
2241 \ '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
|
2242 \ {'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
|
2243 \ '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
|
2244 \ ] |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2245 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
|
2246 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2247 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
|
2248 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
|
2249 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2250 " 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
|
2251 spellrepall |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2252 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2253 let expected = [ |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2254 \ {'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
|
2255 \ '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
|
2256 \ {'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
|
2257 \ '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
|
2258 \ {'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
|
2259 \ '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
|
2260 \ ] |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2261 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
|
2262 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
|
2263 |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2264 call DeletePropTypes() |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2265 set spell& |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2266 bwipe! |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2267 endfunc |
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2268 |
28854
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2269 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
|
2270 new |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2271 call AddPropTypes() |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2272 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2273 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
|
2274 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
|
2275 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
|
2276 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2277 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
|
2278 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
|
2279 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
|
2280 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
|
2281 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2282 let expected = [ |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2283 \ {'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
|
2284 \ '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
|
2285 \ {'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
|
2286 \ '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
|
2287 \ ] |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2288 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
|
2289 |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2290 call DeletePropTypes() |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2291 bwipe! |
647d7f439622
patch 8.2.4950: text properties position wrong after shifting text
Bram Moolenaar <Bram@vim.org>
parents:
28848
diff
changeset
|
2292 endfunc |
28848
ba81f4ed59e2
patch 8.2.4947: text properties not adjusted when accepting spell suggestion
Bram Moolenaar <Bram@vim.org>
parents:
28841
diff
changeset
|
2293 |
28863
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2294 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
|
2295 new |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2296 call AddPropTypes() |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2297 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2298 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
|
2299 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
|
2300 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2301 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
|
2302 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
|
2303 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2304 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
|
2305 foobar |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2306 quxqux |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2307 quxqux |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2308 barbaz |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2309 END |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2310 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
|
2311 let expected = [ |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2312 \ {'lnum': 1, 'id': 0, 'col': 4, '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
|
2313 \ 'length': 4 ,'start': 1}, |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2314 \ {'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
|
2315 \ '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
|
2316 \ {'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
|
2317 \ '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
|
2318 \ {'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
|
2319 \ '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
|
2320 \ ] |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2321 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
|
2322 |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2323 call DeletePropTypes() |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2324 bwipe! |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2325 endfunc |
92736a673e3c
patch 8.2.4954: inserting line breaks text property spanning two lines
Bram Moolenaar <Bram@vim.org>
parents:
28854
diff
changeset
|
2326 |
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
|
2327 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
|
2328 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
|
2329 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
|
2330 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2331 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
|
2332 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
|
2333 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
|
2334 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
|
2335 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2336 " 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
|
2337 " 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
|
2338 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
|
2339 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2340 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
|
2341 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
|
2342 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
|
2343 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
|
2344 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
|
2345 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
|
2346 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
|
2347 \ {'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
|
2348 \ '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
|
2349 \ {'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
|
2350 \ '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
|
2351 \ {'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
|
2352 \ '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
|
2353 \ ] |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2354 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
|
2355 |
6a4edacbd178
patch 8.2.4957: text properties in a wrong position after a block change
Bram Moolenaar <Bram@vim.org>
parents:
28865
diff
changeset
|
2356 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
|
2357 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
|
2358 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
|
2359 |
28984
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2360 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
|
2361 new |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2362 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
|
2363 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2364 " 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
|
2365 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
|
2366 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2367 " 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
|
2368 " 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
|
2369 " 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
|
2370 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
|
2371 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
|
2372 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
|
2373 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
|
2374 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
|
2375 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
|
2376 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
|
2377 endif |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2378 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
|
2379 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2380 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2381 " 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
|
2382 " 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
|
2383 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
|
2384 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
|
2385 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2386 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
|
2387 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
|
2388 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
|
2389 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2390 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2391 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
|
2392 bwipe! |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2393 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2394 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2395 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
|
2396 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
|
2397 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2398 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2399 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
|
2400 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
|
2401 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2402 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2403 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
|
2404 new |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2405 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
|
2406 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2407 " 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
|
2408 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
|
2409 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2410 " 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
|
2411 " 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
|
2412 " 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
|
2413 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
|
2414 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
|
2415 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
|
2416 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
|
2417 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
|
2418 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
|
2419 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
|
2420 endif |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2421 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
|
2422 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2423 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2424 " 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
|
2425 " 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
|
2426 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
|
2427 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
|
2428 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2429 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
|
2430 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
|
2431 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
|
2432 \ '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
|
2433 endfor |
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 " 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
|
2436 " unchanged. |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2437 :1 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2438 normal aHello |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2439 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
|
2440 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
|
2441 endfor |
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 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
|
2444 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
|
2445 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
|
2446 \ '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
|
2447 endfor |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2448 |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2449 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
|
2450 bwipe! |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2451 endfunc |
b3828315a0d9
patch 8.2.5014: byte offsets are wrong when using text properties
Bram Moolenaar <Bram@vim.org>
parents:
28931
diff
changeset
|
2452 |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2453 func Test_prop_inserts_text() |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2454 CheckRunVimInTerminal |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2455 |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2456 " Just a basic check for now |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2457 let lines =<< trim END |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2458 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
|
2459 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
|
2460 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
|
2461 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
|
2462 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
|
2463 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
|
2464 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
|
2465 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
|
2466 |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2467 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
|
2468 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
|
2469 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
|
2470 |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2471 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
|
2472 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
|
2473 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
|
2474 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
|
2475 |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2476 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
|
2477 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
|
2478 |
042f357b455d
patch 9.0.0186: virtual text without highlighting does not show
Bram Moolenaar <Bram@vim.org>
parents:
29690
diff
changeset
|
2479 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
|
2480 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
|
2481 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
|
2482 END |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2483 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
|
2484 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
|
2485 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
|
2486 |
ec5f48ab361b
patch 9.0.0116: virtual text not displayed if 'signcolumn' is "yes"
Bram Moolenaar <Bram@vim.org>
parents:
29451
diff
changeset
|
2487 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
|
2488 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
|
2489 |
29605
0340a59e04ca
patch 9.0.0143: cursor positioned after virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29597
diff
changeset
|
2490 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
|
2491 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
|
2492 |
29655
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2493 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
|
2494 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
|
2495 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
|
2496 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
|
2497 |
53e434838a85
patch 9.0.0168: cursor positioned wrong with two virtual text properties
Bram Moolenaar <Bram@vim.org>
parents:
29645
diff
changeset
|
2498 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
|
2499 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
|
2500 |
29451
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2501 call StopVimInTerminal(buf) |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2502 call delete('XscriptPropsWithText') |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2503 endfunc |
057c26b5c33a
patch 9.0.0067: cannot show virtual text
Bram Moolenaar <Bram@vim.org>
parents:
28984
diff
changeset
|
2504 |
29706
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2505 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
|
2506 CheckRunVimInTerminal |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2507 |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2508 " 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
|
2509 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
|
2510 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
|
2511 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
|
2512 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
|
2513 set hlsearch |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2514 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
|
2515 func DoAfter() |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2516 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
|
2517 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
|
2518 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
|
2519 let @/ = '' |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2520 endfunc |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2521 END |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2522 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
|
2523 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
|
2524 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
|
2525 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
|
2526 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
|
2527 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
|
2528 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
|
2529 |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2530 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
|
2531 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
|
2532 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
|
2533 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
|
2534 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
|
2535 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
|
2536 |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2537 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
|
2538 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
|
2539 endfunc |
a680dc1b089d
patch 9.0.0193: search and match highlgith interfere with virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29696
diff
changeset
|
2540 |
29560
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2541 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
|
2542 CheckRunVimInTerminal |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2543 |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2544 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
|
2545 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
|
2546 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
|
2547 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
|
2548 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
|
2549 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
|
2550 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
|
2551 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
|
2552 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
|
2553 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
|
2554 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
|
2555 |
8f71840ecf07
patch 9.0.0125: cursor positioned wrong with virtual text after the line
Bram Moolenaar <Bram@vim.org>
parents:
29560
diff
changeset
|
2556 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
|
2557 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
|
2558 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
|
2559 |
32aee589fc9a
patch 9.0.0132: multi-byte characters in virtual text not handled correctly
Bram Moolenaar <Bram@vim.org>
parents:
29581
diff
changeset
|
2560 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
|
2561 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
|
2562 END |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2563 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
|
2564 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
|
2565 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
|
2566 |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2567 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
|
2568 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
|
2569 |
c1c599a367d4
patch 9.0.0188: strange effects when using "text_align" with non-zero column
Bram Moolenaar <Bram@vim.org>
parents:
29692
diff
changeset
|
2570 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
|
2571 endfunc |
14b139cbec49
patch 9.0.0121: cannot put virtual text after or below a line
Bram Moolenaar <Bram@vim.org>
parents:
29552
diff
changeset
|
2572 |
29633
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2573 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
|
2574 CheckRunVimInTerminal |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2575 |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2576 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
|
2577 vim9script |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2578 edit foobar |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2579 set showbreak=+++ |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2580 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
|
2581 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
|
2582 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
|
2583 type: 'test', |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2584 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
|
2585 text_align: 'after' |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2586 }) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2587 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
|
2588 type: 'test', |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2589 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
|
2590 text_align: 'below' |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2591 }) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2592 normal G$ |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2593 END |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2594 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
|
2595 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
|
2596 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
|
2597 |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2598 call StopVimInTerminal(buf) |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2599 call delete('XscriptPropsAfterTrunc') |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2600 endfunc |
e80174903fdf
patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop
Bram Moolenaar <Bram@vim.org>
parents:
29629
diff
changeset
|
2601 |
29585
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2602 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
|
2603 CheckRunVimInTerminal |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2604 |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2605 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
|
2606 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
|
2607 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
|
2608 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
|
2609 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
|
2610 normal ggJ |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2611 normal GkJ |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2612 |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2613 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
|
2614 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
|
2615 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
|
2616 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
|
2617 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
|
2618 normal 3G6J |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2619 END |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2620 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
|
2621 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
|
2622 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
|
2623 |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2624 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
|
2625 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
|
2626 endfunc |
e357bc89bb95
patch 9.0.0133: virtual text after line moves to joined line
Bram Moolenaar <Bram@vim.org>
parents:
29583
diff
changeset
|
2627 |
29597
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2628 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
|
2629 CheckRunVimInTerminal |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2630 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2631 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
|
2632 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
|
2633 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
|
2634 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
|
2635 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2636 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
|
2637 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
|
2638 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2639 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
|
2640 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
|
2641 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2642 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
|
2643 normal 4Gfh |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2644 END |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2645 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
|
2646 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
|
2647 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
|
2648 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2649 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
|
2650 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
|
2651 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2652 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
|
2653 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
|
2654 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
|
2655 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2656 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
|
2657 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
|
2658 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2659 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
|
2660 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
|
2661 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
|
2662 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2663 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
|
2664 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
|
2665 endfunc |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2666 |
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
|
2667 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
|
2668 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
|
2669 |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2670 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
|
2671 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
|
2672 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
|
2673 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
|
2674 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
|
2675 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
|
2676 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
|
2677 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
|
2678 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
|
2679 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
|
2680 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
|
2681 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
|
2682 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
|
2683 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
|
2684 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
|
2685 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
|
2686 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
|
2687 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
|
2688 |
fc0f93590fd4
patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
Bram Moolenaar <Bram@vim.org>
parents:
29676
diff
changeset
|
2689 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
|
2690 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
|
2691 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
|
2692 |
29597
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2693 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
|
2694 CheckRunVimInTerminal |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2695 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2696 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
|
2697 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
|
2698 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
|
2699 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
|
2700 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2701 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
|
2702 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
|
2703 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2704 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
|
2705 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
|
2706 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2707 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
|
2708 normal 4Gfh |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2709 END |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2710 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
|
2711 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
|
2712 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
|
2713 |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2714 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
|
2715 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
|
2716 endfunc |
f2d7f20d83c3
patch 9.0.0139: truncating virtual text after a line not implemented
Bram Moolenaar <Bram@vim.org>
parents:
29587
diff
changeset
|
2717 |
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
|
2718 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
|
2719 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
|
2720 |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2721 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
|
2722 set 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
|
2723 call setline(1, ['one', 'two', 'three']) |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2724 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
|
2725 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
|
2726 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
|
2727 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
|
2728 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
|
2729 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
|
2730 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
|
2731 call prop_add(1, 0, #{type: 'someprop', text: ' After the text', text_align: 'after'}) |
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
|
2732 normal G$ |
f1ed6f520d09
patch 9.0.0151: a "below" aligned text property does not work with 'nowrap'
Bram Moolenaar <Bram@vim.org>
parents:
29615
diff
changeset
|
2733 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
|
2734 call writefile(lines, 'XscriptPropsAfterNowrap') |
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
|
2735 let buf = RunVimInTerminal('-S XscriptPropsAfterNowrap', #{rows: 10, 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
|
2736 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
|
2737 |
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
|
2738 call term_sendkeys(buf, ":set signcolumn=yes foldcolumn=3\<CR>") |
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
|
2739 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
|
2740 |
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
|
2741 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
|
2742 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
|
2743 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
|
2744 |
29635
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2745 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
|
2746 CheckRunVimInTerminal |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2747 |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2748 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
|
2749 vim9script |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2750 edit foobar |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2751 set nowrap |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2752 set showbreak=+++\ |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2753 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
|
2754 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
|
2755 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
|
2756 type: 'test', |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2757 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
|
2758 text_align: 'after' |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2759 }) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2760 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
|
2761 type: 'test', |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2762 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
|
2763 text_align: 'below' |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2764 }) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2765 normal G$ |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2766 END |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2767 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
|
2768 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
|
2769 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
|
2770 |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2771 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
|
2772 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
|
2773 |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2774 call StopVimInTerminal(buf) |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2775 call delete('XscriptPropsBelowNowrap') |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2776 endfunc |
592818fd3110
patch 9.0.0158: with 'nowrap' "below" property not displayed correctly
Bram Moolenaar <Bram@vim.org>
parents:
29633
diff
changeset
|
2777 |
29708
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2778 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
|
2779 CheckRunVimInTerminal |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2780 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2781 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
|
2782 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
|
2783 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2784 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
|
2785 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
|
2786 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2787 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
|
2788 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
|
2789 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
|
2790 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
|
2791 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
|
2792 endif |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2793 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
|
2794 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
|
2795 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
|
2796 endif |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2797 endfunc |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2798 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2799 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
|
2800 END |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2801 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
|
2802 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
|
2803 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
|
2804 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
|
2805 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2806 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
|
2807 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
|
2808 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2809 " 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
|
2810 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
|
2811 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
|
2812 |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2813 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
|
2814 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
|
2815 endfunc |
d97b2ce26258
patch 9.0.0194: cursor displayed in wrong position after removing text prop
Bram Moolenaar <Bram@vim.org>
parents:
29706
diff
changeset
|
2816 |
29627
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2817 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
|
2818 CheckRunVimInTerminal |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2819 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2820 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
|
2821 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
|
2822 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
|
2823 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
|
2824 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
|
2825 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2826 func AddMore() |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2827 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
|
2828 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
|
2829 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
|
2830 endfunc |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2831 END |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2832 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
|
2833 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
|
2834 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
|
2835 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2836 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
|
2837 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
|
2838 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2839 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
|
2840 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
|
2841 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2842 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
|
2843 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
|
2844 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2845 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
|
2846 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
|
2847 |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2848 call StopVimInTerminal(buf) |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2849 call delete('XscriptPropsAfterSplitJoin') |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2850 endfunc |
dd96f3d8ed85
patch 9.0.0154: text properties wrong after splitting a line
Bram Moolenaar <Bram@vim.org>
parents:
29625
diff
changeset
|
2851 |
29552
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
2852 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
|
2853 new |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
2854 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
|
2855 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
|
2856 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
|
2857 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
|
2858 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
|
2859 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
|
2860 |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
2861 " 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
|
2862 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
|
2863 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
|
2864 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
|
2865 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
|
2866 |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
2867 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
|
2868 bwipe! |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
2869 endfunc |
89a97f70e8eb
patch 9.0.0117: text of removed textprop with text is not freed
Bram Moolenaar <Bram@vim.org>
parents:
29550
diff
changeset
|
2870 |
29579
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2871 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
|
2872 new foobar |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2873 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
|
2874 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
|
2875 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
|
2876 type: 'test', |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2877 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
|
2878 }) |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2879 normal! f4axyz |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2880 normal! f5iXYZ |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2881 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
|
2882 |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2883 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
|
2884 bwipe! |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2885 enddef |
f7a64755dbe9
patch 9.0.0130: cursor position wrong when inserting around virtual text
Bram Moolenaar <Bram@vim.org>
parents:
29568
diff
changeset
|
2886 |
20178
2fb397573541
patch 8.2.0644: insufficient testing for invalid function arguments
Bram Moolenaar <Bram@vim.org>
parents:
19642
diff
changeset
|
2887 " vim: shiftwidth=2 sts=2 expandtab |