Mercurial > vim
comparison src/testdir/test_vim9_script.vim @ 21526:a7afee13873d v8.2.1313
patch 8.2.1313: Vim9 script: cannot assign to environment variable
Commit: https://github.com/vim/vim/commit/b5ed266037dea49024e00c4e1f9c89f3a9ebaa60
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jul 28 22:38:37 2020 +0200
patch 8.2.1313: Vim9 script: cannot assign to environment variable
Problem: Vim9 script: cannot assign to environment variable.
Solution: Recognize environment variable assignment. (closes https://github.com/vim/vim/issues/6548)
Also options and registers.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 28 Jul 2020 22:45:03 +0200 |
parents | c7b2ce90c2de |
children | e0aa9b81f6a9 |
comparison
equal
deleted
inserted
replaced
21525:8c78fe47b321 | 21526:a7afee13873d |
---|---|
58 assert_equal('abc', v:char) | 58 assert_equal('abc', v:char) |
59 | 59 |
60 $ENVVAR = 'foobar' | 60 $ENVVAR = 'foobar' |
61 assert_equal('foobar', $ENVVAR) | 61 assert_equal('foobar', $ENVVAR) |
62 $ENVVAR = '' | 62 $ENVVAR = '' |
63 | |
64 let lines =<< trim END | |
65 vim9script | |
66 $ENVVAR = 'barfoo' | |
67 assert_equal('barfoo', $ENVVAR) | |
68 $ENVVAR = '' | |
69 END | |
70 call CheckScriptSuccess(lines) | |
63 | 71 |
64 s:appendToMe ..= 'yyy' | 72 s:appendToMe ..= 'yyy' |
65 assert_equal('xxxyyy', s:appendToMe) | 73 assert_equal('xxxyyy', s:appendToMe) |
66 s:addToMe += 222 | 74 s:addToMe += 222 |
67 assert_equal(333, s:addToMe) | 75 assert_equal(333, s:addToMe) |
78 &ts /= 3 | 86 &ts /= 3 |
79 assert_equal(3, &ts) | 87 assert_equal(3, &ts) |
80 set ts=10 | 88 set ts=10 |
81 &ts %= 4 | 89 &ts %= 4 |
82 assert_equal(2, &ts) | 90 assert_equal(2, &ts) |
91 | |
92 lines =<< trim END | |
93 vim9script | |
94 &ts = 6 | |
95 &ts += 3 | |
96 assert_equal(9, &ts) | |
97 END | |
98 call CheckScriptSuccess(lines) | |
99 | |
83 call CheckDefFailure(['¬ex += 3'], 'E113:') | 100 call CheckDefFailure(['¬ex += 3'], 'E113:') |
84 call CheckDefFailure(['&ts ..= "xxx"'], 'E1019:') | 101 call CheckDefFailure(['&ts ..= "xxx"'], 'E1019:') |
85 call CheckDefFailure(['&ts = [7]'], 'E1013:') | 102 call CheckDefFailure(['&ts = [7]'], 'E1013:') |
86 call CheckDefExecFailure(['&ts = g:alist'], 'E1029: Expected number but got list') | 103 call CheckDefExecFailure(['&ts = g:alist'], 'E1029: Expected number but got list') |
87 call CheckDefFailure(['&ts = "xx"'], 'E1013:') | 104 call CheckDefFailure(['&ts = "xx"'], 'E1013:') |
103 @a = 'areg' | 120 @a = 'areg' |
104 @a ..= 'add' | 121 @a ..= 'add' |
105 assert_equal('aregadd', @a) | 122 assert_equal('aregadd', @a) |
106 call CheckDefFailure(['@a += "more"'], 'E1013:') | 123 call CheckDefFailure(['@a += "more"'], 'E1013:') |
107 call CheckDefFailure(['@a += 123'], 'E1013:') | 124 call CheckDefFailure(['@a += 123'], 'E1013:') |
125 | |
126 lines =<< trim END | |
127 vim9script | |
128 @c = 'areg' | |
129 @c ..= 'add' | |
130 assert_equal('aregadd', @c) | |
131 END | |
132 call CheckScriptSuccess(lines) | |
108 | 133 |
109 v:errmsg = 'none' | 134 v:errmsg = 'none' |
110 v:errmsg ..= 'again' | 135 v:errmsg ..= 'again' |
111 assert_equal('noneagain', v:errmsg) | 136 assert_equal('noneagain', v:errmsg) |
112 call CheckDefFailure(['v:errmsg += "more"'], 'E1013:') | 137 call CheckDefFailure(['v:errmsg += "more"'], 'E1013:') |