forked from aniani/vim
patch 8.1.1554: docs and tests for :const can be improved
Problem: Docs and tests for :const can be improved. Solution: Improve documentation, add a few more tests. (Ryuichi Hayashida, closes #4551)
This commit is contained in:
@@ -11619,10 +11619,9 @@ text...
|
|||||||
If the system does not support deleting an environment
|
If the system does not support deleting an environment
|
||||||
variable, it is made empty.
|
variable, it is made empty.
|
||||||
|
|
||||||
*:cons* *:const* *E996*
|
*:cons* *:const*
|
||||||
:cons[t] {var-name} = {expr1}
|
:cons[t] {var-name} = {expr1}
|
||||||
:cons[t] [{name1}, {name2}, ...] = {expr1}
|
:cons[t] [{name1}, {name2}, ...] = {expr1}
|
||||||
:cons[t] [{name1}, {name2}, ...] .= {expr1}
|
|
||||||
:cons[t] [{name}, ..., ; {lastname}] = {expr1}
|
:cons[t] [{name}, ..., ; {lastname}] = {expr1}
|
||||||
:cons[t] {var-name} =<< [trim] {marker}
|
:cons[t] {var-name} =<< [trim] {marker}
|
||||||
text...
|
text...
|
||||||
@@ -11641,7 +11640,11 @@ text...
|
|||||||
|:const| does not allow to for changing a variable. >
|
|:const| does not allow to for changing a variable. >
|
||||||
:let x = 1
|
:let x = 1
|
||||||
:const x = 2 " Error!
|
:const x = 2 " Error!
|
||||||
<
|
< *E996*
|
||||||
|
Note that environment variables, option values and
|
||||||
|
register values cannot be used here, since they cannot
|
||||||
|
be locked.
|
||||||
|
|
||||||
:lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv*
|
:lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv*
|
||||||
Lock the internal variable {name}. Locking means that
|
Lock the internal variable {name}. Locking means that
|
||||||
it can no longer be changed (until it is unlocked).
|
it can no longer be changed (until it is unlocked).
|
||||||
|
@@ -21,6 +21,21 @@ func Test_define_var_with_lock()
|
|||||||
hello
|
hello
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
|
call assert_true(exists('i'))
|
||||||
|
call assert_true(exists('f'))
|
||||||
|
call assert_true(exists('s'))
|
||||||
|
call assert_true(exists('F'))
|
||||||
|
call assert_true(exists('l'))
|
||||||
|
call assert_true(exists('d'))
|
||||||
|
if has('channel')
|
||||||
|
call assert_true(exists('j'))
|
||||||
|
call assert_true(exists('c'))
|
||||||
|
endif
|
||||||
|
call assert_true(exists('b'))
|
||||||
|
call assert_true(exists('n'))
|
||||||
|
call assert_true(exists('bl'))
|
||||||
|
call assert_true(exists('here'))
|
||||||
|
|
||||||
call assert_fails('let i = 1', 'E741:')
|
call assert_fails('let i = 1', 'E741:')
|
||||||
call assert_fails('let f = 1.1', 'E741:')
|
call assert_fails('let f = 1.1', 'E741:')
|
||||||
call assert_fails('let s = "vim"', 'E741:')
|
call assert_fails('let s = "vim"', 'E741:')
|
||||||
@@ -218,6 +233,17 @@ func Test_const_with_special_variables()
|
|||||||
call assert_fails('const &g:encoding = "utf-8"', 'E996:')
|
call assert_fails('const &g:encoding = "utf-8"', 'E996:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_const_with_eval_name()
|
||||||
|
let s = 'foo'
|
||||||
|
|
||||||
|
" eval name with :const should work
|
||||||
|
const abc_{s} = 1
|
||||||
|
const {s}{s} = 1
|
||||||
|
|
||||||
|
let s2 = 'abc_foo'
|
||||||
|
call assert_fails('const {s2} = "bar"', 'E995:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_lock_depth_is_1()
|
func Test_lock_depth_is_1()
|
||||||
const l = [1, 2, 3]
|
const l = [1, 2, 3]
|
||||||
const d = {'foo': 10}
|
const d = {'foo': 10}
|
||||||
|
@@ -777,6 +777,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1554,
|
||||||
/**/
|
/**/
|
||||||
1553,
|
1553,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user