Mercurial > vim
changeset 7627:d9ec7d22494d v7.4.1113
commit https://github.com/vim/vim/commit/4119cf80e1e534057680f9543e73edf7967c2440
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 17 14:59:01 2016 +0100
patch 7.4.1113
Problem: Using {ns} in variable name does not work. (lilydjwg)
Solution: Fix recognizing colon. Add a test.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 17 Jan 2016 15:00:05 +0100 |
parents | 5d57c7117629 |
children | d74db83fa956 |
files | src/eval.c src/testdir/test_viml.vim src/version.c |
diffstat | 3 files changed, 19 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -20844,10 +20844,10 @@ find_name_end(arg, expr_start, expr_end, else if (br_nest == 0 && mb_nest == 0 && *p == ':') { /* "s:" is start of "s:var", but "n:" is not and can be used in - * slice "[n:]". Also "xx:" is not a namespace. */ + * slice "[n:]". Also "xx:" is not a namespace. But {ns}: is. */ len = (int)(p - arg); if ((len == 1 && vim_strchr(NAMESPACE_CHAR, *arg) == NULL) - || len > 1) + || (len > 1 && p[-1] != '}')) break; }
--- a/src/testdir/test_viml.vim +++ b/src/testdir/test_viml.vim @@ -1,5 +1,5 @@ " Test various aspects of the Vim language. -" This was formerly in test49. +" Most of this was formerly in test49. "------------------------------------------------------------------------------- " Test environment {{{1 @@ -906,6 +906,20 @@ func Test_if_bar_fail() call assert_equal('acdfh-acfh', g:test15_result) endfunc +"------------------------------------------------------------------------------- +" Test 90: Recognizing {} in variable name. {{{1 +"------------------------------------------------------------------------------- + +func Test_curlies() + let s:var = 66 + let ns = 's' + call assert_equal(66, {ns}:var) + + let g:a = {} + let g:b = 't' + let g:a[g:b] = 77 + call assert_equal(77, g:a['t']) +endfunc "------------------------------------------------------------------------------- " Modelines {{{1